我看到了如何在全息视图such as this answer on stack exchange for histogram extents中对单个对象(如图像或直方图)编辑范围(也称为轴限制)的示例。如果你想将它应用于像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
将自定义绘图限制应用于此叠加层或HoloMap等多元素对象的最佳方法是什么?我不想过滤数据,因为如果您正在进行组合多个数据源的探索性工作,这可能很麻烦。我是否需要将extents关键字应用于每个组件,或者是否有一种简单的方法可以将其广播到整个图形中?
感谢您的帮助。
答案 0 :(得分:5)
指定显式轴限制的最简单方法是使用bins
方法(假设您使用的是HoloViews的最新开发版)。在你的情况下,看起来像这样:
redim
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)))
方法以递归方式迭代对象,并允许您以这种方式覆盖任何维度参数,包括范围。