pyecharts学习3--多图例分开放置

pyecharts多图例分开放置

目前使用的pyecharts版本1.7.1,不支持多图例分开
但由于数据较多,需要分不同坐标轴来控制两组区间范围差异较大的数据,于是修改源码来实现该功能

效果图

pyecharts学习3--多图例分开放置_第1张图片

修改源码

legend_opts 设置可以传入列表参数(chart.py)

set_global_opts(legend_opts: types.Legend = None, # opts.LegendOpts(),)

按列表依次添加

    def _append_legend(self, name, is_selected, index=0):
        self.options.get("legend")[index].get("data").append(name)
        self.options.get("legend")[index].get("selected").update({name: is_selected})

对传入的列表配置数据进行处理

        if isinstance(legend_opts, opts.LegendOpts):
            legend_opts = legend_opts.opts
            for _s in self.options["legend"]:
                _s.update(legend_opts)
        elif isinstance(legend_opts, list):
            for i in range(len(legend_opts)):
                legend = legend_opts[i]
                if isinstance(legend, opts.LegendOpts):
                    legend = legend.opts
                self.options["legend"][i].update(legend)

对于line来说,legend 添加适当处理(line.py

self._append_legend(series_name, is_selected, yaxis_index if yaxis_index else 0)

自定义代码

.set_global_opts(legend_opts=[opts.LegendOpts(pos_left="left",legend_icon="roundRect"),
                              opts.LegendOpts(pos_left="right", legend_icon="circle")],)

你可能感兴趣的:(pyecharts)