在招聘网站做销售怎么样,如何编辑网站后台,网络推广建立站点如何建立,黑龙江做网站公司将每个城市在每个月份平均PM2.5绘制成折线图
import pandas as pd
import matplotlib.pyplot as plt
df pd.read_excel(./PM2.5.xlsx)display(df.head(10))
df.shape # (161630, 15)城市年份月份日期小时季节PM2.5露点湿度压强温度风向累计风速降水量累计降水量0北京2010112…将每个城市在每个月份平均PM2.5绘制成折线图
import pandas as pd
import matplotlib.pyplot as plt
df pd.read_excel(./PM2.5.xlsx)display(df.head(10))
df.shape # (161630, 15)城市年份月份日期小时季节PM2.5露点湿度压强温度风向累计风速降水量累计降水量0北京20101123冬129-17.041.01020.0-5.0cv0.890.00.01北京2010120冬148-16.038.01020.0-4.0SE1.790.00.02北京2010121冬159-15.042.01020.0-4.0SE2.680.00.03北京2010122冬181-11.063.51021.0-5.0SE3.570.00.04北京2010123冬138-7.085.01022.0-5.0SE5.360.00.05北京2010124冬109-7.085.01022.0-5.0SE6.250.00.06北京2010125冬105-7.092.01022.0-6.0SE7.140.00.07北京2010126冬124-7.092.01023.0-6.0SE8.930.00.08北京2010127冬120-7.085.01024.0-5.0SE10.720.00.09北京2010128冬132-8.085.01024.0-6.0SE12.510.00.0
# 求PM2.5每个月份均值根据城市和月份进行分组
df2 df.groupby(by [城市,月份])[[PM2.5]].mean().round(2)# 数据重塑
df2 df2.unstack(level -1)
# 删除最外层列索引PM2.5
df2.columns df2.columns.droplevel(level0)
df2月份123456789101112城市上海80.7759.5859.3855.3252.2341.4831.0326.6132.6942.2864.0286.54北京113.80120.9396.3483.4076.6789.5688.4873.7578.75112.72108.47107.49广州80.0358.7348.7567.0446.9535.3426.1438.6340.4760.1053.1361.99成都161.32110.0496.7167.9968.5653.8154.0561.2660.2584.7682.13116.08沈阳111.04103.1177.3965.5153.8947.8842.2543.9446.7989.03101.67112.61
df2.loc[上海]
df2.index # Index([上海, 北京, 广州, 成都, 沈阳], dtypeobject, name城市)plt.rcParams[font.family] SimHei
plt.rcParams[font.size] 18months df2.columns# 创建画布和子图
plt.figure(figsize(12, 6))# 绘制每个城市在每个月份的折线图
for city in df2.index:
# print(city, df2.loc[city])plt.plot(months, df2.loc[city], markero, labelcity)# 设置标题和标签
plt.title(PM2.5 Variation by City and Month)
plt.xlabel(Month)
plt.ylabel(PM2.5)
plt.xticks(months)
plt.grid(True)# 添加图例
plt.legend()# 显示图形
plt.show()将每个城市在每个季节最低温度绘制柱状图
df3 df.groupby(by [城市,季节])[[温度]].min().round(2)
df3 df3.unstack(level-1)
df3.columns df3.columns.droplevel(level0)
df3 df3[list(春夏秋冬)]
df3 df3.loc[[北京,上海,广州,成都,沈阳]]
df3季节春夏秋冬城市北京-9.013.0-12.0-19.0上海-1.017.0-2.0-4.0广州7.620.56.41.7成都5.018.05.0-2.0沈阳-14.010.0-18.0-25.0
fig plt.figure(figsize(12,12))
ax fig.add_subplot(1,1,1)
df3.plot.bar(ax ax)
plt.grid(color gray,ls --)
plt.ylabel(温度)
# 在中文字体下, 默认的负号, 会显示不正常
plt.rcParams[axes.unicode_minus] False各个城市最大风速随时间变化趋势
import numpy as npfig,axes plt.subplots(2,2,figsize (16,12)) # 添加子视图df4 df.groupby(by [城市,年份])[[累计风速]].max().round(2)
# 数据重塑
df4 df4.unstack(level 0)
df4.columns df4.columns.droplevel(0)
df4 df4[[北京,上海,广州,沈阳,成都]]# 在第一幅子图上绘制年份与风速
df4.plot(ax axes[0,0])
axes[0, 0].set_ylabel(风速)df5 df.groupby(by [城市,月份])[[累计风速]].max().round(2)
# 数据重塑
df5 df5.unstack(level 0)
df5.columns df5.columns.droplevel(0)
df5 df5[[北京,上海,广州,沈阳,成都]]
ax df5.plot(ax axes[1,0]) # 子视图索引第二行第一列左下角# 设置
months [一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月]
ax.set_xticks(np.arange(1,13)) # 刻度
_ ax.set_xticklabels(months,rotation 60)df6 df.groupby(by [城市,季节])[[累计风速]].max().round(2)
# 数据重塑
df6 df6.unstack(level 0)
# 调整行索引顺序
df6 df6.loc[list(春夏秋冬)]
# 删除列索引
df6.columns df6.columns.droplevel(0)
# 调整列索引顺序
df6 df6[[北京,上海,广州,沈阳,成都]]
# ax 指定了使用第一行第二列的子视图右上角
df6.plot(ax axes[0,1])df7 df.groupby(by [城市,小时])[[累计风速]].max().round(2)
# 数据重塑
df7 df7.unstack(level 0)
df7.columns df7.columns.droplevel(0)df7 df7[[北京,上海,广州,沈阳,成都]]# 子视图索引1,1 第二行、第二列右下角
ax df7.plot(ax axes[1,1])# 设置
_ ax.set_xticks(np.arange(0,24))# 保存
plt.savefig(./各个城市最大风速随时间变化趋势.png)