pyecharts介绍

pyechats是一个用于数据可视化的包。

Echats是百度开源的一个数据可视化js库,主要用于数据可视化,pyecharts 是一个用于生成Echarts图标的类库,实际上就是Echarts和Python的对接。

pyecharts支持python2与python3,如果使用的是python2.7,需要在代码顶部声明字符编码,否则会出现中文乱码问题。



#coding=utf-8
from __future__ import unicode_literals



 

 

Pyecharts安装

anaconda中没有自带pyecharts,需要单独进行安装。

1 pip install

 

各种图形的使用

引用包



from pyecharts import Bar



引用包有报错:



ERROR:lml.utils:failed to import pyecharts_snapshot
Traceback (most recent call last):
  File "c:\users\sheng\appdata\local\programs\python\python36-32\lib\site-packages\lml\utils.py", line 43, in do_import
    plugin_module = __import__(plugin_module_name)
ModuleNotFoundError: No module named 'pyecharts_snapshot'



按照提示进行安装对应的包,以及wheel包



pip install wheel
pip install pyecharts_snapshot



 

主题

pyecharts除了默认的白色底色和dark,还支持安装扩展包



pip install echarts-themes-pypkg



vintagemacaronsinfographicshine 和 roma 主题

 使用:



bar.use_theme('vintage')



 

将图片保存到本地

保存图片有两种方式,一种是点击图片右侧工具栏的下载按钮,保存格式为png,另一种是安装相关的包,通过render()方法保存到本地。

第一种没有什么好说的,这里说下第二种保存图片的方法。

pyecharts-snapshot插件可以将图片保存为png,gif,pdf等格式。

安装phantomjs:



npm install -g phantomjs-prebuilt



 安装pyecharts-snapshost:



pip install pyecharts-snapshot



 调用render方法保存图片



bar.render(path="snapshot.png")



 注:

安装phantomjs时需要本地有nodejs环境,才能使用npm命令。

nodejs的安装参考:

https://nodejs.org/en/download/

基本使用方法

基本上所有的图的使用方法都是这样的:

  1. chart_type=Type()  初始化具体的图表对象
  2. chart_type.add()     添加数据及配置项
  3. chart_type.render()  生成.html文件

从v0.5.9开始,支持链式调用,如:



from pyecharts import Bar
CLOTHES = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
clothes_v1 = [5, 20, 36, 10, 75, 90]
clothes_v2 = [10, 25, 8, 60, 20, 80]
(bar=Bar("柱状图示例")
    .add("商家A",CLOTHES,clothes_v1,is_stack=True)
    .add("商家B",CLOTHES,clothes_v2,is_stack=True)
    .render())



 多次显示图表的推荐使用方法

从v0.4.0开始,pyecharts重构了渲染的内部逻辑,改善效率。推荐使用以下方式显示多个图表:



from pyecharts import Bar,Line
from pyecharts.engine import create_default_environment

bar=Bar("我的第一个图表","这里是一个副标题")
bar.add("服装",["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
       [5,20,36,10,75,90])
line=Line("我的第一个图表","这里是一个副标题")
line.add("服装",["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
        [5,20,36,10,75,90])
env=create_default_environment("html")
env.render_chart_to_file(bar,path="./bar.html")
env.render_chart_to_file(line,path="./line.html")



注:

create_default_environment(file_type)

file_type:'html','svg','png','jpeg','gif','pdf'

同样的,保存图片格式需要安装phantomjs包。

这里创建了两个对象,Bar和Line,这种方式使用了同一个引擎对象,减少了重复操作,速度有所提高,而使用Bar.render(),Line.render()则需要调用两次。

 

柱形图-Bar



attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [5, 20, 36, 10, 75, 90]
v2 = [10, 25, 8, 60, 20, 80]
from pyecharts import Bar
bar=Bar("这是主标题","这是副标题")
bar.add(
    "商家A",
    attr,
    v1,
    is_stack=True 
)
bar.add(
    "商家B",
    attr,
    v2,
    is_stack=True
)
bar.render("./MyFirstPyecharts.html") #指定生成html的路径,不指定会默认生成在当前路径下,命名为render.html  
#多个bar同时指定is_stack为True,会实现叠加效果


 

easy rules数据可视化 数据可视化pyecharts_easy rules数据可视化

 Tip:

  1. add()方法中根据is_stack可以设定柱形图是否叠加显示
  2. is_more_utils=True 参数来设置最右侧工具栏,对生成的图进行更多的操作,如将柱形图更改为折线图等
  3. 标记的使用:mark_point=['average']标记点,平均值;mark_line=['min','max','average']标记线,最大值、最小值和平均值
  4. 横向柱形图:is_convert=True,标识交换X轴和Y轴

折线图-Line



from pyecharts import Line
line=Line("折线示例图")
line.add(
    name,attr,v1,
    is_symbol_show=True
)



 

饼图-Pie

散点图-Scatter

地图

在使用pyecharts制作地图展现时,会出现地图中只显示南海的问题。官方解释是为了缩减项目本身的体机以及维持pyecharts项目轻量化运行,pyecharts从0.3.2开始将不再自带地图js文件。所以我们需要安装一些包来解决。



pip install echarts-countries-pypkg      --2M
pip install echarts-china-provinces-pypkg  --748KB
pip install echarts-china-cities-pypkg    --4M
pip install echarts-china-counties-pypkg   --4.4M
pip install echarts-china-misc-pypkg     --152KB
pip install echarts-united-kingdom-pypkg  --1.3M



 这里备注一下:

  我之前是安装的anaconda,在使用conda install安装这些包时有报环境错误,我干脆把anaconda卸载了,然后更换了pip源为豆瓣的,pip install 安装成功!