【问题标题】:An elegant way to add long names and units to plots with Holoviews使用 Holoviews 为绘图添加长名称和单位的优雅方法
【发布时间】:2017-01-18 18:42:31
【问题描述】:

我已经开始将 Holoviews 与 Python3 和 Jupyter 笔记本一起使用,并且我正在寻找一种将长名称和单位放在我的绘图轴上的好方法。一个示例如下所示:

import holoviews as hv
import pandas as pd
from IPython.display import display
hv.notebook_extension()

dataframe = pd.DataFrame({"time": [0, 1, 2, 3],
                          "photons": [10, 30, 20, 15],
                          "norm_photons": [0.33, 1, 0.67, 0.5],
                          "rate": [1, 3, 2, 1.5]}, index=[0, 1, 2, 3])
hvdata = hv.Table(dataframe, kdims=["time"])
display(hvdata.to.curve(vdims='rate'))

这给了我一个很好的情节,但不是 x 轴上的“时间”和 y 轴上的“速率”,我更喜欢“时间 (ns)”和“速率 (1/s)”之类的东西',但我不想每次都在代码中输入它。 我发现this blog post by PhilippJFR 可以满足我的需要,但他使用的 DFrame() 函数已被贬值,所以如果可能的话,我想避免使用它。有什么想法吗?

【问题讨论】:

    标签: python plot jupyter holoviews


    【解决方案1】:

    您可以在这个 SO 问题中找到好的替代方案:
    Setting x and y labels with holoviews

    我喜欢这样:
    使用变量名称和您希望在绘图上看到的长名称创建一个元组:

    hvdata = hv.Table(
        dataframe,
        kdims=[('time', 'Time (ns)')],
        vdims=[('rate', 'Rate (1/s)')],
    )
    

    【讨论】:

      【解决方案2】:

      事实证明,这很容易做到,但很难在文档中找到。您只需传递 holoviews.Dimension 而不是字符串作为 kdims 参数:

      hvdata = hv.Table(dataframe, kdims=[hv.Dimension('time', label='Time', unit='ns')])
      display(hvdata.to.curve(vdims=hv.Dimension('rate', label='Rate', unit='1/s')))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 2016-07-28
        • 1970-01-01
        • 1970-01-01
        • 2021-10-13
        相关资源
        最近更新 更多