Указание порядка слоев matplotlib

предположим я запускаю следующий скрипт:

import matplotlib.pyplot as plt

lineWidth = 20
plt.figure()
plt.plot([0,0],[-1,1], lw=lineWidth, c='b')
plt.plot([-1,1],[-1,1], lw=lineWidth, c='r')
plt.plot([-1,1],[1,-1], lw=lineWidth, c='g')
plt.show()

это приводит к следующему:

enter image description here

Как я могу указать порядок слоев сверху вниз вместо того, чтобы выбирать Python для меня?

2 ответов


Я не знаю, почему zorder имеет такое поведение, и, вероятно, это может быть ошибка или, по крайней мере, плохо документированная функция. Это может быть потому, что уже есть автоматические ссылки на zorder когда вы строите график (например, сетка, ось и т. д...) и когда вы пытаетесь указать zorder для элементов вы каким-то образом перекрываете их. Это гипотетически в любом случае.

для вас, чтобы решить вашу проблему просто сделать разницу в zorder преувеличены. Например вместо 0,1,2, сделать это 0,5,10:

import matplotlib.pyplot as plt

lineWidth = 20
plt.figure()
plt.plot([0,0],[-1,1], lw=lineWidth, c='b',zorder=10)
plt.plot([-1,1],[-1,1], lw=lineWidth, c='r',zorder=5)
plt.plot([-1,1],[1,-1], lw=lineWidth, c='g',zorder=0)
plt.show()

, что приводит к следующему:

Handling zorder in mataplotlib

для этого сюжета я указал противоположный порядок, показанный в вашем вопросе.


слои укладываются снизу вверх в том же порядке, что и соответствующие вызовы функции plot.

import matplotlib.pyplot as plt

lineWidth = 30
plt.figure()

plt.subplot(2, 1, 1)                               # upper plot
plt.plot([-1, 1], [-1, 1], lw=5*lineWidth, c='b')  # bottom blue
plt.plot([-1, 1], [-1, 1], lw=3*lineWidth, c='r')  # middle red
plt.plot([-1, 1], [-1, 1], lw=lineWidth, c='g')    # top green

plt.subplot(2, 1, 2)                               # lower plot
plt.plot([-1, 1], [-1, 1], lw=5*lineWidth, c='g')  # bottom green
plt.plot([-1, 1], [-1, 1], lw=3*lineWidth, c='r')  # middle red
plt.plot([-1, 1], [-1, 1], lw=lineWidth, c='b')    # top blue

plt.show()

из рисунка ниже ясно видно, что графики расположены в соответствии с Нижний первый, последний правило.

How different plots are stacked