Pyecharts 地图和柱状图组合:使用 Grid 组件实现动态展示
使用 Grid 组件在 Pyecharts 地图中添加柱状图
本文介绍如何使用 Pyecharts 的 Grid 组件,将地图和柱状图显示在同一张画布的不同位置,并实现根据年份动态展示不同年份的全国各省 GDP 数据,以及排名前十的省份 GDP 数据。
代码示例
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Map, Timeline
import pandas as pd
datas = pd.read_csv('2001-2019各省GDP数据.csv', encoding='gbk')
def get_gdp_map2(datas):
tl = Timeline()
tl.add_schema(play_interval=500, symbol='emptydiamond')
for i in range(2001, 2020):
# 创建地图
map_chart = (
Map()
.add('全国各省GDP(亿元)', datas[['地区', str(i) + '年']].values.tolist(), 'china')
.set_global_opts(
title_opts=opts.TitleOpts(title='{}年全国各省GDP(亿元)'.format(i)),
visualmap_opts=opts.VisualMapOpts(is_show=True, max_=110000, is_piecewise=True),
)
)
# 创建柱状图
bar_chart = (
Bar()
.add_xaxis(datas['地区'].tolist())
.add_yaxis('GDP(亿元)', datas[str(i) + '年'].tolist())
.reversal_axis()
.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30)))
)
# 创建Grid组件,将地图和柱状图显示在同一张画布的不同位置
grid_chart = (
Grid()
.add(map_chart, grid_opts=opts.GridOpts(pos_top='center', pos_right='55%', pos_bottom='5%', pos_left='5%'))
.add(bar_chart, grid_opts=opts.GridOpts(pos_top='55%', pos_right='55%', pos_bottom='5%', pos_left='5%'))
)
tl.add(grid_chart, '{}年'.format(i))
tl.render('2001-2019年全国各省GDP.html')
代码解释
- 创建地图和柱状图: 首先,分别创建
Map和Bar对象,设置对应的数据和样式,其中Bar对象使用reversal_axis()方法将横纵坐标互换,并将 x 轴标签旋转 -30 度,以便更好地显示省份名称。 - 创建 Grid 组件: 使用
Grid对象将地图和柱状图添加到同一张画布上。通过grid_opts参数设置每个图表的位置,pos_top、pos_right、pos_bottom和pos_left分别表示距离画布上、右、下、左边界的距离。 - 添加 Timeline: 使用
Timeline对象实现动态展示,通过add_schema方法设置播放间隔时间和符号样式,通过add方法将每个年份的grid_chart对象添加到Timeline中。
总结
通过以上代码,我们成功地将地图和柱状图显示在同一张画布的不同位置,并实现了根据年份动态展示不同年份的全国各省 GDP 数据,以及排名前十的省份 GDP 数据。你可以根据实际情况调整 Grid 组件的 grid_opts 参数来实现不同的布局效果。
注意: 你需要将 2001-2019各省GDP数据.csv 文件放在代码同目录下,并确保数据文件包含省份名称和对应年份的 GDP 数据。
原文地址: https://www.cveoy.top/t/topic/eSLJ 著作权归作者所有。请勿转载和采集!