我有两组数据,我正在使用matplotlib在同一图上绘制图形。我正在使用mplcursor来使用标签数组注释每个点。不幸的是,mplcursors对这两个数据集使用前五个标签。我的问题是如何获取第二个数据集以拥有自己的自定义标签?
我意识到这个简单的示例,我可以合并数据,但是我无法处理我正在处理的项目。
import matplotlib.pyplot as plt
import mplcursors
import numpy as np
x = np.array([0, 1, 2, 3, 4])
y = np.array([1, 2, 3, 4, 5])
y2 = np.array([2, 3, 4, 5, 6])
fig, ax = plt.subplots()
ax.plot(x, y, "ro")
ax.plot(x, y2, 'bx')
labels = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
mplcursors.cursor(ax, hover=True).connect(
"add", lambda sel: sel.annotation.set_text(labels[sel.target.index]))
plt.show()
感谢欧内斯特,我得以得到一个简单的例子。我将每个图的标签分别设置为“一个”和“两个”。然后,将鼠标悬停在某个点上时,使用以下方法将歌手姓名与标签进行比较:
sel.artist.get_label()
import matplotlib.pyplot as plt
import mplcursors
import numpy as np
x = np.array([0, 1, 2, 3, 4])
y = np.array([1, 2, 3, 4, 5])
y2 = np.array([2, 3, 4, 5, 6])
fig, ax = plt.subplots()
ax.plot(x, y, "ro", label="one")
ax.plot(x, y2, 'bx', label="two")
labels = ["a", "b", "c", "d", "e"]
labels2 = ["f", "g", "h", "i", "j"]
c1 = mplcursors.cursor(ax, hover=True)
@c1.connect("add")
def add(sel):
if sel.artist.get_label() == "one":
sel.annotation.set_text(labels[sel.target.index])
elif sel.artist.get_label() == "two":
sel.annotation.set_text(labels2[sel.target.index])
plt.show()
我对使用字典的评论如下: