matplotlib在每个数据点处使用不同的文本散点图

我正在试图做一个散点图,并用列表中的不同数字来标注数据点。 所以例如,我想绘制y vs x,并用n中对应的数字进行注释。

y=[2.56422, 3.77284,3.52623,3.51468,3.02199] z=[0.15, 0.3, 0.45, 0.6, 0.75] n=[58,651,393,203,123] ax=fig.add_subplot(111) ax1.scatter(z, y, fmt='o') 

有任何想法吗?

我没有意识到任何绘图方法需要数组或列表,但你可以使用annotate()迭代n中的值。

 y=[2.56422, 3.77284,3.52623,3.51468,3.02199] z=[0.15, 0.3, 0.45, 0.6, 0.75] n=[58,651,393,203,123] fig, ax = plt.subplots() ax.scatter(z, y) for i, txt in enumerate(n): ax.annotate(txt, (z[i],y[i])) 

annotate()有很多格式化选项,请参阅matplotlib网站:

在这里输入图像描述

在早于matplotlib 2.0的版本中,ax.scatter不需要绘制没有标记的文本。 在2.0版本中,您需要使用ax.scatter为文本设置适当的范围和标记。

 y=[2.56422, 3.77284,3.52623,3.51468,3.02199] z=[0.15, 0.3, 0.45, 0.6, 0.75] n=[58,651,393,203,123] fig, ax = plt.subplots() for i, txt in enumerate(n): ax.annotate(txt, (z[i],y[i])) 

在这个链接,你可以find一个3D例子。