(Python) 如何向 Pandas 绘图添加工具提示?

(Python) How to add tooltips to Pandas plots?

一个图 Pandas 如何在有工具提示指示线的标签和鼠标悬停的点的值的地方绘制线图?

一个 pandas 图可能有十几条不同的线条,带有不同的图例标签。工具提示应该输出(标签,值)。如果这个要求太多,那么标签就可以了。

我更喜欢 mpld3,但任何其他绘图包都可以。在 mpld3 中,您是否使用 PointLabelTooltip 或 LineLabelTooltip 来处理 pandas 图?请提供示例代码。

以下代码会出错,因为 PointLabelTooltip 需要的是点,而不是线:

import mpld3
mpld3.enable_notebook()
fig, ax = plt.subplots()
df = pd.DataFrame(np.cumsum(np.random.normal(0,1,(12,1000)),axis=1).T)
axes = df.plot(figsize=(14,4), colormap='spectral');

labels = list(df.columns.values)
tooltip = mpld3.plugins.PointLabelTooltip(axes.get_lines()[0],labels=labels)
mpld3.plugins.connect(fig, tooltip) 

Javascript error adding output!
TypeError: null is not an object (evaluating 'obj.elements')
See your browser Javascript console for more details.

要将简单的工具提示放在一行上,您可以使用 mpld3.plugin.LineLabelTooltip。你必须为每一行做一次。这是您的代码的修改版本:

import mpld3, pandas as pd
mpld3.enable_notebook()

df = pd.DataFrame(np.cumsum(np.random.normal(0,1,(5,1000)),axis=1).T)
axes = df.plot(figsize=(14,4), colormap='spectral');

labels = list(df.columns.values)
for i in range(len(labels)):
    tooltip = mpld3.plugins.LineLabelTooltip(axes.get_lines()[i], labels[i])
    mpld3.plugins.connect(plt.gcf(), tooltip)