虽然我认为 pyechatrs 1.x 版本相比于0.5x 设计上更加优秀,但是不得不说较为繁杂的官方文档导致 1.x 上手会更加困难一些。
【在读文档方面,0.5x 显然更加友好】
首先指路官方文档:https://pyecharts.org/#/zh-cn/仪表盘
class Gauge(
# 初始化配置项,参考 `global_options.InitOpts`
init_opts: opts.InitOpts = opts.InitOpts()
)
由此可见,实例化仪表盘时,所有初始化修改都是参看opts.InitOpts的。
大概就是实例化一个opts.InitOpts对象,具体参数的修改都在该对象中,改好后把这个对象传递给Gauge的init_opts参数即可,显然这种封装非常优雅,就是理解上稍微困难了一点点。
然后就是该图表几乎所有的特色操作,都在add方法中。
def add(
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,
# 系列数据项,序列容器,格式为 [(key1, value1), (key2, value2)]
data_pair: Sequence,
# 是否选中图例
is_selected: bool = True,
# 最小的数据值
min_: Numeric = 0,
# 最大的数据值
max_: Numeric = 100,
# 仪表盘平均分割段数
split_number: Numeric = 10,
# 仪表盘半径,可以是相对于容器高宽中较小的一项的一半的百分比,也可以是绝对的数值。
radius: types.Union[types.Numeric, str] = "75%",
# 仪表盘起始角度。圆心 正右手侧为0度,正上方为 90 度,正左手侧为 180 度。
start_angle: Numeric = 225,
# 仪表盘结束角度。
end_angle: Numeric = -45,
# 仪表盘刻度是否是顺时针增长。
is_clock_wise: bool = True,
# 轮盘内标题文本项标签配置项,参考 `chart_options.GaugeTitleOpts`
title_label_opts: types.GaugeTitle = opts.GaugeTitleOpts(),
# 轮盘内数据项标签配置项,参考 `chart_options.GaugeDetailOpts`
detail_label_opts: types.GaugeDetail = opts.GaugeDetailOpts(formatter="{value}%"),
# 仪表盘指针配置项目,参考 `chart_options.GaugePointerOpts`
pointer: types.GaugePointer = opts.GaugePointerOpts(),
# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
)
add方法中的大多数参数都比较容易理解和使用,需要强调的就是这最后五项参数。
参考最上面初始化时需要用到opts.InitOpts工具的实例对象,这里五项也都需要特殊的工具实例对象,然后传递给对应的参数即可!
异议处理
1. 完成率和显示数据重合
该问题一般是考虑调整参数来处理,如果参数处理解决不了,那这个就算是bug啦,得告知项目维护方处理。
但是好在通过调参是可以解决的,首先考虑这是数据项的问题,那么修改detail_label_opts参数好了。
# 轮盘内数据项标签配置项,参考 `chart_options.GaugeDetailOpts`
detail_label_opts: types.GaugeDetail = opts.GaugeDetailOpts(formatter="{value}%"),
这里所有的操作都是在opts.GaugeDetailOpts中进行的。指路链接。