如何禁用 holoviews 热图中网格线的可视化

How to disable visualization of gridlines in holoviews heatmap

我正在使用 hv.HeatMap 绘制连接矩阵。我想禁用网格线的可视化。起初我认为这应该可以禁用 show_grid 但这对网格线没有任何影响。

例如,如何禁用 last example from the documentation 中的可视化?

heatmap = hv.HeatMap((np.random.randint(0, 10, 100), np.random.choice(['A', 'B', 'C', 'D', 'E'], 100), 
                      np.random.randn(100), np.random.randn(100)), vdims=['z', 'z2']).sort().aggregate(function=np.mean)

heatmap.opts(opts.HeatMap(tools=['hover'], colorbar=True, width=325, toolbar='above', clim=(-2, 2)))

产生:

´

当您仔细查看(或更好地放大,使用文档页面上的交互式绘图)时,您会看到所有 'boxes' 都被白色边框包围。我想禁用它。

要激活或停用网格,您可以将 show_grid=Trueshow_grid=False 添加到 opts.HeatMap(...)

但是在您的示例中没有激活网格,因此您无法停用网格线。您可以看到的白线穿过背景颜色(默认定义为白色)。

您可以更改背景,将 bgcolor ='#ABABAB' 添加到 opts.HeatMap(...),这样可以生成类似

的图形

.

但有时您必须直接在散景图对象中应用您想要进行的更改,因为并非所有可能性都添加到 holoviews 关键字参数中。如果你必须这样做,你可以按照这个 introduction.

使用以下内容扩展您的示例以向背景添加 alpha 值作为示例:

from bokeh.io import (
    show,
    export_png,
    export_svgs,
    output_file,
    save,
)

# get bokeh object
fig = hv.render(heatmap)
# make some changes
fig.background_fill_alpha = 0.5
# show figure in notebook
show(fig)

如果您有散景图形对象并想将图形保存为 pnghtmlsvg,您可以再t use holoviews`,因为有无法将其转换回去(据我所知)。

然后你必须使用bokeh.io提供的功能来保存它们。

您可以使用:

# png
export_png(fig, filename = 'heatmap.png')

# svg
fig.output_backend = "svg"
export_svgs(fig, filename = 'heatmap.svg')

# html
output_file('heatmap.html', mode='inline')
save(fig, filename = 'heatmap.html', title = 'heatmap', resources=None)

所有这些以及更多内容都在 bokeh.io documentation

中进行了解释