读取数据

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')

Python Pyecharts绘制北京、上海、广州、深圳空气质量日历热力图

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

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