Pycharts常用配置项

1
2
3
4
5
6
7
8
9
10
11
12
import os, re
import random
import numpy as np
import pandas as pd
from datetime import date, datetime, timedelta

from pyecharts.charts import Kline, Line, Bar, Grid,Map,Pie,Timeline,Geo
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
from pyecharts.globals import CurrentConfig, NotebookType,ThemeType,ChartType, SymbolType
from pyecharts.faker import Faker

创建一个条形图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
outpath = r"C:\Users\xiaoyx\Desktop"

# 赋值
bar = Bar()

# 添加x轴的数据列表
bar.add_xaxis(Faker.choose())

# 添加y轴的数据标签及列表
bar.add_yaxis("商家A", Faker.values())

# 生成图表到notebook
bar.render_notebook()

# 生成图表成html
# bar.render(f"{outpath}\\bar_{date.today():%y%m%d}.html")

Awesome-pyecharts

链式调用

语法:

1
2
3
4
5
6
7
8
9
a = (Bar()
.add_xaxis(xaxis_data = )
.add_yaxis(serise_name = ,
y_axis = ,
stack = '',
color= '#eee',
category_gap = 1,
)
)

参数:

  1. .add_xaxis()
    • xaxis_data:指定 x 轴的数据
  2. .add_yaxis()
    • series_name: 指定系列名称
    • y_axis :指定 y 轴的数据
    • stack : 指定 y 轴名称
    • color : 指定柱子的颜色
    • category_gap:指定柱子的间距
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bar=(Bar().add_xaxis(xaxis_data=Faker.choose())
.add_yaxis(series_name= "商家A",
y_axis=Faker.values(),
stack ='时间',
color ='#0f0',
# category_gap=0,
)
.add_yaxis('商家B',
Faker.values(),
stack = '数量',
color = '#f0f',
category_gap = 50
)
.set_global_opts(title_opts = opts.TitleOpts(
title = '直方图的基本设置',
subtitle = '柱子颜色和间距',
)

)
)
bar.render_notebook()
Awesome-pyecharts

配置选项

pyecharts中包括图的标题,颜色主题等,都是通过选项Options配置的。

1
2
3
4
5
6
7
8
9
10
bar = (
# 使用了InitOpts来初始化图的主题
Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋","袜子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.add_yaxis("商家B",[10, 21, 30, 15, 80, 92])
.add_yaxis('商家C',[13,47,23,12,56,29])
.set_global_opts(
title_opts=opts.TitleOpts(title="设置主标题", subtitle="设置副标题")))
bar.render_notebook()
Awesome-pyecharts

InitOpts:初始化配置项

  1. 可以配置诸如图像宽度,高度,图表主题,背景颜色等
  2. 图表的宽和高,单位像素
  3. 图表的主题,常用的有:
    • 白色:.LIGHT
    • 黑色:.DARK
    • 暖色:.INFOGRAPHIC
    • 冷色: .SHINE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
c = (Bar(
init_opts=opts.InitOpts(
# 设置图表宽度
width="100%",
# 设置图表高度
height="600px",
# 设置图表主题
theme=ThemeType.LIGHT,
)
)
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="初始化", subtitle="设置图表的宽高: 1000*600 和主题:ThemeType.LIGHT"))
)
c.render_notebook()

Awesome-pyecharts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
c = (Bar(
init_opts=opts.InitOpts(
# 设置图表宽度
width="100%",
# 设置图表高度
height="600px",
# 设置图表主题
theme=ThemeType.DARK,
)
)
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="初始化", subtitle="图表宽高: 1000*600 主题:ThemeType.Dark"))
)

c.render_notebook()
Awesome-pyecharts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
c = (Bar(
init_opts=opts.InitOpts(
# 设置图表宽度
width="100%",
# 设置图表高度
height="600px",
# 设置图表主题
theme=ThemeType.INFOGRAPHIC,
)
)
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="初始化", subtitle="图表宽高: 1000*600 主题:ThemeType.INFOGRAPHIC"))
)
c.render_notebook()




