8

我想将图形上 x 和 y 轴上的标签从 holoviews 更改为内部变量名称以外的东西。似乎影响轴标签的典型方法是将变量名称本身更改为标签。如果您想要复杂的标签,这是相当不方便的,特别是如果您经常从其他复杂的数据对象(如 pandas 数据框)转换。

有没有一种通用的方法:(A)在绘制图形时或之后更改图形的 x 和 y 标签,或者(B)为变量名称设置人类可读的别名?

4

3 回答 3

7

例如,您可以在绘制这样的图时或之后更改轴标签

hv.Image(np.random.rand(10,10), kdims=['x','y']).redim.label(x='neXt', y='Ys')

编辑:在 HoloViews 的早期版本中,您可以像这样轻松更改轴标签,请查看Holoviews FAQ上的第二个答案

curve = hv.Curve(df, 'x_col', 'y_col')
curve = curve.options(xlabel='X Label', ylabel='Label for Y')
于 2017-11-06T15:58:54.597 回答
4

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')])

绘图代码将使用长标签,您可以在使用对象的方法时引用名称或标签。您还可以直接向维度提供元组:hv.Dimension(('name', 'label'), range=(0,10))如果您还想定义范围或其他Dimension参数。

于 2016-12-05T21:29:35.873 回答
0

您可以通过提供列名的元组和您希望显示的较长标签来更改 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 将长名称和单位添加到绘图中

这导致以下情节:
带有自定义 x 和 y 标签的 Holoviews 绘图

于 2019-09-15T08:56:51.720 回答