Обсуждение участника:Наталья Захарова
Смурфики
Погода
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()|виджете iframe 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()]]: Unable to load template 'wiki:iframe 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()'