一种优雅的方式来添加长的名字和单位的情节与全息视图

2024-09-27 18:05:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经开始在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()函数是贬值的,所以如果可能的话,我希望避免使用它。有什么想法吗?在


Tags: import绘图dataframeratetimeasdisplay笔记本
2条回答

你可以在这个问题中找到更好的选择:
Setting x and y labels with holoviews

我喜欢这样做:
您希望看到在绘图上打印一个长变量名的元组:

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

结果发现这很容易做,但在文档中很难找到。只需传递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')))

相关问题 更多 >

    热门问题