大家好,本文将围绕基于python的天气预测系统研究展开说明,python气象数据分析与可视化是一个很多人都想弄明白的事情,想搞清楚基于python的气象数据分析需要先了解以下几个事情。
选取了10个城市。随后将分析它们的天气数据,其中5个城市在距海100公里范围内,其余5个距海100~400公里。
选作样本的城市列表如下: Ferrara(费拉拉) Torino(都灵) Mantova(曼托瓦) Milano(米兰) Ravenna(拉文纳) Asti(阿斯蒂) Bologna(博洛尼亚) Piacenza(皮亚琴察) Cesena(切塞纳) Faenza(法恩莎)
数据来源:
1.温度数据分析 进行数据分析的目的是尝试解释是否能够评估海洋是怎样影响气温的,以及是否能够影响气温趋势,因此同时来看几个不同城市的气温趋势。这是检验分析方向是否正确的唯一方式。因此选择三个离海最近以及三个离海最远的城市。
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from dateutil import parser
import pandas as pd
import numpy as np
df_ferrara = pd.read_csv('')
df_milano = pd.read_csv('')
df_mantova = pd.read_csv('')
df_ravenna = pd.read_csv('')
df_torino = pd.read_csv('')
df_asti = pd.read_csv('')
df_bologna = pd.read_csv('')
df_piacenza = pd.read_csv('')
df_cesena = pd.read_csv('')
df_faenza = pd.read_csv('')
# 读取城市气象数据
# 取出要分析的温度和日期数据
y1 = df_ravenna['temp']
x1 = df_ravenna['day']
y2 = df_faenza['temp']
x2 = df_faenza['day']
y3 = df_cesena['temp']
x3 = df_cesena['day']
y4 = df_milano['temp']
x4 = df_milano['day']
y5 = df_asti['temp']
x5 = df_asti['day']
y6 = df_torino['temp']
x6 = df_torino['day']
# 把日期数据转换成 datetime 的格式
day_ravenna = [parser.parse(x) for x in x1]
day_faenza = [parser.parse(x) for x in x2]
day_cesena = [parser.parse(x) for x in x3]
dat_milano = [parser.parse(x) for x in x4]
day_asti = [parser.parse(x) for x in x5]
day_torino = [parser.parse(x) for x in x6]
# 调用 subplot 函数, fig 是图像对象,ax 是坐标轴对象
fig, ax = plt.subplots()
# 调整x轴坐标刻度,使其旋转70度,方便查看
plt.xticks(rotation=70)
# 设定时间的格式
hours = mdates.DateFormatter('%H:%M')
# 设定X轴显示的格式
ax.xaxis.set_major_formatter(hours)
#这里需要画出三根线,所以需要三组参数
(day_ravenna,y1,'r',day_faenza,y2,'r',day_cesena,y3,'r')
(dat_milano,y4,'g',day_asti,y5,'g',day_torino,y6,'g')
#显示图像
fig
结果:
离海最近的三个城市的最高气温比离海最远的三个城市低不少,而最低气温看起来差别较小。
可以沿着这个方向做深入研究,收集10个城市的最高温和最低温,用线性图表示气温最值点和离海远近之间的关系。
#10个城市的最高温和最低温,用线性图表示气温最值点和离海远近之间的关系
#dist:城市距和海边距离列表
dist = [df_ravenna['dist'][0],
df_cesena['dist'][0],
df_faenza['dist'][0],
df_ferrara['dist'][0],
df_bologna['dist'][0],
df_mantova['dist'][0],
df_piacenza['dist'][0],
df_milano['dist'][0],
df_asti['dist'][0],
df_torino['dist'][