Spécification de l'ordre de matplotlib couches
Supposons que je lance le script suivant:
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()
Ce produit est le suivant:
Comment puis-je spécifier le de haut en bas afin de les couches au lieu d'avoir Python choisir pour moi?
Je vois que zorder a quelque chose à faire avec elle. Mais je ne peux toujours pas le faire fonctionner comme je veux. Si j'ai mis zorder du bleu, du rouge, et vert les lignes à 0, 1 et 2 respectivement, la ligne rouge est celui qui va sur le dessus. Pourquoi??
OriginalL'auteur Phys251 | 2016-05-16
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas pourquoi
zorder
a ce comportement et il est probable que, peut-être un bug ou, à tout le moins, un mal fonctionnalité documentée. Il pourrait être parce qu'il y a déjà des références automatiques àzorder
lorsque vous générez un complot (comme la grille, axe, etc...) et quand vous essayez de spécifier lezorder
pour les éléments que vous êtes en quelque sorte les superposant. C'est hypothétique, en tout cas.Pour vous pour résoudre votre problème, juste que les différences dans
zorder
exagéré. Par exemple, au lieu de0,1,2
, faire0,5,10
:ce qui entraîne dans ce:
Pour cette parcelle, j'ai spécifié le contraire indiqué dans votre question.
OriginalL'auteur armatita
Les couches sont empilées, du bas vers le haut dans le même ordre des appels correspondants à la fonction plot.
Il en ressort clairement de la figure ci-dessous que les parcelles sont disposées selon le bas en premier, en haut de la dernière règle.
OriginalL'auteur Tonechas