更改复杂Holoviews图形的范围或轴限制

Cal*_*leb 5 python holoviews

我看到了有关如何编辑单个对象(例如,全息视图中的“图像”或“直方图”)的范围(aka轴限制)的示例,例如,在堆叠交换直方图范围时的此答案。如果要将其应用于更复杂的对象(例如NdOverlay或HoloMap对象),该怎么办?本质上,我想对整个轴或图形应用限制,而不必担心我在所述轴或图形中可能包含的每个元素。

例如,假设我有以下内容,并且想要删除轴上被抑制的零:

df = pd.DataFrame({'A':[1,2,3,1,2,3],'B':[4,5,6,1,4,9],'C':['a','a','a','b','b','b']})
tbl = hv.Table(df)
fig = tbl.to.curve(kdims=['A'],vdims=['B'],mdims=['C']).overlay()
fig *= hv.Points([(3,4),(5,6),(1,3)])
fig
Run Code Online (Sandbox Code Playgroud)

复杂人物

将自定义绘图限制应用于此叠加层之类的多元素对象或HoloMap的最佳方法是什么?我不希望不必过滤数据,因为如果您要进行探索性工作,将多个数据源结合在一起,可能会很麻烦。我是否需要对每个组件应用一个程度上的关键字,还是有一种简单的方法可以将其广播到整个图形?

感谢您的协助。

phi*_*jfr 5

指定显式轴限制的最简单方法是使用redim方法(假设您使用的是HoloViews的最新开发版本)。在您的情况下,看起来像这样:

df = pd.DataFrame({'A':[1,2,3,1,2,3],'B':[4,5,6,1,4,9],'C':
['a','a','a','b','b','b']})
tbl = hv.Table(df)
fig = tbl.to.curve(kdims=['A'],vdims=['B'],mdims=['C']).overlay()
fig *= hv.Points([(3,4),(5,6),(1,3)])
fig.redim(A=dict(range=(0, 6)), B=dict(range=(0, 10)))
Run Code Online (Sandbox Code Playgroud)

redim方法以递归方式遍历对象,并允许您以这种方式覆盖任何Dimension参数(包括范围)。

  • 请注意,在即将发布的1.7版本中,您将能够进一步简化为:``fig.redim.range(A =(0,6),B =(0,10))'' (3认同)