西安2023年每月天气变化可视化分析

本代码使用Pandas和Pyecharts库对2023年西安每个月的天气进行数据可视化分析,展示每个月不同天气类型的分布情况。

导入库

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline

添加数据

df = zrmweathertable
df['日期'] = df['日期'].apply(lambda x: pd.todatetime(x))
df['month'] = df['日期'].dt.month
dfagg = df.groupby(['month','天气']).size().resetindex()
dfagg.columns = ['month','tianqi','count']

代码解释:

  1. df = zrmweathertable: 将天气数据加载到名为 df 的 Pandas DataFrame 中,zrmweathertable 应该是一个包含天气数据的变量或文件路径。
  2. df['日期'] = df['日期'].apply(lambda x: pd.todatetime(x)): 将 df 中的 '日期' 列转换为日期时间格式,方便后续的操作。
  3. df['month'] = df['日期'].dt.month: 提取日期列的月份信息,并将其保存到新的 'month' 列中。
  4. dfagg = df.groupby(['month','天气']).size().resetindex(): 对 df 中的 'month' 和 '天气' 列进行分组,统计每个月每种天气的出现次数,并将结果转换为新的 DataFrame dfagg
  5. dfagg.columns = ['month','tianqi','count']: 将 dfagg 中的列名分别改成 'month'、'tianqi' 和 'count'。

设置全局变量

timeline = Timeline()
timeline.addschema(playinterval=1000)

代码解释:

  1. timeline = Timeline(): 创建一个 Timeline 对象,用于展示多个月份的天气数据。
  2. timeline.addschema(playinterval=1000): 设置 Timeline 的时间间隔为 1000 毫秒,即每秒切换一次展示的月份数据。

显示图像

for month in dfagg['month'].unique():
    data = ( dfagg[dfagg['month']==month][['tianqi','count']]
            .sortvalues(by='count',ascending=True)
            .values.tolist() )
    bar = Bar()
    bar.addxaxis([x[0] for x in data])
    bar.addyaxis('',[x[1] for x in data])
    bar.reversalaxis()
    bar.setseriesopts(labelopts=opts.LabelOpts(position='right'))
    bar.setglobalopts(titleopts=opts.TitleOpts(title='西安2023年每月天气变化 '))
    timeline.add(bar, f'{month}月')
timeline.rendernotebook()

代码解释:

  1. for month in dfagg['month'].unique():: 循环遍历每个月份。
  2. data = ( dfagg[dfagg['month']==month][['tianqi','count']] .sortvalues(by='count',ascending=True) .values.tolist() ): 筛选出当前月份的天气数据,并按照天气出现次数进行排序,最后转换为列表 data
  3. bar = Bar(): 创建一个 Bar 对象,用于展示每个月份不同天气类型的分布情况。
  4. bar.addxaxis([x[0] for x in data]): 设置柱状图的 X 轴,显示每个天气的名称。
  5. bar.addyaxis('',[x[1] for x in data]): 设置柱状图的 Y 轴,显示每个天气出现的次数。
  6. bar.reversalaxis(): 反转 Y 轴,使天气出现次数较多的显示在下方,方便视觉比较。
  7. bar.setseriesopts(labelopts=opts.LabelOpts(position='right')): 设置柱状图标签的显示位置为右侧。
  8. bar.setglobalopts(titleopts=opts.TitleOpts(title='西安2023年每月天气变化 ')): 设置柱状图的标题。
  9. timeline.add(bar, f'{month}月'): 将每个月份的柱状图添加到 Timeline 中。
  10. timeline.rendernotebook(): 在 Jupyter Notebook 中渲染 Timeline 对象,展示结果。

总结

这段代码通过 Pandas 和 Pyecharts 库,对西安2023年每月天气数据进行可视化分析,展示了每个月不同天气类型的分布情况。代码逻辑清晰,使用循环和函数操作,方便扩展和修改。最终呈现了动态的月份切换效果,让数据更加直观易懂。

注意

请将代码中的 zrmweathertable 替换成实际的天气数据变量或文件路径。

希望这个解释能够帮助你理解代码并进行修改。

西安2023年每月天气变化可视化分析 - 基于Pandas和Pyecharts

原文地址: https://www.cveoy.top/t/topic/otZr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录