我想知道如果在一个轴上绘制多个图,是否有一种方法可以控制哪个图位于其他图之上。一个例子:
如您所见,绿色系列在蓝色系列之上,两个系列都在黑点(我用散点图制作)之上。我希望黑点位于两个系列(线)的顶部。
我首先用下面的代码做了上面的事情
plt.plot(series1_x, series1_y)
plt.plot(series2_x, series2_y)
plt.scatter(series2_x, series2_y)
然后我尝试了以下
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(series1_x, series1_y)
ax2 = fig.add_subplot(111)
ax2.plot(series2_x, series2_y)
ax3 = fig.add_subplot(111)
ax3.scatter(series2_x, series2_y)
还有一些变化,但运气不好。
交换 plot
函数会影响哪个图在上面,但无论我把 scatter
函数放在哪里,线都在点的上面.
注意:
我在 Windows 10 上使用 Python 3.5(本示例),但在 Ubuntu 上主要使用 Python 3.4。
注意 2:
我知道这似乎是一个微不足道的问题,但我有一个案例,点顶部的系列非常密集,以至于点的颜色变得模糊,在这些情况下,我需要我的读者清楚地看到哪个点是什么颜色,因此我需要将点放在顶部。
最佳答案
使用 zorder kwarg zorder 越低,情节越靠后,例如
plt.plot(series1_x, series1_y, zorder=1)
plt.plot(series2_x, series2_y, zorder=2)
plt.scatter(series2_x, series2_y, zorder=3)
关于python - Matplotlib 控制哪个图在最上面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781612/