Matplotlib coord. origine sys en haut à gauche
-
20-09-2019 - |
Question
Comment puis-je feuillette l'origine d'une parcelle de matplotlib être dans le coin supérieur gauche - par opposition à la valeur par défaut en bas à gauche? J'utilise matplotlib.pylab.plot pour produire l'intrigue (mais s'il y a une autre routine traçante qui est plus souple, s'il vous plaît laissez-moi savoir).
Je cherche l'équivalent de la commande matlab: axe ij;
En outre, j'ai passé quelques heures à surfer aide matplotlib et Google mais qui ne sont pas une réponse. Quelques informations sur l'endroit où je pouvais avoir recherché la réponse serait utile aussi bien.
La solution
Pour une parcelle d'image ou le contour, vous pouvez utiliser le mot-clé origin = None | 'lower' | 'upper'
et pour une parcelle de ligne, vous pouvez définir les ylimits haut en bas.
from pylab import *
A = arange(25)/25.
A = A.reshape((5,5))
figure()
imshow(A, interpolation='nearest', origin='lower')
figure()
imshow(A, interpolation='nearest')
d = arange(5)
figure()
plot(d)
ylim(5, 0)
show()
Autres conseils
Le plus simple est d'utiliser:
plt.gca().invert_yaxis()
Après avoir comploté l'image. Origin
ne fonctionne que pour imshow
.
axis ij
fait que l'axe des y augmentent vers le bas au lieu de vers le haut, à droite? Si oui, alors matplotlib.axes.invert_yaxis()
peut-être tout ce que vous avez besoin - -. mais je ne peux pas tester ce moment
Si cela ne fonctionne pas, j'ai trouvé un poste de diffusion suggérant que
setp(gca(), 'ylim', reversed(getp(gca(), 'ylim')))
peut faire ce que vous voulez ressembler à axis ij
.
Ce qui suit est un moyen de base pour y parvenir
ax=pylab.gca()
ax.set_ylim(ax.get_ylim()[::-1])
plt.ylim(max(plt.ylim()), min(plt.ylim()))
a un avantage sur cette
plt.gca().invert_yaxis()
et est que si vous êtes en mode interactif et vous tracer plusieurs fois sur la même parcelle (peut-être avec des données mises à jour et ayant un point d'arrêt après le tracé) l'axe y ne gardera pas inverser chaque fois.