python - Matplotlib 控制哪个图在最上面

标签 python matplotlib plot

我想知道如果在一个轴上绘制多个图,是否有一种方法可以控制哪个图位于其他图之上。一个例子:

enter image description here

如您所见,绿色系列在蓝色系列之上,两个系列都在黑点(我用散点图制作)之上。我希望黑点位于两个系列(线)的顶部。

我首先用下面的代码做了上面的事情

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/

相关文章:

python - 从多个列表创建 CSV 文件

python - 使用python将多个文本文件合并为一个文本文件

python - 使用 Networkx 在图形的 matplotlib 上高效制作动画

matlab - 如何在 MATLAB 绘图中获取轴上的箭头?

r - 如何对面板图进行网格化,使其在 R 中的 ggplot 中具有分类变量和不同的 x 变量

python - Pandas 相当于 SQL case when 语句来创建新变量

python - 在Python中将字符串转换为numpy数组,反之亦然

python - 填充等高线图中等高线的光栅化

Python在Mac上运行matplotlib.nxutilspoints_inside_poly

python - 检测 FFT 图中的峰值