导包读文件一条龙
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv(r'C:UsersDocumentshongkong.csv')
df = df[['local','parameter','value']]
日期时间转成标准格式
df['local'] = pd.to_datetime(df['local'])
df['date'] = pd.to_datetime(df['local'].dt.date)
df['hour'] = df['local'].dt.hour
检查格式
df.dtypes
可得到下图
获取2018-6-4当天的数据并排序
df_one_day = df.query('date=="2018-6-4"')
df_one_day.sort_values(by='hour',ascending=True,inplace=True)
#将数据集按照整点进行排序,ascending=True即升序
"""
inplace参数的理解:
修改一个对象时:
inplace=True:不创建新的对象,直接对原始对象进行修改;
inplace=False:对数据进行修改,创建并返回新的对象承载其修改结果。
"""
获取2018-6-4整点的值和pm25的值
pm25_y = df_one_day.query('parameter=="pm25"')['value']
pm25_x = df_one_day.query('parameter=="pm25"')['hour']
绘制直方图
#设置画布大小
plt.figure(figsize=(12,8))
#绘图,设置坐标,width是直方块的宽度,facecolor是直方块的颜色
rects = plt.bar(pm25_x.values,pm25_y.values,width=0.5,facecolor='blue')
#设置数据标签位置
for rect in rects:
rect_x = rect.get_x()#得到的是直方块左边线的值
rect_y = rect.get_height()#得到直方块的高
plt.text(rect_x+0.5/2,rect_y+0.5,str(int(rect_y)),ha='center',size = 10)#ha用于水平对齐
plt.show()
最终效果如下图
#已完成代码和所需csv文件在附件中
直方图
百度网盘