1. 配置项 总纲
总体来说,配置项就是对可视化过程中图像的不同形态属性 在展示状态下的展示
配置项内部:
(1)可以放置项的相关参数,特别是包括配置项内部嵌套其他配置项的参数,例如:
bar.set_global_opts(title_opts=opts.TitleOpts(title='小花园浇花',subtitle='SSS'),
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True,linestyle_opts=opts.LineStyleOpts(color='red')),#添加x轴上的分割线
# set_global_opts 的参数配置项 plitarea_opts 再嵌套 areastyle_opts
splitarea_opts=opts.SplitAreaOpts(areastyle_opts=opts.AreaStyleOpts(opacity=0.5,color='blue')),#对分割线之间的区域进行填充
axisline_opts=opts.AxisLineOpts(symbol=['none', 'arrow'],linestyle_opts=opts.LineStyleOpts(color='black'))),
# 这里同样也是 嵌套配置项。和前面一样
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True,linestyle_opts=opts.LineStyleOpts(color='red')),
axisline_opts=opts.AxisLineOpts(symbol=['none', 'arrow'],linestyle_opts=opts.LineStyleOpts(color='black'))),
)
其中,
# 全局配置项set_global_opts 中的参数配置项 splitarea_opts 再嵌套 areastyle_opts :
splitarea_opts=opts.SplitAreaOpts(areastyle_opts=opts.AreaStyleOpts(opacity=0.5,color='blue'))
可以看出,配置项是一层嵌套一层的结果。一般都是把set_series_opts 系列配置项的参数内容嵌套在全局配置项set_global_opts 里面,就类似于全局配置项掌管宏观方面的配置,再把系列配置项的内容嵌套进去,就是用来美化细节,即调整微观方面。
当然除了set_series_opts 系列配置项用于嵌套之外,同时可以独立使用。例如:
bar1.set_series_opts(labelopts=opts.LableOpts(is_show=True)),)
如官网上的那句话:一切皆是配置项 官网:pyecharts - A Python Echarts Plotting Library built with love.
(2)在 设置y轴add_yaxis,内部也会添加相关的配置项,此时情况和上面(1)相同。
(3)配置项中的其他细节
a. 其中代码的注释 #,使用 # 标注在代码行的上一行或同一行
b. 其中Optional表示可选择是否可填,
c. Union表示列表,比如Union[Numeric,str]表示数字类型和字符串类型
比如title: str = "还原"表示title参数支持str字符串类型,默认是还原。
例如:
其中:
# 标记线配置项,参考 `series_options.MarkLineOpts`
markline_opts: Union[opts.MarkLineOpts, dict, None] = None,
表示 markline_opts 后面可以 = 符合列表内的 任何一项内容,默认 None
2. 全局配置项 set_global_opts
a. 全局配置项共包含 25 项配置内容,不同的可视化内容使用的侧重点不一样,具体问题区别对待. 偏重于可视化的全局外观用到的文字,色彩等样式调整。
常用配置项名称:
TitleOpts:标题配置项 (设置标题相关)TitleOpts:标题配置项
LegendOpts:图例配置项 (设置图例相关)
AxisLineOpts: 坐标轴轴线配置项 (设置坐标轴相关)
AxisPointerOpts: 坐标轴指示器配置项 (设置坐标轴相关)
AxisOpts:坐标轴配置项 (设置坐标轴相关)
.set_global_opts(
xaxis_opts=opts.AxisOpts(
# 坐标轴名称
name="xxx",
# 最小值
min_=x_list[0],
# 最大值
max_=x_list[-1],
# 是否将最小值与原点重合。如果是True的话,最小值跟原点之间会有距离
boundary_gap=False,
# 水平对齐。y轴的应该写middle,就是竖着居中了
name_location='center',
# 名称与轴之间的距离
name_gap=30,
# 坐标轴名字的格式
name_textstyle_opts=opts.TextStyleOpts(
color='navy',
font_family='Courier New',
font_size=15,
),
# 刻度值的格式。此处是主刻度,interval表示隔x个显示一个刻度值
axislabel_opts=opts.LabelOpts(
color='navy',
font_size=15,
font_family='Courier New',
interval=299,
),
3. 系列配置项 set_series_opts
a. 系列配置项共包含 18 项配置内容,主要偏重于可视化过程中的 图像细节把控和调整。
多数配置项都能用到,常用配置项名称:
MarkPointItem:标记点数据项 (设置标记点相关)
MarkPointOpts:标记点配置项 (设置标记点相关)
MarkLineItem:标记线数据项 (设置标记线相关)
MarkLineOpts:标记线配置项 (设置标记线相关)
例如:
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
effect_opts=opts.EffectOpts(),#仅对散点起效果
# 可以看出,配置项嵌套在内部
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max',name='最大值')]),
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='min',name='最大值'),
opts.MarkLineItem(type_='average',name='平均值'),]),
minortick_opts=opts.MinorTickOpts(is_show=True))
4. 接下来关于 图表类型 中的配置项设置
pycharts的图表类型:
pyecharts - A Python Echarts Plotting Library built with love.
(1)图表类型
是对不同的图表的形成图像的数据输入,以及相关配置设置。
图表类型 分7项内容:
a. 除了 直角坐标系图表 之外,其他的图表都是 obj.add(data, opts)
直角坐标系图表 是:
obj.add_xaxis(x_data) # 添加 x 轴数据
obj.add_yaxis(y_data, opts) # 添加 y 轴数据
举例:
a1. 其他图表(例:饼图 Document)
obj.add(data, opts)
func pyecharts.charts.Pie.add
def add(
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,
# 系列数据项,格式为 [(key1, value1), (key2, value2)]
data_pair: types.Sequence[types.Union[types.Sequence, opts.PieItem, dict]],
# 系列 label 颜色
color: Optional[str] = None,
# 从调色盘 option.color 中取色的策略,可取值为:
# 'series':按照系列分配调色盘中的颜色,同一系列中的所有数据都是用相同的颜色;
# 'data':按照数据项分配调色盘中的颜色,每个数据项都使用不同的颜色。
color_by: types.Optional[str] = "data",
# 是否启用图例 hover 时的联动高亮。
is_legend_hover_link: bool = True,
---------------------- 官网截取内容
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
c = (
Pie()
.add("", [list(z) for z in zip(Faker.choose(), Faker.values())]) # 把类目和对应的数值放在一起
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
.render("pie_base.html")
)
其中 .add("", [list(z) for z in zip(Faker.choose(), Faker.values())]) # 把类目和对应的数值放在一起
a2. 直角坐标系图表 (例子:柱状图 Document)
obj.add_xaxis(x_data) # 添加 x 轴数据
obj.add_yaxis(y_data, opts) # 添加 y 轴数据
func pyecharts.charts.Bar.add_yaxis
def add_yaxis(
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,
# 系列数据
y_axis: Sequence[Numeric, opts.BarItem, dict],
# 是否选中图例
is_selected: bool = True,
# 使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用。
xaxis_index: Optional[Numeric] = None,
# 使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。
yaxis_index: Optional[Numeric] = None,
---------- 官网截取内容
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkLine(指定类型)"))
.set_series_opts(
label_opts=opts.LabelOpts(is_show=False),
markline_opts=opts.MarkLineOpts(
data=[
opts.MarkLineItem(type_="min", name="最小值"),
opts.MarkLineItem(type_="max", name="最大值"),
opts.MarkLineItem(type_="average", name="平均值"),
]
),
)
.render("bar_markline_type.html")
)
参考内容:
pyecharts的各个系列配置项设置示例——个人整理与分享_pycharts marklineitem-CSDN博客
python-pyecharts绘图-坐标轴标签格式化formatter+刻度调整+批量输出为pdf_python pyecharts 输出格式-CSDN博客