我想知道是否有办法控制哪一个绘图位于其他绘图顶部,如果在一个轴上绘制多个绘图。举个例子:Matplotlib控制哪个绘图位于顶部
正如你可以看到,绿色系列蓝色系列的顶部,这两个系列的黑点(我用散点图制造)的顶部。我希望黑点能够在两个系列(线条)之上。
我第一次做上述用下面的代码
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
函数置于哪个位置,这些线都位于圆点的顶部。
注:
我使用Python 3.5在Windows 10(这个例子),但大部分的Python 3.4在Ubuntu上。
注2:
我知道这可能看起来是小事,但我在那里的点上方的系列如此密集的点的颜色得到模糊的情况下,在在这些情况下,我需要我的读者清楚地看到哪些点是什么颜色的,因此我需要将这些点排在最前面。
为什么重新创建每个新图的子图轴?你可以创建一个子图,然后在那里做所有的绘图(并使用zorder作为下面的答案来控制哪个在最上面) – tom
我确实提到过我在那里展示了一些变化 - 我做了也只能用子情节来做。不过,我通常只是用plt.plot,plt.scatter等来做。我通常不用担心轴和图形对象,除非我需要将它们传递给不同的函数并做各种各样的花哨的东西。 –