掘金 人工智能 07月29日 17:07
【数据可视化】🌩️ 北京密云区2025年7月暴雨深度分析:Python + Pyecharts 炫酷大屏可视化(包含完整数据、代码)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文利用Python及Pyecharts库,基于密云区7月天气数据集,构建了一个炫酷的黑色大屏,深入分析了特大暴雨的形成机制与社会影响。通过降雨量面积图、柱状图,温度折线图,AQI柱状图,风向玫瑰图和词云图,以及降雨量与AQI散点图,多维度展示了7月26日至27日的极端降雨情况。分析显示,高温天气可能助推暴雨形成,暴雨对空气质量有冲刷作用,并揭示了风向变化与暴雨路径的关联。文章最后提出了加强预警、设施加固和应急救援等防范建议,以应对此类极端天气事件。

📊 **极端降雨数据呈现**:数据显示,7月26日和27日密云区遭遇了极高的降雨量,达到了特大暴雨级别,这与新闻报道中的暴雨红色预警信息高度吻合,直观反映了此次灾害的严重性。

🌡️ **气温与降雨的关联性**:通过日最高温和最低温折线图分析发现,高温天气与强降雨的发生存在一定的相关性,高温可能为暴雨的形成提供了有利的大气条件。

💨 **空气质量与风向分析**:AQI柱状图显示,在暴雨期间,空气质量指数(AQI)普遍下降,表明强降雨对空气中的污染物起到了一定的净化作用。同时,风向玫瑰图和词云图揭示了暴雨期间风向的分布特征,这可能与暴雨系统的移动路径和影响范围有关。

⚠️ **暴雨的次生灾害与应对**:文章指出,此次暴雨引发了山洪、泥石流、滑坡等次生灾害,对当地居民的生命财产安全造成了巨大影响。为此,提出了加强预警发布、加固基础设施以及建立完善应急救援机制等防范建议,以期减少未来灾害损失。

🧑 博主简介:曾任某智慧城市类企业算法总监,CSDN / 稀土掘金 等平台人工智能领域优质创作者。

目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。


一、引言

2025年7月,北京市密云区遭遇了罕见的特大暴雨,多个站点的降雨量突破历史极值。暴雨引发了山洪、泥石流、滑坡等次生灾害,给当地居民的生活和财产带来了巨大影响。本文将基于密云区2025年7月的天气数据集,使用 Python 和 Pyecharts 构建一个炫酷的黑色大屏,从多个维度分析暴雨的形成机制和社会影响。

二、数据集介绍

数据集包含以下字段:

三、环境准备

在开始之前,请确保安装了以下库:

pip install pandas pyecharts

四、数据预处理

我们首先读取数据,并进行必要的预处理。

import pandas as pdfrom pyecharts import options as optsfrom pyecharts.charts import *from pyecharts.globals import ThemeType# 读取数据df = pd.read_csv("miyun_weather_202507.csv")# 将日期列转换为日期格式df['日期'] = pd.to_datetime(df['日期'], format="%m月%d日")# 提取日期字符串df['日期_str'] = df['日期'].dt.strftime('%m-%d')df['高温'] = df['高温'].str.replace('℃''').astype(int)  df['低温'] = df['低温'].str.replace('℃''').astype(int)  

五、可视化分析

接下来,我们将从多个角度对数据进行可视化分析。

5.1 降雨量面积图

# 降雨量面积图area_rain = (    Line(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))    .add_xaxis(df['日期_str'].tolist())    .add_yaxis("降雨量 (mm)", df['降雨量'].tolist(), is_smooth=True, linestyle_opts=opts.LineStyleOpts(width=2, curve=0.3))    .set_global_opts(        title_opts=opts.TitleOpts(title="7月每日降雨量面积图", subtitle="单位:毫米"),        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),        yaxis_opts=opts.AxisOpts(name="降雨量 (mm)"),        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross")    )    .set_series_opts(        areastyle_opts=opts.AreaStyleOpts(opacity=0.5color=JsCode("""            new echarts.graphic.LinearGradient(0001, [{offset:0,color:'#00f2fe'},{offset:1,color:'#4facfe'}])        """))    ))

5.2 日降雨量柱状图

我们首先查看7月份每天的降雨量。

# 日降雨量柱状图bar_rain = (    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))    .add_xaxis(df['日期_str'].tolist())    .add_yaxis("降雨量 (mm)", df['降雨量'].tolist(), itemstyle_opts=opts.ItemStyleOpts(color="#00f2fe"))    .set_global_opts(        title_opts=opts.TitleOpts(title="7月每日降雨量", subtitle="单位:毫米"),        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),        yaxis_opts=opts.AxisOpts(name="降雨量 (mm)"),        visualmap_opts=opts.VisualMapOpts(            is_show=True,            pos_top="middle",            pos_left="right",            orient="vertical",            min_=0,            max_=df['降雨量'].max(),            range_color=["#00f2fe""#4facfe""#00aaff"]        )    ))

5.3 日最高温和最低温折线图

接下来,我们查看7月份每天的最高温和最低温。

