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

时间:2015-05-24 00:17:49

标签: python pandas matplotlib plot mpld3

如何绘制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.

1 个答案:

答案 0 :(得分:2)

要在一行上添加简单的工具提示,您可以使用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)