安装pyecharts
pip install pyecharts
install echarts-themes-pypkg
如果安装出错,则可指定安装的版本号
安装另一个版本的pyecharts,具体操作:pip install pyecharts==0.5.11
安装主题插件
pyecharts 支持更换主体色系。
安装主题插件:
pip install echarts-themes-pypkg
主题插件提供了如下主题
vintage
macarons
infographic
shine
roma
westeros
wonderland
chalk
halloween
essos
walden
purple-passion
romantic
使用主题
bar.use_theme("vintage")
公共属性
1、标题栏的属性:一般在实例化(初始化)类型时给与,如bar = Bar(“大标题”,“副标题”,···各种属性···)
title_color = “颜色”:标题颜色,可以是‘red’或者‘#0000’
title_pos = ‘位置’:标题位置,如‘center’,‘left’···
width = 1200:图表的宽
height = 800:图表的高
background_color = "颜色":图表的背景色
'title' -> str
主标题文本,支持 \n 换行,默认为 “”
'subtitle' -> str
副标题文本,支持 \n 换行,默认为 “”
'width' -> int
画布宽度,默认为 800(px)
'height' -> int
画布高度,默认为 400(px)
'title_pos' -> str/int
标题距离左侧距离,默认为’left’,有'auto', 'left', 'right', 'center'可选,也可为百分比或整数
'title_top' -> str/int
标题距离顶部距离,默认为’top’,有'top', 'middle', 'bottom'可选,也可为百分比或整数
'title_color' -> str
主标题文本颜色,默认为 ‘#000’
'subtitle_color' -> str
副标题文本颜色,默认为 ‘#aaa’
'title_text_size' -> int
主标题文本字体大小,默认为 18
'subtitle_text_size' -> int
副标题文本字体大小,默认为 12
'background_color' -> str
画布背景颜色,默认为 ‘#fff’
'is_grid' -> bool
是否使用 grid 组件,grid 组件用于并行显示图表。
具体实现参见 用户自定义.
·····
2、标签栏的属性:如bar.add(“标签”,x,values,···属性···)
'mark_'类,通个'mark_'显示,如 mark_point['max', 'min', 'average']:标出最大最小和平均值的点,
mark_point_textcolor,mark_line_symbolsize·····
'legend_'类,如legend_pos=‘left’:标签的位置
'is_'类,如is_label_show=True:显示每个点的值,
is_datazoom_show=True:实现移动控制x轴的数量
'is_convert' = True:x,y轴是否调换
常用的参数(可以在add()中设置,实现各种需求)
'xaxis_margin '-> int
x 轴刻度标签与轴线之间的距离。默认为 8
'is_stack':是否堆积
'is_convert':x,y轴是否交换
'is_legend_show':是否显示图例
'legend_orient':图列方向,有'horizontal'(默认水平显示),'vertical'(垂直)可选
'legend_pos':图例位置,有'left', 'center'(默认), 'right'可选
'legend_text_size/color':图例名称字体大小/颜色
'is_x/yaxis_show':是否显示x/y轴
'x/yaxis_interval':x/y轴标签的显示间隔
'x/yaxis_min/max':x/y轴刻度最小值/最大值
'x/yaxis_label_textsize/textcolor':x/y轴标签字体大小/颜色
'xaxis_rotate':x轴标签旋转角度
'is_splitline_show':是否显示网格线
'is_label_show':是否显示标签
'label_pos':标签的位置,有'top'(默认), 'left', 'right', 'bottom', 'inside','outside'可选
'label_text_color/size':标签字体颜色/大小
'is_random':是否随机排列颜色列表
'label_color':自定义标签颜色
'mark_point/line':标记点/线,默认有'min', 'max', 'average'可选。
可自定义标记点线,具体格式如:[{'coord': [x, y], 'name': '目标标记点'}],记住格式是一个列表
'mark_point/line_symbol':标记点/线图形,默认为'pin'(点),有'circle'(圆形), 'rect'(正方形), 'roundRect'(圆角正方形), 'triangle'(三角形), 'diamond'(菱形), 'pin'(点), 'arrow'(箭头)可选
'mark_point/line_symbolsize':标记点/线图形大小
'mark_point/line_textcolor':标记点/线字体颜色
'xaxis_interval' -> int
x 轴刻度标签的显示间隔,在类目轴中有效。默认会采用标签不重叠的策略间隔显示标签。
设置成 0 强制显示所有标签。设置为 1,表示『隔一个标签显示一个标签』,如果值
为 2,表示隔两个标签显示一个标签,以此类推
'xaxis_margin' -> int
x 轴刻度标签与轴线之间的距离。默认为 8
'xaxis_name' -> str
x 轴名称
'xaxis_name_size' -> int
x 轴名称体大小,默认为 14
'xaxis_name_gap' -> int
x 轴名称与轴线之间的距离,默认为 25
'xaxis_name_pos' -> str
x 轴名称位置,有’start’,’middle’,’end’可选
'xaxis_min '-> int/float
x 坐标轴刻度最小值,默认为自适应。
'xaxis_max '-> int/float
x 坐标轴刻度最大值,默认为自适应。
'xaxis_type' -> str
x 坐标轴类型
‘value’:数值轴,适用于连续数据。
‘category’:类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。
‘time’:时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
‘log’:对数轴。适用于对数数据。
'xaxis_rotate' -> int
x 轴刻度标签旋转的角度,在类目轴的类目标签显示不下的时候可以通过旋转防止标签之间
重。默认为 0,即不旋转。旋转的角度从 -90 度到 90 度。
'y_axis' -> list
y 坐标轴数据
'yaxis_interval' -> int
y 轴刻度标签的显示间隔,在类目轴中有效。默认会采用标签不重叠的策略间隔显示标签。
设置成 0 强制显示所有标签。设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推
'yaxis_margin' -> int
y 轴刻度标签与轴线之间的距离。默认为 8
'yaxis_formatter' -> str
y 轴标签格式器,如 ‘天’,则 y 轴的标签为数据加’天’(3 天,4 天),默认为 “”
'yaxis_name' -> str
y 轴名称
'yaxis_name_size' -> int
y 轴名称体大小,默认为 14
'yaxis_name_gap' -> int
y 轴名称与轴线之间的距离,默认为 25
'yaxis_name_pos' -> str
y 轴名称位置,有’start’, ‘middle’,’end’可选
'yaxis_min' -> int/float
y 坐标轴刻度最小值,默认为自适应。
'yaxis_max' -> int/float
y 坐标轴刻度最大值,默认为自适应。
'yaxis_type' -> str
y 坐标轴类型
‘value’:数值轴,适用于连续数据。
‘category’:类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。
‘time’:时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
‘log’:对数轴。适用于对数数据。
'yaxis_rotate' -> int
y 轴刻度标签旋转的角度,在类目轴的类目标签显示不下的时候可以通过旋转防止标签之间重叠。默认为 0,即不旋转。旋转的角度从 -90 度到 90 度。
3、dataZoom: dataZoome
组件用于区域缩放, 从而能自由关注细节的数据信息, 或者概览数据整体, 或者去除离群点的影响, (Line, Bar, Scatter, EffectScatter, Kline )
is_datazoom_show -> bool
是否使用区域缩放组件,默认为 False
datazoom_type -> str
区域缩放组件类型,默认为’slider’,有’slider’, ‘inside’可选
datazoom_range -> list
区域缩放的范围,默认为[50, 100]
datazoom_orient -> str
datazomm 组件在直角坐标系中的方向,默认为
‘horizontal’,效果显示在 x 轴。
如若设置为 ‘vertical’ 的话效果显示在 y 轴。
4、legend: 图例组件. 图例组件展现了不同系列的标记(Symbol), 颜色和名字. 可以通过点击图例控制那些系列不显示.
is_legend_show -> bool
是否显示顶端图例,默认为 True
legend_orient -> str
图例列表的布局朝向,默认为’horizontal’,有’horizontal’, ‘vertical’可选
legend_pos -> str
图例组件离容器左侧的距离,默认为’center’,有’left’, ‘center’, ‘right’可选
legend_top -> str
图例组件离容器上侧的距离,默认为’top’,有’top’, ‘center’, ‘bottom’可选
legend_selectedmode -> str/bool
图例选择的模式,控制是否可以通过点击图例改变系列的显示状态。默认为’multiple’,可以
设成 ‘single’ 或者 ‘multiple’ 使用单选或者多选模式。也可以设置为 False 关闭显示状
态。
5、label: 图形上的文本标签, 可用于说明图形的一些数据信息, 如值,名称等.
is_label_show -> bool
是否正常显示标签,默认不显示。标签即各点的数据项信息
is_emphasis -> bool
是否高亮显示标签,默认显示。高亮标签即选中数据时显示的信息项。
label_pos -> str
标签的位置,Bar 图默认为’top’。有’top’, ‘left’, ‘right’, ‘bottom’, ‘inside’,’outside’可选
label_text_color -> str
标签字体颜色,默认为 “#000”
label_text_size -> int
标签字体大小,默认为 12
is_random -> bool
是否随机排列颜色列表,默认为 False
is_random 可随机打乱图例颜色列表,算是切换风格
label_color -> list
自定义标签颜色。全局颜色列表,所有图表的图例颜色均在这里修改。如 Bar 的柱状颜色,Line 的线条颜色等等。
formatter -> list
标签内容格式器,有’series’, ‘name’, ‘value’, ‘percent’可选。如 [“name”, “value”]
series:图例名称
name:数据项名称
value:数据项值
percent:数据的百分比(主要用于饼图)
6、 lineStyle : 带线图形的线的风格选项, (Line, Polar, Radar, Graph, Parallel)
line_width -> int
线的宽度,默认为 1
line_opacity -> float
线的透明度,0 为完全透明,1 为完全不透明。默认为 1
line_curve -> float
线的弯曲程度,0 为完全不弯曲,1 为最弯曲。默认为 0
line_type -> str
线的类型,有’solid’, ‘dashed’, ‘dotted’可选。默认为’solid’
7、 grib3D : 3D 笛卡尔坐标系组配置项, 适用于 3D 图形. (Bar3D, Line3D, Scatter3D)
grid3D_width -> int
三维笛卡尔坐标系组件在三维场景中的高度。默认为 100
grid3D_height -> int
三维笛卡尔坐标系组件在三维场景中的高度。默认为 100
grid3D_depth -> int
三维笛卡尔坐标系组件在三维场景中的高度。默认为 100
is_grid3D_rotate -> bool
是否开启视角绕物体的自动旋转查看。默认为 False
grid3D_rotate_speed -> int
物体自传的速度。单位为角度 / 秒,默认为 10 ,也就是 36 秒转一圈。
grid3D_rotate_sensitivity -> int
旋转操作的灵敏度,值越大越灵敏。默认为 1, 设置为 0 后无法旋转。
7、visualMap : 是视觉映射组件, 用于进行 视觉编码, 也就是将数据映射视觉元素(视觉通道)
is_visualmap -> bool
是否使用视觉映射组件
visual_type -> str
制定组件映射方式,默认为’color‘,即通过颜色来映射数值。有’color’, ‘size’可选。’szie’通过数值点的大小,也就是图形点的大小来映射数值。
visual_range -> list
指定组件的允许的最小值与最大值。默认为 [0, 100]
visual_text_color -> list
两端文本颜色。
visual_range_text -> list
两端文本。默认为 [‘low’, ‘hight’]
visual_range_color -> list
过渡颜色。默认为 [‘#50a3ba’, ‘#eac763’, ‘#d94e5d’]
visual_range_size -> list
数值映射的范围,也就是图形点大小的范围。默认为 [20, 50]
visual_orient -> str
visualMap 组件条的方向,默认为’vertical’,有’vertical’, ‘horizontal’可选。
visual_pos -> str/int
visualmap 组件条距离左侧的位置,默认为’left’。有’right’, ‘center’, ‘right’可选,也可为百分数或整数。
visual_top -> str/int
visualmap 组件条距离顶部的位置,默认为’top’。有’top’, ‘center’, ‘bottom’可选,也可为百分数或整数。
is_calculable -> bool
是否显示拖拽用的手柄(手柄能拖拽调整选中范围)。默认为 True
pyecharts 配置项
pyecharts 遵循 “先配置后使用” 的基本原则,所有的配置项将统一于类 pyecharts.conf.PyEChartsConfig 类中。
如果使用 chart.render() 这种渲染方式,可以通过模块函数 configure 进行修改 pyecharts 中默认的配置类。
import pyecharts
pyecharts.configure(
jshost=None,
echarts_template_dir=None,
force_js_embed=None,
output_image=None,
global_theme=None
)
output_image 指定输出图片类型,有 'svg', 'jpeg', 'png' 可选
global_theme 指定全局主题,目前提供的主题有 dark, vintage, macarons, infographic, shine 和 roma。
支持保存做种格式
对象.render(path=‘snapshot.html’)
对象.render(path=‘snapshot.png’)
对象.render(path=‘snapshot.pdf’)
bar.render(path='snapshot.html')
bar.render(path='snapshot.png')
bar.render(path='snapshot.pdf')
图表类
图表类是 pyecharts 库中最为核心的内容,每一个类代表了 ECharts 中一个图表类型。
chart_id
字符串类型(str),图表唯一标识符,默认 uuid 格式的字符串,如 'd2d9dcc4e28247518186c0882d356ba8' 。
width
数字类型(number)或字符串(str)。图表容器 div 的宽度,接收一个有效 css 长度形式的字符串;如果是数字,以 px 为单位。
height
数字类型(number)或字符串(str)。图表容器 div 的高度,接收一个有效 css 长度形式的字符串;如果是数字,以 px 为单位。
chart_id、width、height 三个属性均支持可写。
options
字典类型(dict),ECharts 图表配置。不同图表类型具有不同数据格式
方法
add()
添加图表配置和数据。具体请参考其子类定义。
基本图表类
Bar(柱状图/条形图)
Bar3D(3D 柱状图)
Boxplot(箱形图)
EffectScatter(带有涟漪特效动画的散点图)
Funnel(漏斗图)
Gauge(仪表盘)
Geo(地理坐标系)
GeoLines(地理坐标系线图)
Graph(关系图)
HeatMap(热力图)
Kline/Candlestick(K线图)
Line(折线/面积图)
Line3D(3D 折线图)
Liquid(水球图)
Map(地图)
Parallel(平行坐标系)
Pie(饼图)
Polar(极坐标系)
Radar(雷达图)
Sankey(桑基图)
Scatter(散点图)
Scatter3D(3D 散点图)
Surface3D(3D 曲面图)
ThemeRiver(主题河流图)
Tree(树图)
TreeMap(矩形树图)
WordCloud(词云图)