前言
天气预报我们每天都会关注,天气情况会影响到我们日常的增减衣物、出行安排等。每天的气温、相对湿度、降水量以及风向风速是关注的焦点。数据可视化方面,使用matplotlib、numpy、pandas、scikit-learn库对数据进行预处理、可视化处理。得到了一天内温度变化曲线、相对湿度变化曲线图、温湿度相关性、降水量变化图、以及风向雷达图等。机器学习方面,使用最为经典的线性回归方法,对天气数据进行分析,对天气数据预测,然后通过平均绝对值误差(Mean Absolute Error),表示预测值和观测值之间绝对误差的平均值进行约束和优化,最后使用皮尔逊相关系数进行分析与评价。
总的来说,本课程设计涉及到numpy库、pandas库、matplotlib库、sklearn库、以及文件存取的具体应用.可移植性强、界面美观、初具小型系统雏形,是一份结合数据分析、数据可视化与机器学习学习的课程设计。希望读者喜欢~
本课程设计项目特色在于:
(1)精心配色,可视化效果更佳。
(2)多文件结构,文件之间的层次更加清晰。
(3)路径地址采用相对路径,可移植性高。
(4)增加了主菜单,方便选择调用需要执行的功能。
(5)增加动态效果,对“XX变化图”增加了运行时动态生成的效果,对“变化”的感知将更加深刻,具体原理见chart.py文件。
(6)通过scikit-learn库中的LinearRegression()来分析温度-相对湿度的线性回归方程,以及使用相关系数衡量相关性。
考虑到有一部分读者想与笔者有进一步交流,可以添加我的微信:StarsForMoon,添加请说明来意(如CSDN)。感谢您对我的支持!😃
一、主要文件结构
说明:
① dataset文件夹:存放天气数据的csv文件。
② main.py:调用dataset中的数据和src中的源代码,得出可视化图片,然后保存于result文件夹,它是程序运行入口。
③ result文件夹:存放运行完成后的可视化图片。
④ src文件夹:存放数据分析与可视化的源代码。
⑤ 执行main.py后,XX变化图的可视化将会是一个动态变化图展示,所有保存的可视化图片都是静态的.png图片。
二、具体文件细节
(1)main.py源代码:
#main.py是启动程序,负责启动和调用相应的功能,并导入数据集
def main():
#数据分析与可视化实现
key=1
print("\n请选择你所需要的分析: \n0、温度变化图\n1、相对湿度变化图\n2、温度与相对湿度分析图\n3、降雨量变化图\n4、风向雷达图")
#多功能数据分析与可视化的选择
#try-except结构避免用户输入不正确或恶意输入
while 1:
try:
i=int(input('输入需要查看的图表(输入-1退出):'))
break
except:
print("输入有误,请重新输入")
print("\n请选择你所需要的分析: \n0、温度变化图\n1、相对湿度变化图\n2、温度与相对湿度分析图\n3、降雨量变化图\n4、风向雷达图")
#选择对应功能后,调用对应函数
#while循环实现多次查看不同的功能
while key==1:
if(i==-1):
key=0
break
while i!=-1:
if i==0:
dataprocess.temperature(data)#温度变化曲线
break
elif i==1:
dataprocess.humidity(data)#湿度变化曲线
break
elif i==2:
dataprocess.relevance(data)#温湿度相关性分析
break
elif i==3:
dataprocess.rainfall(data)#降雨量曲线图
break
elif i==4:
dataprocess.wind(data)#风级风向雷达图
break
elif i==-1:
key=0
print("正在退出......")
break
else:
print("输入有误请重新输入")
break
if(key==0):
break
print("\n请选择你所需要的分析: \n0、温度变化图\n1、相对湿度变化图\n2、温度与相对湿度分析图\n3、降雨量变化图\n4、风向雷达图")
i = int(input('输入需要查看的图表(输入-1退出):'))
print("\n退出成功,欢迎下次使用!")
#启动入口
if __name__=="__main__":
main()
(2)dataset文件夹内部:
存有一个天气数据的csv文件,通过爬虫代码获取自己地区当前天气数据。
3)src文件夹内部:
内有两个.py文件,dataprocess.py是数据分析处理文件,chart.py是数据可视化文件,main函数会先调用处理文件后再可视化文件。
(4)dataprocess.py代码(使用Numpy、Pandas进行数据处理的文件,此处就不展示了):
dataprocess.py程序是数据处理程序
负责对来自对数据集进行数据分析和处理,以便于提供给chart.py程序进行可视化
(5)chart.py源代码:
chart.py程序是调用matplotlib中的库函数进行可视化
数据的接收自dataprocess.py程序,然后进行可视化
分别有温度变化折线图、相对湿度变化折线图、降水量变化柱状图、风向雷达图、以及结合机器学习线性回归生成的温湿度相关性分析图。
特色:运行过程中,所有变化图都会动态生成,非常酷炫!
#温度变化图
def temdiagram(tems,hours,temave,temmin,tem_minhour,temmax,tem_maxhour):
温度变化图
#降雨量曲线图
def rainfalldiagram(hours,rainfall,rainfallavg,rainfallmax,hour_rainfallmax,rainfallmin,hour_rainfallmin):
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_52878933/article/details/122086364
文章
10.1W+人气
17粉丝
1关注
©Copyrights 2016-2022 杭州易知微科技有限公司 浙ICP备2021017017号-3 浙公网安备33011002011932号
互联网信息服务业务 合字B2-20220090