我使用variable=plt.scatter(test1,test2)
制作了散点图,其中test1
和test2
是与x和y对应的列表。
有没有办法用我创建的字符串或变色列表来注释每个点?
我发现:
for i, txt in enumerate(variablelabel):
variable.annotate(txt, (test1[i],test2[i]))
其中variablelabel
被定义为我的字符串列表。不幸的是,这似乎没有注释我的散点图。
或者,我发现你可以使用类似的代码添加箭头:
ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
arrowprops=dict(facecolor='black', shrink=0.05),
ax.set_ylim(-2,2)
plt.show()
但这会产生我不想要的大箭头。我只想要列表中的字符串。
很抱歉,如果我不是很清楚。
答案 0 :(得分:0)
您可以使用字符串列表注释每个点。使用matplotlib.annotate
是解决方案。不过,您可以在matplotlib.collections.PathCollection
对象(matplotlib.scatter的结果)而不是matplotlib.axes.Axes
对象上调用annotate
。
在您的代码中:
variable = plt.scatter(test1, test2)
for i, txt in enumerate(variablelabel):
variable.annotate(txt, (test1[i], test2[i]))
variable
是matplotlib.collections.PathCollection
。而是使用以下内容:
plt.scatter(test1, test2)
for i, txt in enumerate(variablelabel):
plt.annotate(txt, (test1[i], test2[i]))
你应该得到这样的东西:
我希望这会对你有所帮助。