from pyecharts import Bar,Line,Pie,Scatter
bar = Bar('This is a bar')
x = np.arange(12)
y = np.random.randint(1,20,12)
bar.add('random', x, y)
bar.render()
add() 方法
主要方法,用于添加图表的数据和设置各种配置项
Note: 若有多个add,全局配置项要在最后一个 add() 上设置,否侧设置会被冲刷掉
render(path)
默认将会在根目录下生成一个 render.html 的文件,
支持 path 参数,设置文件保存位置,如 render(r"e:\my_first_chart.html"),文件用浏览器打开。
mark_point=[“max”,”min”]
在图上用点标记最大最小值
Mark_line = [“average”]
用线标记平均值
print_echarts_options()
打印输出图表的所有配置项,一般调试使用
参数 | 说明,等号后面为其默认值 |
---|---|
Title=‘’ | str类型,主标题文本,\n可以换行 |
Subtitle=‘’ | str类型,副标题文本,\n可以换行 |
width=800,height=400 | int类型,画布宽度以及高度 |
title_pos=‘left’ | str/int类型,标题距左侧距离,可为’auto’, ‘left’, ‘right’, ‘center’,或者整数或百分比 |
title_top=‘top’ | str/int类型,标题距离顶部距离,有’top’, ‘middle’, 'bottom’可选,或者整数或百分比 |
title_color=’#000’ | str类型,主标题文本颜色 |
subtitle_color=’#aaa’ | str类型,副标题文本颜色 |
title_text_size=18 | int类型,主标题文本字体大小 |
subtitle_text_size=12 | int类型,副标题文本字体大小 |
background_color=’#fff’ | str类型,画布背景颜色 |
page_title=‘Echarts’ | str类型,指定生成的 html 文件中 标签的值,即页面显示的标题值 |
renderer=‘canvas’ | str类型,指定使用渲染方式,有 ‘svg’ 和 ‘canvas’ 可选。3D 图仅能使用 ‘canvas’ |
extra_html_text_label | list类型,额外的 HTML 文本标签,( 标签)。类型为 list,list[0] 为文本内容,list[1] 为字体风格样式(选填)。如 [“this is a p label”, “color:red”]。仅限于在单个图形或者 page 类时使用is_animation=True:bool类型,是否开启动画 |
mark_point | list,标记点,默认有’min’, ‘max’, 'average’可选 |
mark_line | == list==,标记线,默认有’min’, ‘max’, 'average’可选 |
mark_point支持自定义标记点
[{“coord”: [a1, b1], “name”: “first markpoint”}, {“coord”: [a2, b2], “name”: “second markpoint”}],需自己传入标记点字典,共有两个键值对,‘coord’ 对应为 x y 轴坐标, ‘name’ 为标记点名称
参数 | 说明,等号后面为其默认值 |
---|---|
x_axis,y_axis | list,x,y轴数据项 |
is_convert=False | bool,是否交换 x 轴与 y 轴 |
xaxis_rotate =0,yaxis_rotate=0 | int,x ,y轴刻度标签旋转的角度,在类目轴的类目标签显示不下的时候可以通过旋转防止标签之间重叠。旋转的角度从 -90 度到 90 度 |
xaxis_formatter="" ,yaxis_formatter ="" | str,x ,y轴标签格式器,如 ‘天’,则 x 轴的标签为数据加’天’(3 天,4 天) |
xaxis_name,yaxis_name | str,x,y 轴名称 |
is_xaxislabel_align=False,is_yaxislabel_align=False | bool,x,y 轴刻度线和标签是否对齐 |
xaxis_min,yaxis_min | int/float,x,y 坐标轴刻度最小值,默认为自适应。使用特殊值 “dataMin” 可自定以数据中最小值为 x,y 轴最小值。 |
xaxis_max ,yaxis_max | int/float,x,y 坐标轴刻度最大值,默认为自适应。使用特殊值 “dataMax” 可自定以数据中最小值为 x,y 轴最大值 |
-------------分割线----------------- | -------------上面方法比较常用--------------- |
xaxis_type,yaxis_type | str,x,y 坐标轴类型 ,‘value’:数值轴,适用于连续数据。‘category’:类目轴,适用于离散的类目数据。‘log’:对数轴。适用于对数数据。 |
is_splitline_show=True | bool,是否显示 y 轴网格线 |
xaxis_name_pos,yaxis_name_pos | str,x,y 轴名称位置,有’start’,‘middle’,'end’可选 |
is_xaxis_boundarygap=True,is_yaxis_boundarygap=True | bool,x,y 轴两边留白策略,适用于类目轴。类目轴中 boundaryGap 可以配置为 True 和 False。这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带------(band)中间,即两边留白 |
is_xaxis_show=True,is_yaxis_show=True | bool,是否显示 x ,y轴 |
is_xaxis_inverse=False,is_yaxis_inverse=False | bool,是否反向 x,y 坐标轴 |
xaxis_interval,yaxis_interval | int,x,y 轴刻度标签的显示间隔,在类目轴中有效。默认会采用标签不重叠的策略间隔显示标签。设置成 0 强制显示所有标签。设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推 |
xaxis_margin=8,yaxis_margin=8 | int,x ,y轴刻度标签与轴线之间的距离 |
xaxis_name_size=14,yaxis_name_size=14 | int,x,y 轴名称体大小 |
xaxis_name_gap=25,yaxis_name_gap=25 | int,x ,y轴名称与轴线之间的距离 |
xaxis_pos,yaxis_pos | str,x,y 坐标轴位置,有’top’,'bottom’可选 |
xa—xis_label_textsize=12,yaxis_label_textsize=12 | int,x,y 坐标轴标签字体大小 |
xaxis_label_textcolor="#000",yaxis_label_textcolor="#000" | str,x,y 坐标轴标签字体颜色 |
xaxis_line_color =None,yaxis_line_color =None | str ,x,y 坐标轴线线的颜色 |
xaxis_line_width= 1,yaxis_line_width= 1 | int,x,y 坐标轴线线的宽度 |
参数 | 说明,等号后面为其默认值 |
---|---|
is_datazoom_show=False | bool,是否使用区域缩放组件 |
datazoom_type= ‘slider’ | str,区域缩放组件类型,有==‘slider’, ‘inside’, ‘both’==可选 |
datazoom_range= [50, 100] | list,区域缩放的范围,开始显示的部分,[20,50]即是横坐标20%到50%的数据 |
datazoom_orient=‘horizontal’(效果显示在 x 轴) | str,datazoom 组件在直角坐标系中的方向。如若设置为 ‘vertical’ 的话效果显示在 y 轴 |
下面为添加额外的缩放组件 | ------------------------ |
is_datazoom_extra_show= False | bool,是否使用额外区域缩放组件 |
datazoom_extra_type= ‘slider’ | str,额外区域缩放组件类型,有’slider’, ‘inside’, 'both’可选 |
datazoom_extra_range = [50, 100] | list,额外区域缩放的范围 |
datazoom_extra_orient = ‘vertical’ | str,额外 datazoom 组件在直角坐标系中的方向,默认为 ‘vertical’,效果显示在 y 轴。如若设置为 ‘horizontal’ 的话效果显示在 x 轴 |
-------------分割线----------------- | -------------上面方法比较常用--------------- |
datazoom_extra_xaxis_index,datazoom_extra_yaxis_index | int/list,额外 datazoom 组件控制的 x,y 轴索引 默认控制第一个 x,y 轴,如没特殊需求无须显示指定。单个为 int 类型而控制多个为 list 类型,如 [0, 1] 表示控制第一个和第二个 x,y 轴 |
datazoom_xaxis_index,datazoom_yaxis_index | int/list,datazoom 组件控制的 x,y 轴索引,默认控制第一个 x ,y轴,如没特殊需求无须显示指定。单个为 int 类型,而控制多个为 list 类型,如 [0, 1] 表示控制第一个和第二个 x ,y轴 |
is_legend_show=True | bool,是否显示顶端图例 |
legend_orient=‘horizontal’ | str,图例列表的布局朝向,有’horizontal’横向排列, 'vertical’竖向排列 |
legend_pos= ‘center’ | str,图例组件离容器左侧的距离,有’left’, ‘center’, 'right’可选,也可以为百分数,如"%60" |
legend_top= ‘top’ | str,图例组件离容器上侧的距离,有’top’, ‘center’, 'bottom’可选,也可以为百分数,如"%60" |
legend_selectedmode= ‘multiple’ | str/bool,图例选择的模式,控制是否可以通过点击图例改变系列的显示状态。可以设成 ‘single’ 或者 ‘multiple’ 使用单选或者多选模式。也可以设置为 False 关闭显示状态。 |
legend_text_size | int,图例名称字体大小 |
legend_text_color | str,图例名称字体颜色 |
is_label_show= False | bool,是否正常显示标签,标签即各点的数据项信息 |
is_random= False | bool,是否随机排列颜色列表 |
label_color | list,自定义标签颜色,全局颜色列表,所有图表的图例颜色均在这里修改,如 Bar 的柱状颜色,Line 的线条颜色等等 |
is_label_emphasis= True | bool,是否高亮显示标签,高亮标签即选中数据时显示的信息项 |
label_pos | str,标签的位置,Bar 图默认为’top’,有’top’, ‘left’, ‘right’, ‘bottom’, ‘inside’,'outside’可选 |
label_emphasis_pos | str,高亮标签的位置,Bar 图默认为’top’,有’top’, ‘left’, ‘right’, ‘bottom’, ‘inside’,'outside’可选 |
label_text_color = “#000” | str,标签字体颜色 |
label_emphasis_textcolor="#fff" | str,高亮标签字体颜色 |
label_text_size=12 | int,标签字体大小 |
label_emphasis_textsize=12 | int,高亮标签字体大小 |
label_formatter,str,模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。使用示例,如 label_formatter=’{a}’,在 trigger 为 ‘axis’ 的时候,会有多个系列的数据,此时可以通过 {a0}, {a1}, {a2} 这种后面加索引的方式表示系列的索引。不同图表类型下的 {a},{b},{c},{d} 含义不一样。 其中变量 {a}, {b}, {c}, {d} 在不同图表类型下代表数据含义为:
line_width= 1 | int,线的宽度 |
line_opacity =1 | float,线的透明度,0 为完全透明,1 为完全不透明 |
line_curve=0 | float,线的弯曲程度,0 为完全不弯曲,1 为最弯曲 |
line_type = ‘solid’ | str,线的类型,有’solid’, ‘dashed’, 'dotted’可选 |
line_color | str,线的颜色 |
is_visualmap=False | bool,是否使用视觉映射组件 |
visual_type='color‘ | str,制定组件映射方式,默认为’color‘,即通过颜色来映射数值。有’color’, 'size’可选。'size’通过数值点的大小,也就是图形点的大小来映射数值 |
visual_range=[0, 100] | list,指定组件的允许的最小值与最大值,即开始时显示的范围 |
visual_text_color | list,两端文本颜色 |
visual_range_size= [20, 50] | list,数值映射的范围,也就是图形点大小的范围 |
visual_orient= ‘vertical’ | str,visualMap 组件条的方向。有’vertical’, 'horizontal’可选 |
通过柱形的高度/条形的宽度来表现数据的大小
add(name, x_axis, y_axis, is_stack=False, bar_category_gap='20%', **kwargs)
import numpy as np
from pyecharts import Bar
bar = Bar('This is a bar')
x = np.arange(12)
y = np.random.randint(1,20,12)
bar.add('bar', x, y, mark_point=['max','min'], mark_line=['average'])
bar.render()
箱形图是一种用作显示一组数据分散情况资料的统计图。它能显示出一组数据的最大值、最小值、中位数、下四分位数及上四分位数。
add(name, x_axis, y_axis, **kwargs)
import numpy as np
from pyecharts import Boxplot
box = Boxplot('This is a box')
x = list('abcd')
y = np.random.randint(1,10,40000).reshape(4,10000)
box.add('box', x, box.prepare_data(y))
box.render()
add(name, x_axis, y_axis, is_symbol_show=True, is_smooth=False, is_stack=False, is_step=False, is_fill=False, **kwargs)
import numpy as np
from pyecharts import Line
line = Line('This is a line')
x = np.arange(10)
y1 = np.random.randint(5,15,10)
y2 = np.random.randint(5,25,10)
line.add('line1', x, y1, is_smooth=True, is_fill=True, area_opacity=0.5)
line.add('line2', x, y2, is_smooth=True, is_fill=True, area_opacity=0.5)
line.render()
饼图主要用于表现不同类目的数据在总和中的占比。每个的弧度表示数据数量的比例
add(name, attr, value, radius=None, center=None, rosetype=None, **kwargs)
import numpy as np
from pyecharts import Pie
pie = Pie('This is title')
attr = list('abcde')
values1 = [10,20,36,55,30]
values2 = [14,35,32,24,11]
pie.add('pie1', attr, values1, center=[20,50])
pie.add('pie2', attr, values2, center=[60,50], rosetype='radius')
pie.render()
直角坐标系上的散点图可以用来展现数据的 x,y 之间的关系,如果数据项有多个维度,可以用颜色来表现,利用 geo 组件
add(name, x_axis, y_axis, extra_data=None, symbol_size=10, **kwargs)
import numpy as np
from pyecharts import Scatter
scatter = Scatter('This is title')
x = np.random.randint(1,100,50)
y = np.random.randint(1,200,50)
# 通过颜色映射数据大大小
scatter.add('scatter', x, y, is_visualmap=True)
scatter.render()