1

我已经开始将 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)”之类的东西,但是我不想每次都在代码中输入它。我发现PhilippJFR 的这篇博客文章可以满足我的需要,但是他使用的 DFrame() 函数已被贬值,所以如果可能的话,我想避免使用它。有任何想法吗?

4

2 回答 2

0

事实证明这很容易做到,但很难在文档中找到。您只需传递 aholoviews.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')))
于 2017-02-02T12:05:31.253 回答
0

您可以在这个 SO 问题中找到不错的选择:
Setting x and y labels with holoviews

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

hvdata = hv.Table(
    dataframe,
    kdims=[('time', 'Time (ns)')],
    vdims=[('rate', 'Rate (1/s)')],
)
于 2019-09-08T10:44:23.240 回答