【问题标题】:(Python) How to add tooltips to Pandas plots?(Python) 如何在 Pandas 图中添加工具提示?
【发布时间】:2015-05-24 00:17:48
【问题描述】:

如何绘制 Pandas 线图,其中有工具提示,指示线的标签和鼠标所在点的值?

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

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

以下代码会出错,因为 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.

【问题讨论】:

  • 您可能需要检查link。它似乎提供了一个将光标捕捉到最近的数据点的功能。然后可以将该点识别为某个曲线的元素。

标签: python pandas matplotlib plot mpld3


【解决方案1】:

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

【讨论】:

  • 工作得很好。谢谢你。猜猜有没有办法让 PointLabelTooltip 也显示点值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 2017-05-06
  • 1970-01-01
  • 2019-03-03
  • 2021-10-23
  • 1970-01-01
  • 2013-12-02
相关资源
最近更新 更多