在复杂的Holoviews数字上更改范围或轴限制

时间:2017-04-13 16:20:53

标签: python holoviews

我看到了如何在全息视图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

Complex figure

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

感谢您的帮助。

1 个答案:

答案 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))) 方法以递归方式迭代对象,并允许您以这种方式覆盖任何维度参数,包括范围。