libreria - plot() python
Reverse Y-Axis en PyPlot (7)
Alternativamente, puede usar la función matplotlib.pyplot.axis() , que le permite invertir cualquiera de los ejes de la gráfica
ax = matplotlib.pyplot.axis()
matplotlib.pyplot.axis((ax[0],ax[1],ax[3],ax[2]))
O si prefiere invertir solo el eje X, entonces
matplotlib.pyplot.axis((ax[1],ax[0],ax[2],ax[3]))
De hecho, puedes invertir ambos ejes:
matplotlib.pyplot.axis((ax[1],ax[0],ax[3],ax[2]))
Tengo un gráfico de diagrama de dispersión con un montón de coordenadas x, y aleatorias. Actualmente, el eje Y comienza en 0 y sube hasta el valor máximo. Me gustaría que el eje Y comience en el valor máximo y suba a 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)
Hay una nueva API que hace esto aún más simple.
plt.gca().invert_xaxis()
y / o
plt.gca().invert_yaxis()
Otro método similar a los descritos anteriormente es usar plt.ylim
por ejemplo:
plt.ylim(max(y_array), min(y_array))
Este método funciona para mí cuando intento componer conjuntos de datos múltiples en Y1 y / o Y2
Si estás en ipython en modo pylab
, entonces
plt.gca().invert_yaxis()
show()
el show()
es necesario para que actualice la figura actual.
Utilice matplotlib.pyplot.axis()
axis([xmin, xmax, ymin, ymax])
Así que podrías agregar algo como esto al final:
plt.axis([min(x_arr), max(x_arr), max(y_arr), 0])
Aunque es posible que desee relleno en cada extremo para que los puntos extremos no se asienten en el borde.
DisplacedAussie respuesta de DisplacedAussie es correcta, pero generalmente un método más corto es solo para invertir el eje único en cuestión:
plt.scatter(x_arr, y_arr)
ax = plt.gca()
ax.set_ylim(ax.get_ylim()[::-1])
donde la función gca()
devuelve la instancia de ejes actual y [::-1]
invierte la lista.