我搜索了几年(小时,就像年龄)找到一个非常讨厌(看似基本)问题的答案,因为我找不到一个非常适合答案的问题,我发布一个问题并回答它,希望它我将花费大量时间用于我的noobie绘图技巧.
如果你想使用python matplotlib标记你的绘图点
from matplotlib import pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
A = anyarray
B = anyotherarray
plt.plot(A,B)
for i,j in zip(A,B):
ax.annotate('%s)' %j, xy=(i,j), xytext=(30,0), textcoords='offset points')
ax.annotate('(%s,' %i, xy=(i,j))
plt.grid()
plt.show()
Run Code Online (Sandbox Code Playgroud)
我知道xytext =(30,0)与textcoords一起使用,你使用那些30,0值来定位数据标签点,所以它在0 y轴上,30在x轴上超过它自己的小区域.
您需要绘制i和j的两条线,否则您只绘制x或y数据标签.
你得到这样的东西(仅注意标签):

它不理想,仍然有一些重叠 - 但它比我所拥有的更好.
使用Matplotlib,是否可以打印图表上每个点的值?
例如,如果我有:
x = numpy.range(0,10)
y = numpy.array([5,3,4,2,7,5,4,6,3,2])
pyplot.plot(x,y)
Run Code Online (Sandbox Code Playgroud)
如何在绘图上显示y值(例如,在(0,5)点附近打印5,在(1,3)点附近打印3等)?