这几天有同学问我pyecharts是啥,他有个实验不会做。
我告诉他是一个python库,但是我也没用过,不过可以现学现卖。
Echarts 是百度开源的一个数据可视化 JS 库。
使用pyecharts库可以在python中直接生成Echarts,且代码量极少,理应是一个非常用户友好的库,但是今天在使用过程中踩了不少坑,应该归结于版本更新问题。
pyhton3环境
pip3 install pyecharts
如安装太慢可走清华镜像源
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
除此之外,还需安装地图包,分为三个:
全球国家地图: echarts-countries-pypkg (1.9MB)
中国省级地图: echarts-china-provinces-pypkg (730KB)
中国市级地图: echarts-china-cities-pypkg (3.8MB)
pip3 install echarts-countries-pypkg
pip3 install echarts-china-provinces-pypkg
pip3 install echarts-china-cities-pypkg
根据需求,要1978年和2017年各省的GDP信息绘制在地图上。
看了网上的教程,制作地理图表需要用到两个类,Map或者Geo
from pyecharts import Map,Geo
很好,第一步就报错。
ImportError: cannot import name ‘Map’ from ‘pyecharts’.
猜测是版本更新后改了名字,于是到文件pyecharts这个库里面去找,果然没有找到Map和Geo这个文件。转而去网上寻求帮助,发现也有人有这个问题,都是近期出现,方法大多是卸载pyecharts后重装。尝试后仍没有解决问题。
无计可施,只好去看官方文档,找到地理图表中的class Map,恍然大悟
原来是分了文件夹,原本是pyecharts.Map,现在改成了pyecharts.charts.Map。Map这个类被归到了pyecharts库下的charts文件夹中。
随后我又留意了一下文档中的快速教程,Map中的一些方法已经被取消了,改为了使用全局配置项。
照搬代码
from pyecharts.charts import Map,Geo
from pyecharts import options as opts
这部分没啥好说的
#将数据处理成列表
locate = ['北京','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江','上海','江苏','浙江','安徽','福建','江西','山东','河南','湖北','湖南','广东','广西','海南','重庆','四川','贵州','云南','陕西','甘肃','青海','宁夏','新疆']
GDP_1978 = [108.84,82.65,183.06,87.99,58.04,229.20,81.98,174.80,272.81,249.24,123.72,114.10,66.37,87.00,225.45,162.92,151.00,146.99,185.85,75.85,16.40,67.32,184.61,46.62,69.05,81.07,64.73,15.54,13.00,39.07]
GDP_2017 = [28014.94,18549.19,34016.32,15528.42,16096.21,23409.24,14944.53,15902.68,30632.99,85869.76,51768.26,27018,32182.09,20006.31,72634.15,44552.83,35478.09,33902.96,89705.23,18523.26,4462.54,19424.73,36980.22,13540.83,16376.34,21898.81,7459.9,2624.83,3443.56,10881.96]
list1 = [[locate[i],GDP_1978[i]] for i in range(len(locate))]
list2 = [[locate[i],GDP_2017[i]] for i in range(len(locate))]
map_1 = Map()
map_1.set_global_opts(
title_opts=opts.TitleOpts(title="2017年全国各省GDP"),
visualmap_opts=opts.VisualMapOpts(max_=100000) #最大数据范围
)
map_1.add("2017年各省GDP", list2, maptype="china")
map_1.add("1978年各省GDP", list1, maptype="china")
map_1.render('map1.html')
运行后pyecharts将图表渲染成了网页的形式,在程序所在文件夹中打开map1.html,就可以看到我们的图表了。
并且可以选择仅看一年的图表
还是要看用户手册的。