PyEcharts说明文档

https://pyecharts.org/#/zh-cn/global_options?id=legendopts%ef%bc%9a%e5%9b%be%e4%be%8b%e9%85%8d%e7%bd%ae%e9%a1%b9

接下来会用到的数据:

链接:https://pan.baidu.com/s/1RAqFCxWcl4OEChlRtSBooA
提取码:612s

pyecharts快速开始

pyecharts中可以绘制的图有很多,这里我们先来总体的了解一下他的使用风格,和调用的方式。

绘制条形图

1
2
3
4
5
6
7
8
9
from pyecharts.charts import Bar
bar = Bar()
#添加x轴数据
c = (
Bar()
.add_xaxis(['苹果','橘子','梨','樱桃'])#添加x轴数据
.add_yaxis('金额',[10,5,8,17])#添加y轴数据
.render('fruit.html')#渲染数据
)

链式调用

pyecharts中所有的方法都支持链式调用。

1
2
3
4
5
6
7
8
9
from pyecharts.charts import Bar
bar = Bar()
#添加x轴数据
c = (
Bar()
.add_xaxis(['苹果','橘子','梨','樱桃'])#添加x轴数据
.add_yaxis('金额',[10,5,8,17])#添加y轴数据
.render('fruit.html')#渲染数据
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class InitOpts(
# 图表画布宽度,css 长度单位。
width: str = "900px",

# 图表画布高度,css 长度单位。
height: str = "500px",

# 图表 ID,图表唯一标识,用于在多图表时区分。
chart_id: Optional[str] = None,

# 渲染风格,可选 "canvas", "svg"
# # 参考 `全局变量` 章节
renderer: str = RenderType.CANVAS,

# 网页标题
page_title: str = "Awesome-pyecharts",

# 图表主题
theme: str = "white",

# 图表背景颜色
bg_color: Optional[str] = None,

# 远程 js host,如不设置默认为 https://assets.pyecharts.org/assets/"
# 参考 `全局变量` 章节
js_host: str = "",

# 画图动画初始化配置,参考 `global_options.AnimationOpts`
animation_opts: Union[AnimationOpts, dict] = AnimationOpts(),
)

全局配置项

我们来看下全局配置项有哪些。在学习具体的配置项之前,先来看下pyecharts生成的图由哪几个部分组成。

针对以上每个部分,都有相应的配置项来进行配置。所有的配置类,都是放到pyecharts.options中。

InitOpts:初始化配置项

可以配置诸如图像宽度,高度,图表主题,背景颜色等。

class InitOpts(
# 图表画布宽度,css 长度单位。
width: str = “900px”,

# 图表画布高度,css 长度单位。
height: str = "500px",

# 图表 ID,图表唯一标识,用于在多图表时区分。
chart_id: Optional[str] = None,

# 渲染风格,可选 "canvas", "svg"
# # 参考 `全局变量` 章节
renderer: str = RenderType.CANVAS,

# 网页标题
page_title: str = "Awesome-pyecharts",

# 图表主题
theme: str = "white",

# 图表背景颜色
bg_color: Optional[str] = None,

# 远程 js host,如不设置默认为 https://assets.pyecharts.org/assets/"
# 参考 `全局变量` 章节
js_host: str = "",

# 画图动画初始化配置,参考 `global_options.AnimationOpts`
animation_opts: Union[AnimationOpts, dict] = AnimationOpts(),
1
2
3
4
5
6
7
8
9
10
11
from pyecharts.charts import Bar
from pyecharts import options as opts #导入配置项
from faker import Faker
bar = Bar()
#添加x轴数据
c = (
Bar(init_opts=opts.InitOpts(width='400px',height='300px',bg_color='#ccc'))
.add_xaxis(Faker.choose())
.add_yaxis('金额',Faker.values())
)
c.render('faker1.html')

TitleOpts:标题配置项

配置图的标题和子标题等信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from pyecharts.charts import Bar
from pyecharts import options as opts #导入配置项
from faker import Faker
bar = Bar()
#标题配置项
c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('金额',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(
title='商品价格',
subtitle='项目',
pos_left='20px',
title_textstyle_opts=opts.TextStyleOpts(
font_size=10
)

)
)
)
c.render('faker2.html')

LegendOpts:图例配置项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from pyecharts.charts import Bar
from pyecharts import options as opts #导入配置项
from faker import Faker
bar = Bar()

c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('品牌A',Faker.values())
.add_yaxis('品牌B',Faker.values())
.set_global_opts(
legend_opts=opts.LegendOpts(
selected_mode='single',#只显示一列
orient='vertical',#垂直项
)
)
)
c.render('faker3.html')

image-20210325224654542

VisualMapOpts:视觉映射配置项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from pyecharts.charts import Bar,Scatter
from pyecharts import options as opts #导入配置项
from faker import Faker
bar = Bar()

c = (
Scatter()
.add_xaxis(Faker.choose())
# .add_yaxis('品牌A',Faker.values())
# .add_yaxis('品牌B',Faker.values())
.add_yaxis('销量',[(i,j) for i,j in zip(Faker.values(),Faker.values())])
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
type_='size'
)
)

)
c.render('faker4.html')

TooltipOpts:提示框配置项

  • 原有配置项还不错
1
2
3
4
5
6
7
8
9
10
11
12
13
14
c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis("商家A",Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="Scatter-多维度数据"),
tooltip_opts=opts.TooltipOpts(
formatter=JsCode(
"function (params) {return params.value}"
)
)
)
)
c.render_notebook()

AxisLineOpts/AxisTickOpts/AxisPointerOpts/AxisOpts: 坐标轴轴线/刻度/指示器/坐标轴配置项。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from pyecharts.charts import Bar,Scatter
from pyecharts import options as opts #导入配置项
from faker import Faker
bar = Bar()

c = (
Bar()
.add_xaxis(
[
"名字拉拉长的X轴标签1",
"名字拉拉长的X轴标签2",
"名字拉拉长的X轴标签3",
"名字拉拉长的X轴标签4",
"名字拉拉长的X轴标签5",
"名字拉拉长的X轴标签6",
]
)
.add_yaxis("商家A", [10, 20, 30, 40, 50, 40])
.add_yaxis("商家B", [20, 10, 40, 30, 40, 50])
.set_global_opts(
xaxis_opts=opts.AxisOpts(
name="商家名称",
axislabel_opts=opts.LabelOpts(rotate=-15), #刻度标签旋转
axisline_opts = opts.AxisLineOpts(symbol="arrow",linestyle_opts=opts.LineStyleOpts(width=2)), #箭头配置 x轴多个箭头
axistick_opts = opts.AxisTickOpts(is_inside=True,length=20),#刻度向内 并制定长度
axispointer_opts = opts.AxisPointerOpts(is_show=True,type_="line")#显示线
)
)
)
c.render('faker5.html')