我希望能够更改holoviews图形上x和y轴的标签,使其不再是内部变量名称。似乎影响轴标签的典型方法是将变量名称本身更改为标签。如果您需要复杂的标签,特别是如果您经常从其他复杂的数据对象(如pandas数据框)进行转换,则这种方法非常不方便。
是否有一般的方法来:(A)在绘制后更改图形的x和y标签或(B)设置人类可读的变量名称别名?
是否有一般的方法来:(A)在绘制后更改图形的x和y标签或(B)设置人类可读的变量名称别名?
hv.Image(np.random.rand(10,10), kdims=['x','y']).redim.label(x='neXt', y='Ys')
编辑: 在早期的HoloViews版本中,您可以轻松地像这样更改轴标签,请参见Holoviews常见问题解答中的第二个答案。
curve = hv.Curve(df, 'x_col', 'y_col')
curve = curve.options(xlabel='X Label', ylabel='Label for Y')
HoloViews确实有维度别名,虽然我们应该更好地记录它们。定义它们有两种方式。您可以将形式为(name, label)
的元组作为维度提供,也可以明确声明一个Aliases
对象并提供属性。这是一个简单的例子:
aliases = hv.util.Aliases(x='Some long label')
hv.Image(np.random.rand(10,10), kdims=[aliases.x, ('y', 'Inline label')])
绘图代码将使用长标签,您可以在使用对象的方法时引用名称或标签。如果您还想定义范围或其他Dimension
参数,您也可以直接向维度提供元组:hv.Dimension(('name', 'label'), range=(0,10))
。
您可以通过提供列名和更长的标签的元组来更改x和y标签,以显示您想要的内容:
import numpy as np
import pandas as pd
import holoviews as hv
hv.extension()
data = np.random.normal(size=[50, 2])
df = pd.DataFrame(data, columns=['col1', 'col2'])
hv.Points(
df,
kdims=[('col1', 'long label of col1'), ('col2', 'long label of col2')]
)
其他选择在这个问题中:
使用Holoviews添加长名称和单位到绘图的优雅方式