当前位置:   article > 正文

基于python flask +pyecharts实现的气象数据可视化分析大屏_flask pyecharts 数据可视化

flask pyecharts 数据可视化

背景

气象数据可视化分析大屏基于Python Flask和Pyecharts技术,旨在通过图表展示气象数据的分析结果,提供直观的数据展示和分析功能。在当今信息化时代,气象数据的准确性和实时性对各行业具有重要意义。通过搭建气象数据可视化分析大屏,用户可以实时监测和分析气象数据趋势,帮助决策者制定有效的应对措施。该系统将为气象领域的研究人员、气象服务机构和相关行业提供强大的数据分析和决策支持,推动气象信息化应用的发展和提升。

前端设计

前端设计的关键步骤:

页面布局设计:

使用Flex布局将页面分为左侧、中间和右侧三个主要部分,每个部分包含多个子元素。
左侧和右侧各包含三个垂直排列的子元素,用于展示不同类型的数据。
中间部分用于显示地图数据,并包含一个计时器显示当前时间。


样式设计:

设置全局样式,包括页面背景色、字体颜色、间距等,确保页面整体风格统一。
设计每个数据展示框的样式,包括边框样式、高度、宽度等,使其具有辨识度。
为表格容器添加滚动条样式,确保表格数据超出容器高度时可以滚动查看。


数据填充与更新:

使用JavaScript和jQuery库实现数据的动态填充和更新,通过Ajax请求从后端获取最新数据并更新图表。
在表格部分,根据后端返回的数据动态生成表格行,并实现表格的滚动效果。


图表展示:

使用ECharts库初始化各个图表实例,并根据后端返回的数据更新图表内容。
不仅展示静态图表,还可以通过定时器定时刷新数据,实现实时数据展示。
通过以上设计,可以实现一个交互性强、信息展示清晰的气象数据可视化大屏,为用户提供直观、动态的数据分析和监控功能。

后端设计

主要代码

  1. import json
  2. # from 天气处理 import *
  3. app = Flask(__name__, static_folder="templates")
  4. textstyle = opts.TextStyleOpts(color="white")
  5. idx = 9
  6. import pandas as pd
  7. def chuli():
  8. df=pd.read_csv(r'C:\Users\Administrator\Desktop\天气大屏flask+pyecharts\Flask_DataView_new\天气数据.csv')
  9. df['省份']=df['省份'].str.replace('历史天气','')
  10. # 完整的省份映射字典
  11. mapping_dict = {
  12. "北京": "北京市",
  13. "天津": "天津市",
  14. "河北": "河北省",
  15. "山西": "山西省",
  16. "内蒙古": "内蒙古自治区",
  17. "辽宁": "辽宁省",
  18. "吉林": "吉林省",
  19. "黑龙江": "黑龙江省",
  20. "上海": "上海市",
  21. "江苏": "江苏省",
  22. "浙江": "浙江省",
  23. "安徽": "安徽省",
  24. "福建": "福建省",
  25. "江西": "江西省",
  26. "山东": "山东省",
  27. "河南": "河南省",
  28. "湖北": "湖北省",
  29. "湖南": "湖南省",
  30. "广东": "广东省",
  31. "广西": "广西壮族自治区",
  32. "海南": "海南省",
  33. "重庆": "重庆市",
  34. "四川": "四川省",
  35. "贵州": "贵州省",
  36. "云南": "云南省",
  37. "西藏": "西藏自治区",
  38. "陕西": "陕西省",
  39. "甘肃": "甘肃省",
  40. "青海": "青海省",
  41. "宁夏": "宁夏回族自治区",
  42. "新疆": "新疆维吾尔自治区",
  43. "香港": "香港特别行政区",
  44. "澳门": "澳门特别行政区",
  45. "台湾": "台湾省"
  46. }
  47. # 使用map函数将现有数据替换为省、自治区或市
  48. df["省份"] = df["省份"].map(mapping_dict)
  49. df['最高温']=df['最高温'].str.replace('°','').astype('int')
  50. df['最低温']=df['最低温'].str.replace('°','').astype('int')
  51. df['空气指数']=df['空气质量指数'].str.split(' ',expand=True)[0]
  52. df['空气等级']=df['空气质量指数'].str.split(' ',expand=True)[1]
  53. df['风力风向']=df['风力风向'].str.replace('微风','0级')
  54. df['风向']=df['风力风向'].str.split('风',expand=True)[0]+'风'
  55. df['风力']=df['风力风向'].str.split('风',expand=True)[1]
  56. df['风力']=df['风力'].str.replace('级','').astype('int')
  57. df['时间0']=df['时间'].str.split(' ',expand=True)[0]
  58. print(df['时间0'])
  59. print(df.info())
  60. return df
  61. def avg_qw():
  62. df=chuli()
  63. df['年']=df['时间'].str.split('-',expand=True)[0]
  64. a=df.groupby('年')['最低温','最高温'].mean().reset_index()
  65. a['最低温']=a['最低温'].round(1)
  66. a['最高温'] = a['最高温'].round(1)
  67. print(a)
  68. return a

可视化代码:

  1. def map_base():
  2. df=chuli()
  3. df = df[~df['空气指数'].isin(['-'])]
  4. df['空气指数'] = df['空气指数'].astype('int')
  5. b = df.groupby('省份')['空气指数'].max().reset_index()
  6. m = (
  7. Map()
  8. .add('', [list(z) for z in zip(b['省份'].tolist(), b['空气指数'].tolist())], 'china')
  9. .set_series_opts(label_opts=opts.LabelOpts(color='white'))
  10. .set_global_opts(
  11. title_opts=opts.TitleOpts(title='全国各省份空气指数'),
  12. visualmap_opts=opts.VisualMapOpts(max_=40, split_number=8, is_piecewise=True),
  13. )
  14. )
  15. return m
'
运行

最终效果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/918581
推荐阅读
相关标签
  

闽ICP备14008679号