【问题标题】:How to link the axis in multiple holoviews plots?如何在多个全息图中链接轴?
【发布时间】:2017-09-05 06:14:21
【问题描述】:

我已经创建了带有全息视图的数据着色器图:

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 值)但范围相同。如何链接这些轴?

【问题讨论】:

    标签: python plot holoviews datashader


    【解决方案1】:

    是的,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,只需将其添加到每个重命名字典中即可。缩放前的示例:

    放大后:

    【讨论】:

    • 除了一件事:(当我放大图形时不会重绘,因此放大时像素会变大。一旦恢复到旧方法,图形就会再次重绘。可能导致这种情况?
    • 不确定;我扩展了答案以包含一个这样做的示例,如您所见,轴已链接并且数据着色器图会刷新。如果你尝试这个并且仍然有问题,那么你的 JS 控制台上可能列出了错误(搜索网络以查看如何为你的浏览器打开它)。
    • 缩放时图片不更新的问题是单元格中的'%%output size=200'选项导致的。删除后,一切都按预期工作。我会尝试为此找到解决方案,但这是另一个问题。
    猜你喜欢
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 2021-07-13
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多