Обсуждение участника:Гренадер Дмитрий
Материал из Поле цифровой дидактики
Смурфики
Погода

library(tidyverse)
import requests
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime, timedelta
# Координаты города (например, Москва)
LATITUDE = 55.7558
LONGITUDE = 37.6173
CITY_NAME = "Москва"
# Даты: последние 7 дней
end_date = datetime.now().date()
start_date = end_date - timedelta(days=7)
# URL для запроса к Open‑Meteo
URL = (
f"https://api.open-meteo.com/v1/forecast?"
f"latitude={LATITUDE}&longitude={LONGITUDE}&"
f"start_date={start_date}&end_date={end_date}&"
f"hourly=temperature_2m,precipitation,wind_speed_10m&"
f"timezone=Europe/Moscow"
)
response = requests.get(URL)
data = response.json()
# Извлекаем временные метки и параметры
timestamps = data['hourly']['time']
temperatures = data['hourly']['temperature_2m']
precipitations = data['hourly']['precipitation']
wind_speeds = data['hourly']['wind_speed_10m']
# Создаём DataFrame
df = pd.DataFrame({
'Время': timestamps,
'Температура, °C': temperatures,
'Осадки, мм': precipitations,
'Скорость ветра, м/с': wind_speeds
})
# Преобразуем столбец 'Время' в datetime
df['Время'] = pd.to_datetime(df['Время'])
df.to_csv('weather_data_openmeteo.csv', index=False, encoding='utf-8')
print("Данные сохранены в weather_data_openmeteo.csv")
# Создаём фигуру с тремя подграфиками
fig, axes = plt.subplots(3, 1, figsize=(14, 10), sharex=True)
# График температуры
axes[0].plot(df['Время'], df['Температура, °C'], color='red', linewidth=1)
axes[0].set_title(f'Температура в {CITY_NAME} за последние 7 дней')
axes[0].set_ylabel('Температура, °C')
axes[0].grid(True)
# График осадков
axes[1].bar(df['Время'], df['Осадки, мм'], color='blue', alpha=0.7, width=0.04)
axes[1].set_title('Осадки')
axes[1].set_ylabel('Осадки, мм')
axes[1].grid(True)
# График скорости ветра
axes[2].plot(df['Время'], df['Скорость ветра, м/с'], color='green', linewidth=1)
axes[2].set_title('Скорость ветра')
axes[2].set_ylabel('Скорость ветра, м/с')
axes[2].set_xlabel('Дата и время')
axes[2].grid(True)
plt.tight_layout()
plt.show()
| Функция | Что делает | С чем работает | Простой пример (R) |
|---|---|---|---|
select()
|
Выбирает (оставляет) нужные столбцы датафрейма; остальные отбрасывает. | Столбцы (переменные) | students |>
select(username, n_total_edits, discipline)
|
filter()
|
Оставляет строки, которые удовлетворяют логическому условию (фильтрация наблюдений). | Строки (наблюдения) | students |>
filter(n_total_edits > 50, discipline == "Филология")
|
mutate()
|
Добавляет новые столбцы или изменяет существующие, вычисляя их из других переменных. | Столбцы (новые или изменённые переменные) | students |>
mutate(
edit_per_day = n_total_edits / days_active,
pct_articles = edits_articles / n_total_edits * 100
)
|
group_by()
|
Задаёт группировку по одной или нескольким переменным; изменяет "структуру вычислений", но не сами данные. | Группы строк (по категориям) | students |>
group_by(discipline)
|
summarise()
|
Строит сводку по группам: сворачивает много строк в одну строку на группу (средние, суммы и т.п.). | Группы (после group_by())
|
students |>
group_by(discipline) |>
summarise(
mean_edits = mean(n_total_edits, na.rm = TRUE),
n_students = n()
)
|