Awesome-pyecharts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
c = (Bar(
init_opts=opts.InitOpts(
# 设置图表宽度
width="100%",
# 设置图表高度
height="600px",
# 设置图表主题
theme=ThemeType.SHINE,
)
)
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="初始化", subtitle="图表宽高: 1000*600 主题:ThemeType.SHINE"))
)
c.render_notebook()
Awesome-pyecharts

全局配置项

使用 options 配置项,在 pyecharts 中,一切皆 Options。

  1. 全局配置项可通过 set_global_opts 方法设置

提示框配置

  1. axis_pointer_type=str ; axis_pointer_type=”cross”
    • cross : 十字准星指示器
    • line : 直线
    • shadow: 阴影
    • nonw :无
  2. is_show:是否显示提示框组件,包括提示框浮层和 axisPointer
  3. trigger:
    • axis: 坐标轴触发
    • item: 项目触发
  4. trigger_on:提示框触发的条件,
    • mousemove: 鼠标移动时触发。
    • click: 鼠标点击时触发。
    • mousemove|click: 鼠标移动或点击时触发。
    • none:不在 ‘mousemove’ 或 ‘click’ 时触发
  5. background_color:提示框浮层的背景颜色。
  6. border_color:提示框浮层的边框颜色。
  7. border_width:提示框浮层的边框宽
  8. 提示框的文字样式设置:
    • color: 字体颜色
    • font_size: 字体尺寸大小
    • font_weight: 字体加粗
    • font_family: 字体
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
c = (Bar().add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(tooltip_opts=opts.TooltipOpts(
axis_pointer_type="line",
# axis_pointer_type="cross",
# axis_pointer_type="shadow",
trigger= 'item',
# trigger= 'axis',
# trigger_on = 'click',
trigger_on = 'mousemove',
# trigger_on = 'none',
background_color="#000",
border_width=1,
border_color="#ccc",
textstyle_opts=opts.TextStyleOpts(
color="#fff",
font_size=14,
font_weight="normal",
font_family="微软雅黑")
),
title_opts=opts.TitleOpts(
title="图表提示框配置",
subtitle="提示框的触发 框的大小颜色 文字样式")
)
)

c.render_notebook()
Awesome-pyecharts

TitleOpts:标题配置项

语法:.set_global_opts(title_opts=opts.TitleOpts())
参数:

  1. title: 主标题

  2. subtitle: 副标题

  3. pos_left: 离容器左侧的距离

    • left/center/right:表示左对齐、居中、右对齐
    • 20: 表示距离20个像素
    • 20%:表示相对于图标宽度的20%
  4. pos_top:离容器上侧的距离

    • ‘top’, ‘middle’, ‘bottom’:靠上,居中,靠下
  5. pos_right:

  6. pos_bottom:

  7. padding: 内边距

    • 5:表示上下左右的内边距等于5
  8. item_gap: 主副标题之间的间距

  9. title_textstyle_opts=opts.TextStyleOpts()

    • color:
    • font_style:’normal’,’italic’,’oblique’
    • font_weight:’normal’,’bold’,’bolder’,’lighter’
    • font_family:
    • font_size:
  10. subtitle_textstyle_opts = opts.TextStyleOpts(…)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
c = Bar().add_xaxis(Faker.choose()
).add_yaxis("商家A", Faker.values()
).add_yaxis("商家B", Faker.values()
).add_yaxis("商家C", Faker.values()
).add_yaxis("商家D", Faker.values()
).set_global_opts(title_opts=opts.TitleOpts(
title="标题的配置", # 主标题
subtitle="标题、标题的定位、标题文字样式", # 副标题
pos_left="150px", #左定位 150像素 也可以是比例5%
pos_top="10px", #上定位
title_textstyle_opts=opts.TextStyleOpts(
color="#0ff",
font_size = 20,
font_style = 'oblique',
font_weight = 'bolder',
font_family = '楷体')
)
)
c.render_notebook()


Awesome-pyecharts

LegendOpts:图例配置项

