日历热力图分别读取北京、上海、广州、深圳四个城市的空气质量数据;6、处理数据将Date列数据转换为datetime格式;7、使用pyecharts的HeatMap绘制四个城市的日历热力图;
读取数据
import pandas as pd bj = pd.read_csv('beijing_aqi.csv') sh = pd.read_csv('shanghai_aqi.csv') gz = pd.read_csv('guangzhou_aqi.csv') sz = pd.read_csv('shenzhen_aqi.csv')
将Date列转换为datetime格式
bj['Date'] = pd.to_datetime(bj['Date']) sh['Date'] = pd.to_datetime(sh['Date']) gz['Date'] = pd.to_datetime(gz['Date']) sz['Date'] = pd.to_datetime(sz['Date'])
导入pyecharts
from pyecharts import options as opts from pyecharts.charts import HeatMap from pyecharts.faker import Faker
绘制北京日历热力图
bj_data = bj[['Date', 'AQI']].values.tolist() bj_heatmap = ( HeatMap() .add_xaxis(list(set(bj['Date'].dt.date.astype(str).tolist()))) .add_yaxis( "", list(set(bj['Date'].dt.weekday.astype(str).tolist())), bj_data, label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts( title_opts=opts.TitleOpts(title="北京日历热力图"), visualmap_opts=opts.VisualMapOpts( min_=0, max_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), calendar_opts=opts.CalendarOpts( range_=["2020-01", "2020-12"], pos_top="120px", pos_left="30px", yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False), ), ) )
绘制上海日历热力图
sh_data = sh[['Date', 'AQI']].values.tolist() sh_heatmap = ( HeatMap() .add_xaxis(list(set(sh['Date'].dt.date.astype(str).tolist()))) .add_yaxis( "", list(set(sh['Date'].dt.weekday.astype(str).tolist())), sh_data, label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts( title_opts=opts.TitleOpts(title="上海日历热力图"), visualmap_opts=opts.VisualMapOpts( min_=0, max_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), calendar_opts=opts.CalendarOpts( range_=["2020-01", "2020-12"], pos_top="120px", pos_left="30px", yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False), ), ) )
绘制广州日历热力图
gz_data = gz[['Date', 'AQI']].values.tolist() gz_heatmap = ( HeatMap() .add_xaxis(list(set(gz['Date'].dt.date.astype(str).tolist()))) .add_yaxis( "", list(set(gz['Date'].dt.weekday.astype(str).tolist())), gz_data, label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts( title_opts=opts.TitleOpts(title="广州日历热力图"), visualmap_opts=opts.VisualMapOpts( min_=0, max_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), calendar_opts=opts.CalendarOpts( range_=["2020-01", "2020-12"], pos_top="120px", pos_left="30px", yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False), ), ) )
绘制深圳日历热力图
sz_data = sz[['Date', 'AQI']].values.tolist() sz_heatmap = ( HeatMap() .add_xaxis(list(set(sz['Date'].dt.date.astype(str).tolist()))) .add_yaxis( "", list(set(sz['Date'].dt.weekday.astype(str).tolist())), sz_data, label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts( title_opts=opts.TitleOpts(title="深圳日历热力图"), visualmap_opts=opts.VisualMapOpts( min_=0, max_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), calendar_opts=opts.CalendarOpts( range_=["2020-01", "2020-12"], pos_top="120px", pos_left="30px", yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False), ), ) )
将四个城市的日历热力图合并
from pyecharts.charts import Grid grid = Grid() grid.add(bj_heatmap, grid_opts=opts.GridOpts(pos_left="10%", pos_right="55%")) grid.add(sh_heatmap, grid_opts=opts.GridOpts(pos_left="45%", pos_right="10%")) grid.add(gz_heatmap, grid_opts=opts.GridOpts(pos_left="10%", pos_right="55%", pos_top="60%")) grid.add(sz_heatmap, grid_opts=opts.GridOpts(pos_left="45%", pos_right="10%", pos_top="60%")) grid.render('heatmap.html'
原文地址: https://www.cveoy.top/t/topic/fZwh 著作权归作者所有。请勿转载和采集!