Python 如何使mplcursors模块仅显示绘制在折线图上的点的标签?

Python 如何使mplcursors模块仅显示绘制在折线图上的点的标签?,python,python-3.x,matplotlib,plot,data-science,Python,Python 3.x,Matplotlib,Plot,Data Science,所以我有一个折线图,python中的mplcursors模块显示了它上面任意点的坐标 我希望它只显示显式打印的点的标签,而不是打印点之间的标签,这些标签恰好位于连接点的线上。 如果您愿意,我愿意用代码更新问题。一种方法是为相同的点创建一个不可见的散点图,并将mplcursor附在上面 导入matplotlib.pyplot作为plt 将numpy作为np导入 导入MPLS游标 x=np.arange(30) y=30+np.random.randint(-5,6,x.size).cumsum()

所以我有一个折线图,python中的mplcursors模块显示了它上面任意点的坐标

我希望它只显示显式打印的点的标签,而不是打印点之间的标签,这些标签恰好位于连接点的线上。


如果您愿意,我愿意用代码更新问题。

一种方法是为相同的点创建一个不可见的散点图,并将
mplcursor
附在上面

导入matplotlib.pyplot作为plt
将numpy作为np导入
导入MPLS游标
x=np.arange(30)
y=30+np.random.randint(-5,6,x.size).cumsum()
图,ax=plt.子批次()
轴图(x,y)
点=最大散射(x,y,color='none')
mplcursors.cursor(点,悬停=True)
plt.show()

可以将该功能包装到助手函数中:

导入matplotlib.pyplot作为plt
将numpy作为np导入
导入MPLS游标
定义为线上的点创建光标(线,ax=None,注释=None,**kwargs):
ax=ax或plt.gca()
scats=[ax.scatter(x=line.get_-xdata(),y=line.get_-ydata(),color='none')表示行中的行]
游标=多个游标。游标(scats,**kwargs)
如果注释_func不是无:
cursor.connect('add',annotation_func)
返回光标
x=np.arange(10,301,10)
y=30+np.random.randint(-5,6,x.size).cumsum()
图,ax=plt.子批次()
直线=最大曲线图(x,y)
光标=为线上的点创建光标(线,ax=ax,悬停=True)
plt.show()

这可能有点乏味,但它仍然是一个答案,因此我对它进行了改进,那么创建散点图的辅助函数呢?