# 日最高温和最低温折线图line_temp = (    Line(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))    .add_xaxis(df['日期_str'].tolist())    .add_yaxis("高温 (℃)", df['高温'].tolist(), is_smooth=True, linestyle_opts=opts.LineStyleOpts(width=2, curve=0.3))    .add_yaxis("低温 (℃)", df['低温'].tolist(), is_smooth=True, linestyle_opts=opts.LineStyleOpts(width=2, curve=0.3))    .set_global_opts(        title_opts=opts.TitleOpts(title="7月每日最高温和最低温", subtitle="单位:摄氏度"),        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),        yaxis_opts=opts.AxisOpts(name="温度 (℃)"),        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross")    ))

5.4 AQI 柱状图

我们再看看7月份每天的 AQI 情况。

# AQI 柱状图bar_aqi = (    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))    .add_xaxis(df['日期_str'].tolist())    .add_yaxis("AQI", df['AQI'].tolist(), itemstyle_opts=opts.ItemStyleOpts(color="#ffde93"))    .set_global_opts(        title_opts=opts.TitleOpts(title="7月每日AQI", subtitle="空气质量指数"),        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),        yaxis_opts=opts.AxisOpts(name="AQI"),        visualmap_opts=opts.VisualMapOpts(            is_show=True,            pos_top="middle",            pos_left="right",            orient="vertical",            min_=df['AQI'].min(),            max_=df['AQI'].max(),            range_color=["#ffde93""#ffc107""#ff9800"]        )    ))

5.5 风向玫瑰图

我们再看看7月份风向的分布情况。

# 风向玫瑰图rose_wind = (    Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))    .add("", list(df['风向'].value_counts().items()), radius=[30100], center=["50%""50%"], rosetype="radius")    .set_global_opts(        title_opts=opts.TitleOpts(title="7月风向分布"),        legend_opts=opts.LegendOpts(is_show=True,orient="vertical", pos_top="15%", pos_left="2%")    )    .set_series_opts(label_opts=opts.LabelOpts(is_show=True)))

5.6 降雨量与 AQI 散点图

我们再看看降雨量与 AQI 之间的关系。

# 降雨量与 AQI 散点图scatter_rain_aqi = (    Scatter(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))    .add_xaxis(df['AQI'].tolist())    .add_yaxis("降雨量 (mm)", df['降雨量'].tolist(), symbol_size=10)    .set_global_opts(        title_opts=opts.TitleOpts(title="降雨量与 AQI 的关系"),        xaxis_opts=opts.AxisOpts(name="AQI"),        yaxis_opts=opts.AxisOpts(name="降雨量 (mm)"),        visualmap_opts=opts.VisualMapOpts(            type_="size",            max_=df['降雨量'].max(),            min_=0,            range_size=[520]        )    ))

5.7 风向频率统计词云图

我们再看看7月份风向的分布情况的词云图。

# 数据分析维度四:风向频率统计  wind_direction_counts = df['风向'].value_counts()  wind_data = list(zip(wind_direction_counts.index.tolist(), wind_direction_counts.values.tolist()))  wordcloud = (      WordCloud(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))      .add("", wind_data, word_size_range=[20100])      .set_global_opts(          title_opts=opts.TitleOpts(title="风向频率统计"),          tooltip_opts=opts.TooltipOpts(is_show=True)      )  )  

六、组合大屏

最后,我们将所有图表组合成一个炫酷的大屏。

# 组合大屏page = Page(layout=Page.DraggablePageLayout)page.add(area_rain,bar_rain, line_temp, bar_aqi, rose_wind, scatter_rain_aqi,wordcloud)page.render("miyun_weather_dashboard.html")print("✅ 已生成 miyun_weather_dashboard.html")

七、分析总结

通过上述可视化分析,我们可以清晰地看到7月份密云区的天气情况,特别是暴雨的形成机制和社会影响:

    降雨量:7月26日和27日降雨量极高,达到特大暴雨级别,这与新闻报道中的暴雨红色预警相符合。温度:高温和低温的变化与降雨量有一定的相关性,高温天气可能加剧了暴雨的形成。AQI:空气质量指数在暴雨期间有所下降,说明暴雨对空气污染有一定的冲刷作用。风向:风向的分布显示了暴雨期间的风向变化,可能与暴雨的移动路径有关。

7.1 社会影响

暴雨引发了山洪、泥石流、滑坡等次生灾害,给当地居民的生活和财产带来了巨大影响。建议在暴雨期间加强预警和防范措施,减少灾害损失。

7.2 防范建议

    加强预警:及时发布暴雨预警信息,提醒居民做好防范准备。加固设施:对山区和低洼地区的基础设施进行加固,减少灾害风险。应急救援:建立应急救援机制,及时响应灾害事件,减少人员伤亡和财产损失。

希望这篇文章能帮助你更好地理解和分析密云区的暴雨情况。如果你有任何问题或建议,欢迎在评论区留言!🎉


如果您在人工智能领域遇到技术难题,或是需要专业支持,无论是技术咨询、项目开发还是个性化解决方案,我都可以为您提供专业服务,如有需要可站内私信或添加下方VX名片(ID:xf982831907)

期待与您一起交流,共同探索AI的更多可能!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python Pyecharts 暴雨分析 天气数据 数据可视化
相关文章