【问题标题】:Setting x and y labels with holoviews使用全息视图设置 x 和 y 标签
【发布时间】:2016-12-05 16:55:57
【问题描述】:

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

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

【问题讨论】:

    标签: python plot axis-labels holoviews


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      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 参数。

      【讨论】:

      • 好的,谢谢!有没有办法向多个对象广播别名,例如,向 Holomap 或布局中的所有项目?当您构建复杂的图形时,它会节省大量的打字时间。
      • 我拿走了已回答的标志,至少现在是这样,因为当我从 pandas DataFrames 转换为全息视图类型时,这似乎效果不佳。
      • 你说得对,这对于数据帧似乎根本不起作用。我已经打开了一个相应的问题,希望尽快解决:github.com/ioam/holoviews/issues/1001
      • 谢谢。是的,您描述了我在您打开的问题中遇到的问题。像这样的一些粗糙边缘,但全息视图看起来非常好。我期待看到它如何发展。
      • 我会继续并重新选择它作为正确答案,因为这是执行此操作的规范方法,并且它最终也应该适用于 DataFrames。
      【解决方案3】:

      您可以通过提供列名的元组和您希望显示的较长标签来更改 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')]
      )
      

      此问题中有其他选择:
      An elegant way to add long names and units to plots with Holoviews

      这会产生以下情节:

      【讨论】:

        猜你喜欢
        • 2019-12-30
        • 2023-04-04
        • 1970-01-01
        • 2012-04-09
        • 2014-07-30
        • 2016-09-23
        • 1970-01-01
        • 2014-12-10
        • 1970-01-01
        相关资源
        最近更新 更多