Обсуждение участника:Гренадер Дмитрий

Материал из Поле цифровой дидактики

Смурфики

Погода

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()
  )