语法:.set_global_opts(legend_opts=opts.LegendOpts())
参数:

  1. is_show : 是否显示图例组件 True / False
  2. type_ : 图例类型 plain 缺省,普通图例。scroll:可滚动的图例,当图例较多时使用
  3. selected_mode: 图例选择的模式
    • True:默认,开启图例点选
    • False:关闭
    • single:单选
    • multiple:多选
  4. pos_left 配置方法与标题栏的配置类似
  5. orient 图例列表的布局朝向
    • ‘horizontal’, ‘vertical’
  6. align:文本对齐方式 auto, left, right
  7. padding:文本的内边距
  8. item_gap:图例每项之间的间,隔横向布局时为水平间隔,纵向布局时为纵向间隔
  9. item_width:
  10. item_height:
  11. inactive_color = ‘#E6E61A’
    • 图例关闭时的颜色。默认是 #ccc
  12. textstyle_opts:与提示框的配置相同
  13. legend_icon:
    • ‘circle’, 圆
    • ‘rect’, 矩形
    • ‘roundRect’, 圆角矩形
    • ‘triangle’, 三角形
    • ‘diamond’, 钻石
    • ‘pin’, 饼
    • ‘arrow’, 箭头
    • ‘none’ 无
    • ‘image://url’设置为图片,其中 URL 为图片的链接
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
c = (Bar().add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.add_yaxis("商家C", Faker.values())
.add_yaxis("商家D", Faker.values())
.set_global_opts(
legend_opts=opts.LegendOpts(
type_='plain',
# selected_mode=True,
# selected_mode='single',
selected_mode='multiple',
# orient="vertical",
orient="horizontal",
item_gap=3,
item_width=25,
item_height=5,
pos_right='center',
legend_icon='roundRect' ),

title_opts=opts.TitleOpts(
title ="图例配置",
subtitle ="图例类型、横竖样式、图例列表的大小、间距、ICON")
)
)

c.render_notebook()
Awesome-pyecharts

DataZoomOpts:区域缩放配置项

