vertical una tamaño logaritmica linea grafico grafica fijar etiquetas escala ejes como cambiar ajustar python matplotlib plot

python - una - fijar ejes matplotlib



Cómo establecer xlim y ylim para una subtrama en matplotlib (1)

Esta pregunta ya tiene una respuesta aquí:

Me gustaría limitar los ejes X e Y en matplotlib, pero para una subparcela específica. Como puedo ver, la figura de la subtrama no tiene ninguna propiedad de eje. ¡Quiero, por ejemplo, cambiar solo los límites para la segunda trama!

import matplotlib.pyplot as plt fig=plt.subplot(131) plt.scatter([1,2],[3,4]) fig=plt.subplot(132) plt.scatter([10,20],[30,40]) fig=plt.subplot(133) plt.scatter([15,23],[35,43]) plt.show()


Debería aprender un poco de la interfaz OO para matplotlib, no solo la interfaz de máquina de estado. Casi toda la función plt.* Son envoltorios delgados que básicamente hacen gca().* .

plt.subplot devuelve un objeto de axes . Una vez que tenga una referencia al objeto de ejes, puede trazarlo directamente, cambiar sus límites, etc.

import matplotlib.pyplot as plt ax1 = plt.subplot(131) ax1.scatter([1, 2], [3, 4]) ax1.set_xlim([0, 5]) ax1.set_ylim([0, 5]) ax2 = plt.subplot(132) ax2.scatter([1, 2],[3, 4]) ax2.set_xlim([0, 5]) ax2.set_ylim([0, 5])

y así sucesivamente para todos los ejes que desee.

o mejor, envuélvalo todo en un bucle:

import matplotlib.pyplot as plt DATA_x = ([1, 2], [2, 3], [3, 4]) DATA_y = DATA_x[::-1] XLIMS = [[0, 10]] * 3 YLIMS = [[0, 10]] * 3 for j, (x, y, xlim, ylim) in enumerate(zip(DATA_x, DATA_y, XLIMS, YLIMS)): ax = plt.subplot(1, 3, j + 1) ax.scatter(x, y) ax.set_xlim(xlim) ax.set_ylim(ylim)