使用图表温度分析筛选出温度上最心仪的国家

20年6月22日 · 孔维娅 2362 人阅读
一、摘要:本程序是以python的tkinter\pandas\matplotlib模块为基础,基于84个国家2000年以后的月平均地表温度的数据,对这些国家的舒适度、温差、舒适率进行分析,从而使用户筛选出温度上最心仪的地点。
二、设计意图:使用户更为简单地筛选出在温度上最心仪的国家,在减轻用户自身找寻资源、数据的烦恼的同时,给出极具信服力的分析。
三、总体设计:
1.程序模块图
![]() |
![]() |
2.GUI界面:
![]() |
四、程序模块详细设计:
1.库的引入:
2.参数的设置:
(1)为翻页系统设置参数
(2)获取国家列表,为多选内容的设置做准备
(3)设置listbox的表头
(4)设置图表可显示中文
(5)由于国家的选择数量和种类具有不确定性,设置相应的参数
3.数据处理模块:
(1)为保证分析数据的可靠性,去除2000年及以前的温度数据
(2)删除冗余数据、以平均值填充空缺数据
4.数据显示模块:
(1)设置一页一页地展示数据(数值型与非数值型分别设置)
5.获取多选框的选择情况的模块:
(1)选中为1,未选中为0。根据这种差异,得到选中国家的列表。
6.打开数据的模块
(1)打开数据库文件,使用行筛选选出多选框选中的国家,最终合并,形成选中国家的dataframe。
(2)文件中数据结构与GUI展示一致。共100082行数据(分析还是非常可靠的)。
(3)获得国家与年份的列表及其具体数量(因为用户选择数量不确定)
7.综合分析折线图模块:
(1)首先两次迭代确定图表的位置,然后一次迭代获取某个国家某年某个月的平均温度(先对国家与年分进行筛选,然后再以月份分类求平均值,获得某月的平均温度。
(2)设置文本框的内容与格式。
8.年平均温度对比折线图模块:
(1)按照国家与年份分类,求取平均值获得数据。
(2)设置文本框的内容与格式。
9.月温度箱型图模块:
(1)获取最近一年温度数据形成箱型图(行筛选取不同的列)
(2)设置文本框的内容与格式。
10.舒适天数饼图模块:
(1)行筛选获得温度在舒适范围区间的数据制作饼图
(2)设置文本框的内容与格式。
11.数据翻页模块:
(1)原理皆为改变page_idx,再使用数据显示(showlist即可)
(2)设置超页数的警告
12.GUI设计部分:
(1)4个子窗口,分别是操作窗口、数据显示窗口、多选窗口和分析内容提示窗口。
(2)设置字体皆为楷体,两种大小模式。
(3)设置操作窗口
(4)设置数据显示窗口与翻页
(5)设置多选窗口与分析提示窗口,迭代设置多选按钮,一列16个,共五列
五、数据可视化和结论:
1.
![]() |
如图是所有温度数据的图表展示,由图可知,5个国家10年来每年的温度变化趋势大致相同,其中中国年变化最为剧烈,英国变化最为轻微。
![]() |
如图为舒适度的呈现图表。由图可知,5个国家的年平均温度变化都非常轻微。中国大约为7℃;丹麦大约为8.5℃,2010年有一个较为剧烈温度下降;英国大约为9℃;德国大约为9.5℃;土耳其年平均温度相对较高,大约为14.5℃。相比之下,英国与德国的舒适度较高。
3.![]() |
如图为稳定度的呈现图表。由图可知,最近的一年中,月温差:德国最大;中国,丹麦,土耳其差不多,居中;英国温差最小,主要集中在0~10℃。相对而言英国的稳定度最好。(根据用户要求的不同,也可仅对比两个四分位的温差)
4,
![]() |
如图为舒适率的呈现图表。舒适温度范围在GUI界面私人定制。由图可知,处于舒适范围的数量的百分比:英国>德国>丹麦>土耳其>中国。相对而言,英国的舒适率最高。
综上,我们可知英国是我在温度层面上最心仪的地点。
六、亮点:
1, 数据库较大,84个国家的数据供用户选择、供用户自由搭配分析
2, 数据处理中去除掉2000年及以前的数据
3, GUI界面设置了字体及其大小有所区分
4, 查看列表具有跳转功能,超出页数均会有警告窗口
5, 使用箱型图和所有国家综合展示的折线图
七、反思:
分析角度还不够多样,因而分析结果可能不够准确。
Python3Turtle