如何在多个Holoviews图中链接轴?

5

我使用Holoviews创建了两个Datashader图表:

datashade(hv.Points(df[
    [
        'PS Engine-% Load', 
        'PS Engine-Fuel Rate',
    ]
])) + datashade(hv.Points(df[
    [
        'SB Engine-% Load', 
        'SB Engine-Fuel Rate',
    ]
]))

两个图表都成功绘制出来了,现在我想将轴的范围链接起来,这样当我放大一个图表时,另一个图表也会以相同的方式放大。据我所知,通常情况下,当源值相同时,轴会自动链接。但在此情况下,X和Y轴的源不同(请注意PS和SB值),但是它们的范围是相同的。如何链接这些轴?

1个回答

5

是的,HoloViews会自动链接它认为“相同”的维度,其中“相同”意味着具有相同的名称和单位。在这种情况下,最简单的方法可能是确保您想要链接的维度在数据框中具有相同的列名:

df_ps = df.rename(columns={'PS Engine-% Load': '% Load'})
df_sb = df.rename(columns={'SB Engine-% Load': '% Load'})
datashade(hv.Points(df_ps[['% Load','PS Engine-Fuel Rate']])) + \
datashade(hv.Points(df_sb[['% Load','SB Engine-Fuel Rate']]))

如果还需要链接到 Fuel Rate,只需将其添加到重命名字典中。示例如下,在缩放之前:

Without zooming in

缩放后:

After zooming in


除了一件事情:(当我放大图表时,它不会重新绘制,因此在缩放时像素变得更大。一旦恢复到旧的方法,图表就会再次重新绘制。这可能是什么原因? - Martijn de Munnik
不确定;我扩展了答案,包括一个执行此操作的示例,正如您所看到的,轴是链接的,datashader图表会刷新。如果您尝试此操作仍然有问题,则可能在您的JS控制台上列出了错误(搜索Web以查看如何为您的浏览器打开它)。 - James A. Bednar
缩放时未更新图片的问题是由于单元格中的 '%%output size=200' 选项引起的。删除该选项后,一切都按预期工作了。我会尝试找到解决方法,但那是另一个问题。 - Martijn de Munnik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接