pyecharts源码解读(4)配置包options概述:配置项类结构

当前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一个属性即配置项字典;所有配置类都拥有updateget两个方法,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'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值