!文章内容如有错误或排版问题,请提交反馈,非常感谢!
pyecharts简介
Echarts是百度开源的一个数据可视化JS库。可以流畅的运行在PC和移动设备上,底层依赖轻量级的矢量图形库ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。ECharts提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于BI的漏斗图,仪表盘,并且支持图与图之间的混搭。
pyecharts是一个用于生成Echarts图表的类库。主要特性:
- 简洁的API设计,使用如丝滑般流畅,支持链式调用
- 囊括了30+种常见图表,应有尽有
- 支持主流Notebook环境,Jupyter Notebook和Jupyter Lab
- 可轻松集成至Flask,Sanic,Django等主流Web框架
- 高度灵活的配置项,可轻松搭配出精美的图表
- 详细的文档和示例,帮助开发者更快的上手项目
- 多达400+地图文件,并且支持原生百度地图,为地理数据可视化提供强有力的支持
相比matplotlib的优点:
- 类型多,依托echart库。
- 可交互,依托echart库。
- 容易嵌入web页面。支持前后端分离模式和不分离模式。
Pyecharts支持的图形:
- Bar(柱状图/条形图)
- Bar3D(3D柱状图)
- EffectScatter(带有涟漪特效动画的散点图)
- Funnel(漏斗图)
- Gauge(仪表盘)
- Geo(地理坐标系)
- Graph(关系图)
- HeatMap(热力图)
- Kline(K线图)
- Line(折线/面积图)
- Line3D(3D折线图)
- Liquid(水球图)
- Map(地图)
- Parallel(平行坐标系)
- Pie(饼图)
- Polar(极坐标系)
- Radar(雷达图)
- Scatter(散点图)
- Scatter3D(3D散点图)
- WordCloud(词云图)
使用pyecharts进行地图可视化
pyecharts v0.3.2以后,pyecharts不再自带地图js文件。在使用前,除了安装 pip install pyecharts 外,需要安装:
pip install echarts-countries-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg pip install echarts-china-counties-pypkg pip install echarts-china-misc-pypkg
- 全球国家地图:echarts-countries-pypkg(1.9MB):世界地图和213个国家,包括中国地图-
- 中国省级地图:echarts-china-provinces-pypkg(730KB):23个省,5个自治区
- 中国市级地图:echarts-china-cities-pypkg(3.8MB):370个中国城市
- 中国县区级地图:echarts-china-counties-pypkg(4.1MB):2882个中国县区
- 中国区域地图:echarts-china-misc-pypkg(148KB):11个中国区域地图,比如华南、华北。
具体使用时会发现网上的很多教程都都不错,原因是pyecharts分为v0.5.X和v1两个版本,两个版本彼此不兼容。v1版本写法,支持链式调用,但导包方式发生了变化。示例代码:
from pyecharts.charts import Map, Geo from pyecharts import options as opts locate = ['北京','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江','上海','江苏','浙江','安徽','福建','江西','山东','河南','湖北','湖南','广东','广西','海南','重庆','四川','贵州','云南','陕西','甘肃','青海','宁夏','新疆','西藏'] app_price = [10.84,8.65,18.06,8.90,5.04,29.20,8.98,17.80,27.81,24.24,12.72,11.10,6.30,7.00,22.45,16.92,11.00,14.99,18.85,5.85,1.40,7.32,14.61,4.62,6.05,8.07,6.73,15.54,13.00,39.07,25.61,21.3] price_list = [[locate[i], app_price[i]] for i in range(len(locate))] map_1 = Map() map_1.set_global_opts( title_opts = opts.TitleOpts(title = "2019年全国各省苹果价格表"), visualmap_opts = opts.VisualMapOpts(max_ = 50) #最大数据范围 ) map_1.add("2019年全国各省苹果价格", price_list, maptype = "china") map_1.render("apple.html")
JupyterLab渲染问题
1、在引入pyecharts.charts等模块前声明Notebook类型
from pyecharts.globals import CurrentConfig, NotebookType CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB from pyecharts.charts import Map, Geo from pyecharts import options as opts #将数据处理成列表 locate=['北京','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江','上海','江苏','浙江','安徽','福建','江西','山东','河南','湖北','湖南','广东','广西','海南','重庆','四川','贵州','云南','陕西','甘肃','青海','宁夏','新疆','西藏'] app_price=[10.84,8.65,18.06,8.90,5.04,29.20,8.98,17.80,27.81,24.24,12.72,11.10,6.30,7.00,22.45,16.92,11.00,14.99,18.85,5.85,1.40,7.32,14.61,4.62,6.05,8.07,6.73,15.54,13.00,39.07,25.61,21.3] price_list=[[locate[i],app_price[i]] for i in range(len(locate))] map_1=Map() map_1.set_global_opts( title_opts=opts.TitleOpts(title="2019年全国各省苹果价格表"), visualmap_opts=opts.VisualMapOpts(max_=50) #最大数据范围 ) map_1.add("2019年全国各省苹果价格", price_list, maptype="china") #map_1.render("apple.html")
2、调用load_javascript()会预先加载基本JavaScript文件到Notebook中
map_1.load_javascript()
3、调用render_notebook()进行输出。备注:load_javascript()和render_notebook()方法需要在不同的cell中调用
map_1.render_notebook()
更多用法还是看官方文档吧。
参考链接: