我已经开始在Python3和Jupyter笔记本中使用Holoviews,我正在寻找一种在我的绘图轴上放置长名称和单位的好方法。一个例子如下:
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轴上的'time'和y轴上的'rate',我更喜欢'Time(ns)'和'Rate(1 / s)之类的东西',但我不想每次都在代码中输入。 我发现this blog post by PhilippJFR我需要哪种功能,但他使用的DFrame()函数是折旧的,所以如果可能的话我想避免使用它。有什么想法吗?
答案 0 :(得分:0)
很容易做到但在文档中很难找到。您只需传递holoviews.Dimension
而不是字符串作为kdims
参数:
hvdata = hv.Table(dataframe, kdims=[hv.Dimension(name='Time', unit='ns')])
display(hvdata.to.curve(vdims=hv.Dimension(name='Rate', unit='1/s')))
答案 1 :(得分:0)
您可以在以下SO问题中找到不错的选择:
Setting x and y labels with holoviews
我喜欢这样:
用变量名和长名称创建一个元组,您希望在打印图上看到它的名字:
hvdata = hv.Table(
dataframe,
kdims=[('time', 'Time (ns)')],
vdims=[('rate', 'Rate (1/s)')],
)