如何先绘制线条,最后绘制点

64
我有一个简单的图,其中包含几组点和连接每组点的线。我希望点被绘制在线的上方(这样线就不会显示在点的内部)。无论是先调用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')
1个回答

104

5
我喜欢zorder,它可以让我的报告制作出有趣的图表。我常常会花更多时间让它们看起来漂亮,而不是关注实际内容。 /打自己的手腕 - arynaq
@arynaq 我很好奇。仅仅是绘图的顺序就能带来这么多乐趣吗? :) - Melih Durmaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接