373 votes

Inverser l'axe Y dans PyPlot

J'ai un graphique en nuage de points avec un tas de coordonnées x, y aléatoires. Actuellement, l'axe des Y commence à 0 et va jusqu'à la valeur maximale. Je voudrais que l'axe des Y commence à la valeur maximale et aille jusqu'à 0.

points = [(10,5), (5,11), (24,13), (7,8)]    
x_arr = []
y_arr = []
for x,y in points:
    x_arr.append(x)
    y_arr.append(y)
plt.scatter(x_arr,y_arr)

1 votes

Le nombre de réponses correctes à cette question montre à quel point l'utilisation de cette bibliothèque est confuse.

0 votes

@g_uint Depuis au moins 10 ans, il y a un La façon la plus évidente est d'appeler le invert_yaxis() méthode.

0 votes

@BlackJack ce qui est évident pour vous peut ne pas l'être pour un autre :)

9voto

Mortsde Points 91

Une autre méthode similaire à celles décrites ci-dessus consiste à utiliser plt.ylim par exemple :

plt.ylim(max(y_array), min(y_array))

Cette méthode fonctionne pour moi lorsque j'essaie de combiner plusieurs ensembles de données sur Y1 et/ou Y2.

6voto

Farzad Vertigo Points 802

Utiliser ylim() pourrait être la meilleure approche pour votre objectif :

xValues = list(range(10))
quads = [x** 2 for x in xValues]
plt.ylim(max(quads), 0)
plt.plot(xValues, quads)

en résultera : enter image description here

3voto

Luis DG Points 348

Vous pouvez également utiliser l'option matplotlib.pyplot.axis() qui vous permet d'inverser n'importe quel axe du graphique.

ax = matplotlib.pyplot.axis()
matplotlib.pyplot.axis((ax[0],ax[1],ax[3],ax[2]))

Ou si vous préférez inverser uniquement l'axe des X, alors

matplotlib.pyplot.axis((ax[1],ax[0],ax[2],ax[3]))

En effet, vous pouvez inverser les deux axes :

matplotlib.pyplot.axis((ax[1],ax[0],ax[3],ax[2]))

0voto

Andy Turner Points 21

Si vous utilisez matplotlib, vous pouvez essayer : matplotlib.pyplot.xlim(l, r) matplotlib.pyplot.ylim(b, t)

Ces deux lignes définissent les limites des axes x et y respectivement. Pour l'axe des x, le premier argument l définit la valeur la plus à gauche, et le second argument r définit la valeur la plus à droite. Pour l'axe des y, le premier argument b définit la valeur la plus basse, et le second argument t définit la valeur la plus haute.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X