当前pyecharts
版本为1.9.0
概述
options
包位于pyecharts
包顶级目录中,用于定义pyecharts
的配置类。包结构如下:
├─options # 配置项包
│ │ charts_options.py # 定义图表项配置类
│ │ global_options.py # 定义全局配置类
│ │ series_options.py # 定义系列配置类
│ │ __init__.py # 暴露包内3个模块的所有配置类
在pyecharts
中,所有配置都被定义为独立的类,在options
包中,所有配置项分别定义在3个不同的模块中。
所有配置类结构非常相似,都是series_options.py
模块BasicOpts
类的子类,因此,所有配置类只有opts
一个属性即配置项字典;所有配置类都拥有update
和get
两个方法,update
方法接收关键字参数,即将配置项添加到opts
中,get
方法接收1个字符串参数,即获取opts
中对应配置项的值;配置类的构造方法即根据参数构造opts
属性。
BasicOpts
源码
class BasicOpts:
__slots__ = ("opts",)
def update(self, **kwargs):
self.opts.update(kwargs)
def get(self, key: str) -> Any:
return self.opts.get(key)
ItemStyleOpts
配置类
class ItemStyleOpts(BasicOpts):
def __init__(
self,
color: Optional[JSFunc] = None,
color0: Optional[str] = None,
border_color: Optional[str] = None,
border_color0: Optional[str] = None,
border_width: Optional[Numeric] = None,
border_type: Optional[str] = None,
opacity: Optional[Numeric] = None,
area_color: Optional[str] = None,
):
self.opts: dict = {
"color": color,
"color0": color0,
"borderColor": border_color,
"borderColor0": border_color0,
"borderWidth": border_width,
"borderType": border_type,
"opacity": opacity,
"areaColor": area_color,
}
案例:配置类演示
import pyecharts.options as opts
from pprint import pprint
# 实例化ItemStyleOpts类
o1 = opts.ItemStyleOpts(border_width=1)
# 输出ItemStyleOpts实例o1的opts属性
pprint(o1.opts)
# 更新ItemStyleOpts实例o1的属性
o1.update(color0='black')
o1.update(**{'borderColor':'red'})
# 输出ItemStyleOpts实例o1的opts属性
pprint(o1.opts)
# 输出ItemStyleOpts实例o1的opts属性中`color0`配置项的值
pprint(o1.get('color0'))
输出为:
{'areaColor': None,
'borderColor': None,
'borderColor0': None,
'borderType': None,
'borderWidth': 1,
'color': None,
'color0': None,
'opacity': None}
{'areaColor': None,
'borderColor': 'red',
'borderColor0': None,
'borderType': None,
'borderWidth': 1,
'color': None,
'color0': 'black',
'opacity': None}
'black'