如何在matplotlib中首先绘制线条并指向最后一个点

我有一个简单的情节与连接每套的几组点和线。 我想要点绘制在行的顶部(以便该行不显示在点内)。 无论plot顺序和scatter调用,这个情节都是一样的,而不是我想要的。 有一个简单的方法来做到这一点?

 import math import matplotlib.pyplot as plt def poisson(m): def f(k): e = math.e**(-m) f = math.factorial(k) g = m**k return g*e/f return f R = range(20) L = list() means = (1,4,10) for m in means: f = poisson(m) L.append([f(k) for k in R]) colors = ['r','b','purple'] for c,P in zip(colors,L): plt.plot(R,P,color='0.2',lw=1.5) plt.scatter(R,P,s=150,color=c) ax = plt.axes() ax.set_xlim(-0.5,20) ax.set_ylim(-0.01,0.4) plt.savefig('example.png') 

您需要设置Z顺序。

 plt.plot(R,P,color='0.2',lw=1.5, zorder=1) plt.scatter(R,P,s=150,color=c, zorder=2) 

看看这个例子。 http://matplotlib.sourceforge.net/examples/pylab_examples/zorder_demo.html