使用mpldatacursor时如何更改datacursor的内容

时间:2017-02-09 02:10:04

标签: python python-3.x matplotlib

我编写了一个简单的代码来绘制红色圆圈。

import matplotlib.pyplot as plt
import numpy as np
from mpldatacursor import datacursor

lines = plt.plot([1,2,3,4], [1,4,9,16], 'ro')
plt.axis([0, 6, 0, 20])
datacursor(lines)
plt.show()

以上代码生成pyplot如下: enter image description here

我的问题是,当我点击绘图的红色标记时,如何从出现的弹出窗口中将标签(x,y)更改为自定义标签?

是否有可能只显示此弹出窗口几秒钟?

1 个答案:

答案 0 :(得分:3)

您需要使用formatter kwarg自定义显示的数据。例如,要强制x和y值都是整数,我们可以执行以下操作:

datacursor(lines, formatter='x: {x:.0f}\ny: {y:.0f}'.format)

您可以使用任何自定义格式化程序以任何方式更改显示的文本,包括标签本身。

datacursor(lines, formatter='my_x: {x:.0f}\nmy_y: {y:.0f}'.format)

您可以编写完整的函数来格式化标签,而不是使用上面显示的str.format

def myformatter(**kwarg):
    label = 'My custom label at point ({x:.0f}, {y:.0f})'.format(**kwarg)
    return label

datacursor(lines, formatter=myformatter)