全息视图 hv.save x 标签截止(修剪)

holoviews hv.save x label cutoff (trimmed)

我正在尝试使用散景后端将全息图保存为 png。但是保存的 png 的 xlabel 部分被截断了。如何增加图底部的空白边距以避免这种情况?

我尝试创建单列 NdLayout,然后编辑绘图,但每个绘图的 xlabel 都被修剪了。

在 jupyter notebook 中渲染时,xlabel 按预期显示。

import numpy as np
import holoviews as hv
hv.extension('bokeh')
a1 = np.random.normal(0,1,size=600)
a2 = np.random.normal(1,1,size=600)
b = np.arange(0,600)
xx = hv.Curve([(ii,jj) for ii,jj in zip(b,a1)],['predicted_sample'],['Value']).relabel('StandardNormal')
yy = hv.Curve([(ii,jj) for ii,jj in zip(b,a2)],['predicted_sample'],['Value']).relabel('ShiftedNormal')
hv.save(xx*yy,"plot.png")

单身:


hv.save(((xx*yy) + (xx*yy)).cols(1),'ndlayout_plots.png')

NdLayout:

对于那些找到这个的人,我找到了一个解决方法,即使用钩子并直接设置散景 min_border_bottom 值。

import numpy as np
import holoviews as hv

hv.extension('bokeh')

a1 = np.random.normal(0,1,size=600)
a2 = np.random.normal(1,1,size=600)
b = np.arange(0,600)

xx = hv.Curve([(ii,jj) for ii,jj in zip(b,a1)],['predicted_sample'],['Value']).relabel('StandardNormal')
yy = hv.Curve([(ii,jj) for ii,jj in zip(b,a2)],['predicted_sample'],['Value']).relabel('ShiftedNormal')

pp = xx*yy #create the overlay

def fixBottomMargin(plot,element):
  plot.handles['plot'].min_border_bottom = 100

pp = pp.opts(opts.Curve(hooks=[fixBottomMargin])) #call the hooks on the curve element

hv.save(pp,filename='plot.png')

通过阅读散景文档找到的信息,Styling Visual Attributes