pyecharts学习5--图例颜色和系列颜色不一致

pyecharts 图例颜色设置

目前使用的pyecharts版本1.7.1,图例暂时不支持颜色指定
图例的颜色是根据你添加图例的顺序,然后再根据全局变量colors 里面的颜色的顺序一一对应的:

  self.colors = (
            "#c23531 #2f4554 #61a0a8 #d48265 #749f83 #ca8622 #bda29a #6e7074 "
            "#546570 #c4ccd3 #f05b72 #ef5b9c #f47920 #905a3d #fab27b #2a5caa "
            "#444693 #726930 #b2d235 #6d8346 #ac6767 #1d953f #6950a1 #918597"
        ).split()

当然,如果你添加数据的时候指定了颜色,colors 会自动在顶部帮你添加对应的颜色值 ,也就是说你最后添加的是在颜色值得最顶端的

.add_yaxis("商家A", Faker.values(), linestyle_opts=opts.LineStyleOpts(color="red"),)
.add_yaxis("商家B", Faker.values(), color="blue")
.add_yaxis("商家C", Faker.values(), color="green")

分别设置线的颜色和系列 label 颜色的颜色
但是最后显示的时候,是不是就感觉乱套了呢?
pyecharts学习5--图例颜色和系列颜色不一致_第1张图片
看一下此时colors里面的情况:
pyecharts学习5--图例颜色和系列颜色不一致_第2张图片
是不是明白什么了呢?
添加系列线的颜色是会添加进去的,而设置linestyle_opts则不会添加, 而且添加的顺序是反过来的,最后添加的颜色是在最前面的呢!

    def _append_color(self, color: Optional[str]):
        if color:
            self.colors = [color] + self.colors
            if self.theme == ThemeType.WHITE:
                self.options.update(color=self.colors)

既然图例颜色的安排是按照colors的顺序,这下就可以设置啦:
是的修改源码还是自己代码操作一下呢?
如果你不嫌弃后期更新麻烦的话修改源码是可以的,
如果自己要设置颜色对应,修改一下颜色值顺序即可:

d = {"商家A":"red", "商家B":"blue", "商家C":"#30E315", "商家D":"#A0E315"}

for key, color in d.items():
    c.add_yaxis(key, Faker.values(), color=color)

num = 0
for color in d.values():
    c.colors[num] = color
    num += 1

pyecharts学习5--图例颜色和系列颜色不一致_第3张图片

你可能感兴趣的:(pyecharts)