Обсуждение участника:Наталья Захарова: различия между версиями
Новая страница: «=== Смурфики === {{#widget:iframe |url=https://www.slnova.org/NatZakh/projects/925436/ |width=1000 |height=1000 }}» |
Нет описания правки |
||
| Строка 4: | Строка 4: | ||
|width=1000 | |width=1000 | ||
|height=1000 | |height=1000 | ||
}} | |||
=== Погода === | |||
{{#widget: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() | |||
}} | }} | ||
Версия от 14:49, 12 апреля 2026
Смурфики
Погода
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()'