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

Материал из Поле цифровой дидактики
Метки: замена ручная отмена
 
(не показана 1 промежуточная версия этого же участника)
Строка 5: Строка 5:
|height=1000
|height=1000
}}
}}
=== Погода ===
[[Файл:График изменения погоды.png|мини]]
<syntaxhighlight lang="R" line>
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?&quot;
    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()
</syntaxhighlight>
{{Шаблон:TidyR}}
----
[[Категория:BigDataWorks]]
=== Погода ===
[[Файл:График изменения погоды.png|мини]]
<syntaxhighlight lang="R" line>
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?&quot;
    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()
</syntaxhighlight>
{{Шаблон:TidyR}}

Текущая версия от 17:02, 12 апреля 2026

Смурфики