在 pyecharts 中,我创建了一个网格,其中两个图形具有相同的 x 轴。我希望能够使用鼠标滚轮同时缩放两者。它可以使用
datazoom_opts=[opts.DataZoomOpts(type_="inside")]
在单个图表上工作,但我找不到在 Grid
中拥有类似内容的方法。
在 javascript
echarts
库中,有 echarts.connect
方法似乎可以执行此操作(例如 echarts.connect([chart1, chart2]);
),但它似乎不存在于 pyecharts
中。
请参阅下面的最小功能示例:
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid
# if you're using jupyter lab
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
CurrentConfig.ONLINE_HOST
from random import randrange
x=list(range(0,100))
a = Bar()
a.add_xaxis(x)
a.add_yaxis("ax", [randrange(100) for x in range(0,100)])
a.set_global_opts(
title_opts=opts.TitleOpts(title="Bar-a"),
datazoom_opts=[opts.DataZoomOpts(type_="inside")],)
b = Bar()
b.add_xaxis(x)
b.add_yaxis("bx", [randrange(100) for x in range(0,100)])
b.set_global_opts(
title_opts=opts.TitleOpts(title="Bar-b"),
datazoom_opts=[opts.DataZoomOpts(type_="inside")],)
gr = Grid()
gr.add(a, grid_opts=opts.GridOpts(height="30%"))
gr.add(b, grid_opts=opts.GridOpts(pos_top="50%", height="30%"))
gr.render_notebook()
我可以使用鼠标滚轮放大和缩小第一张图(a)。第二个是静态的。我想缩放两者以保持它们对齐。
我不知道在 pyecharts 中具体是如何完成的,但在 echarts 中,您可以在同一个图表中创建多个网格实例,并指定哪些轴应该位于哪个网格中以及哪些轴应该由缩放控制。请参阅此示例。
pyecharts 文档中 DataZoomOpts 的属性 xaxis_index 表明这也应该是可能的。不过我没有找到网格选项。