图的底部的缩放配置项目。比如是否展示缩放,缩放过程中是否需要实时更新图等。
语法:.set_global_opts(datazoom_opts=[opts.DataZoomOpts(
参数:

  1. is_show :是否显示缩放组件
  2. type_ :组件类型,可选 “slider”, “inside
  3. range_start :数据窗口范围的起始百分比
  4. range_end :数据窗口范围的结束百分比
  5. orient :布局方式是横还是竖 ‘horizontal’, ‘vertical’
  6. xaxis_index:
  7. yaxis_index :
  8. is_zoom_lock:设置为 true 则锁定选择区域的大小,也就是说,只能平移,不能缩放9.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
c = (Bar().add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.add_yaxis("商家C", Faker.values())
.add_yaxis("商家D", Faker.values())
.set_global_opts(datazoom_opts=[opts.DataZoomOpts(
type_="inside",
range_start=0,
range_end=50),
opts.DataZoomOpts(
type_="slider",
xaxis_index=0,
is_show=True),
],
title_opts=opts.TitleOpts(
title="区域缩放配置",
subtitle="缩放条位置,初始范围")
)
)

c.render_notebook()
Awesome-pyecharts

ToolBoxFeatureOpts和ToolboxOpts:工具箱配置项

语法:.set_global_opts(title_opts=opts.TitleOpts( )
参数:

  1. is_show :是否显示工具箱
  2. orient :工具箱的布局
  3. pos_left:工具箱的定位
1
2
3
4
5
6
7
8
9
10
11
12
13
14
c = (Bar().add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.add_yaxis("商家C", Faker.values())
.add_yaxis("商家D", Faker.values())
.add_yaxis("商家E", Faker.values())
.add_yaxis("商家F", Faker.values())
.set_global_opts(toolbox_opts=opts.ToolboxOpts(),
title_opts=opts.TitleOpts(title="工具箱的配置",
subtitle="工具箱的布局、定位")
)

)
c.render_notebook()
Awesome-pyecharts

系列配置-LabelOpts 标签配置项

属于系列配置选项
语法:.set_series_opts(label_opts=opts.LabelOpts())
参数:

  1. is_show=True 是否显示标签
  2. position 标签的位置 可选 ‘top’,’left’,’right’,’bottom’,’inside’,’insideLeft’,’insideRight’
  3. font_size 文字的字体大小
  4. color 文字的颜色
  5. font_style
  6. rotate = 90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
c = (Bar().add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.add_yaxis("商家C", Faker.values())
.add_yaxis("商家D", Faker.values())
.set_series_opts(label_opts=opts.LabelOpts(
is_show=True,
position='insideTop',
font_size=9,
color= '#fff',
rotate =0),)
.set_global_opts(title_opts=opts.TitleOpts(
title="系列配置-标签配置",
subtitle="标签显示位置、标签文字样式设定")
)
)


c.render_notebook()
Awesome-pyecharts

系列配置-MarkLineOpts标记配置

语法:

1
2
3
4
5
6
7
8
9
10
.set_series_opts(
MarkPoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(name="自定义线",y = 44, ),
opts.MarkPointItem(type_="min"),
opts.MarkLineItem(type_="max"),
opts.MarkPointItem(type_="average")
]
)
)

参数:

  1. name:标注名称
  2. type_:标注类型 ‘min’ 最大值、’max’ 最大值 、’average’ 平均值
  3. value_index:指定在哪个维度上指定最大值最小值 ‘0’(xAxis, radiusAxis) 或 ‘1’ (yAxis, angleAxis),只有使用type_时有效
  4. value_dim:在使用 type 时有效,用于指定在哪个维度上指定最大值最小值。
  5. coord:标注的坐标。坐标格式视系列的坐标系而定,可以是直角坐标系上的 x, y
  6. value:标注值,可以不设
  7. symbol:标记的图形 ‘circle’, ‘rect’, ‘roundRect’, ‘triangle’, ‘diamond’, ‘pin’, ‘arrow’, ‘none’
  8. symbol_size:标记的大小
  9. itemstyle:标记点样式配置项,参考 `series_options.ItemStyleOpts
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
31
32
c = (Bar().add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.add_yaxis("商家C", Faker.values())
.add_yaxis("商家D", Faker.values())
.set_series_opts(markline_opts=opts.MarkLineOpts(
data=[
opts.MarkLineItem(
name = '最大值',
type_="max",
value_index =1,
value_dim = 1,
symbol='diamond',
coord = [2,5],
)

],
),
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="max", name="x轴最大",value_index=1),
],
),
)
.set_global_opts(title_opts=opts.TitleOpts(
title="系列配置-标记配置",
subtitle="标签显示位置、标签文字样式设定")
)
)


c.render_notebook()
Awesome-pyecharts

实例配置

  1. 大小、主题
  2. 柱状图
  3. 工具箱
  4. 标题
  5. 图例
  6. 缩放
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
c = (Bar(init_opts=opts.InitOpts(
width="100%",
height="100%",
theme=ThemeType.INFOGRAPHIC))
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.add_yaxis("商家C", Faker.values())
.add_yaxis("商家D", Faker.values())
.add_yaxis("商家E", Faker.values())
.add_yaxis("商家F", Faker.values())
.set_global_opts(
toolbox_opts=opts.ToolboxOpts(),
title_opts=opts.TitleOpts(
title="Pychart练习",
subtitle="设置标题、图例、工具箱、区域缩放、标签、提示框",
pos_left="150px",
pos_top="10px"),
legend_opts=opts.LegendOpts(
type_="scroll",
selected_mode=True,
orient="horizontal",
item_gap=3,
item_width=25,
item_height=5,
pos_right="25%"),
datazoom_opts=[
opts.DataZoomOpts(type_="inside",range_start=0,range_end=100),
opts.DataZoomOpts(type_="slider",xaxis_index=0,is_show=True),
],
tooltip_opts=opts.TooltipOpts(
axis_pointer_type="line",
# axis_pointer_type="cross",
# axis_pointer_type="shadow",
trigger= 'item',
# trigger= 'axis',
# trigger_on = 'click',
trigger_on = 'mousemove',
# trigger_on = 'none',
background_color="#000",
border_width=1,
border_color="#ccc",
textstyle_opts=opts.TextStyleOpts(
color="#fff",
font_size=14,
font_weight="normal",
font_family="微软雅黑")
),
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)

c.render_notebook()
Awesome-pyecharts