python之pyechart

Echarts是百度可视化工具,pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图

官方教程:http://pyecharts.org/#/zh-cn/prepare

支持图形

Bar(柱状图/条形图) 
Bar3D(3D 柱状图) 
Boxplot(箱形图) 
EffectScatter(带有涟漪特效动画的散点图) 
Funnel(漏斗图) 
Gauge(仪表盘) 
Geo(地理坐标系) 
Graph(关系图) 
HeatMap(热力图) 
Kline(K线图) 
Line(折线/面积图) 
Line3D(3D 折线图) 
Liquid(水球图) 
Map(地图) 
Parallel(平行坐标系) 
Pie(饼图) 
Polar(极坐标系) 
Radar(雷达图) 
Sankey(桑基图) 
Scatter(散点图) 
Scatter3D(3D 散点图) 
ThemeRiver(主题河流图) 
WordCloud(词云图)
 

支持扩展包

$ 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
$ pip install echarts-united-kingdom-pypkg
 

pyecharts 支持 Python2.7+ 和 Ptyhon3.5+。如果你使用的是 Python2.7,请在代码顶部声明字符编码,否则会出现中文乱码问题。

#coding=utf-8
from __future__ import unicode_literals

pip 安装

$ pip install pyecharts

源码安装

$ git clone https://github.com/pyecharts/pyecharts.git
$ cd pyecharts
$ pip install -r requirements.txt
$ python setup.py install

地图插件

自从 v0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。想使用地图的开发者必须自己手动安装地图插件。具体参考 自定义地图篇。

首先开始来绘制你的第一个图表

from pyecharts import Bar

bar = Bar("我的第一个图表", "这里是副标题")
bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
# bar.print_echarts_options() # 该行只为了打印配置项,方便调试时使用
bar.render()    # 生成本地 HTML 文件

python之pyechart_第1张图片

  • add()
    主要方法,用于添加图表的数据和设置各种配置项
  • print_echarts_options()
    打印输出图表的所有配置项
  • render()
    默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:\my_first_chart.html"),文件用浏览器打开。

Note: 可以按右边的下载按钮将图片下载到本地,如果想要提供更多实用工具按钮,请在 add() 中设置 is_more_utils 为 True

from pyecharts import Bar

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

python之pyechart_第2张图片

使用主题

自 0.5.2+ 起,pyecharts 支持更换主体色系。下面是跟换为 'dark' 的例子:

from pyecharts import Bar

bar = Bar("我的第一个图表", "这里是副标题")
bar.use_theme('dark')
bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
bar.render()

python之pyechart_第3张图片

pyecharts 支持另外 5 个主体色系

使用 pyecharts-snapshot 插件

如果想直接将图片保存为 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。使用该插件请确保你的系统上已经安装了 Nodejs 环境。

  1. 安装 phantomjs $ npm install -g phantomjs-prebuilt
  2. 安装 pyecharts-snapshot $ pip install pyecharts-snapshot
  3. 调用 render 方法 bar.render(path='snapshot.png') 文件结尾可以为 svg/jpeg/png/pdf/gif。请注意,svg 文件需要你在初始化 bar 的时候设置 renderer='svg'。

更多内容请移步至 pyecharts-snapshot

图形绘制过程

图表类提供了若干了构建和渲染的方法,在使用的过程中,建议按照以下的顺序分别调用:

步骤 描述 代码示例 备注
1 实例一个具体类型图表的对象 chart = FooChart()  
2 为图表添加通用的配置,如主题 chart.use_theme()  
3 为图表添加特定的配置 geo.add_coordinate()  
4 添加数据及配置项 chart.add() 参考 数据解析与导入篇
5 生成本地文件(html/svg/jpeg/png/pdf/gif) chart.render()

从 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("柱状图数据堆叠示例")
    .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")
# 为渲染创建一个默认配置环境
# create_default_environment(filet_ype)
# file_type: 'html', 'svg', 'png', 'jpeg', 'gif' or 'pdf'

env.render_chart_to_file(bar, path='bar.html')
env.render_chart_to_file(line, path='line.html')

相比第一个例子,该代码只是使用同一个引擎对象,减少了部分重复操作,速度有所提高。

Pandas&Numpy 简单示例

如果使用的是 Numpy 或者 Pandas,可以参考这个示例

python之pyechart_第4张图片

Note: 使用 Pandas&Numpy 时,整数类型请确保为 int,而不是 numpy.int32

当然你也可以采用更加酷炫的方式,使用 Jupyter Notebook 来展示图表,matplotlib 有的,pyecharts 也会有的

Note: 从 v0.1.9.2 版本开始,废弃 render_notebook() 方法,现已采用更加 pythonic 的做法。直接调用本身实例就可以了。

比如这样

python之pyechart_第5张图片

还有这样

python之pyechart_第6张图片

如果使用的是自定义类,直接调用自定义类示例即可

python之pyechart_第7张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(python,数据分析,机器学习)