python - pyplot - matplotlib obtiene valores ylim
python pyplot title (3)
Aprovechando las buenas respuestas anteriores y asumiendo que solo estaba usando plt como en
import matplotlib.pyplot as plt
entonces puede obtener los cuatro límites de trazado usando
plt.axis()
como en el siguiente ejemplo.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7, 8] # fake data
y = [1, 2, 3, 4, 3, 2, 5, 6]
plt.plot(x, y, ''k'')
xmin, xmax, ymin, ymax = plt.axis()
s = ''xmin = '' + str(round(xmin, 2)) + '', '' + /
''xmax = '' + str(xmax) + ''/n'' + /
''ymin = '' + str(ymin) + '', '' + /
''ymax = '' + str(ymax) + '' ''
plt.annotate(s, (1, 5))
plt.show()
El código anterior debería producir el siguiente diagrama de salida.
Estoy usando
matplotlib
para trazar datos (usando las funciones de
plot
y
errorbar
) de Python.
Tengo que trazar un conjunto de tramas totalmente separadas e independientes, y luego ajustar sus valores
ylim
para que puedan compararse visualmente fácilmente.
¿Cómo puedo recuperar los valores
ylim
de cada gráfico, para poder tomar el mínimo y el máximo de los valores ylim inferiores y superiores, respectivamente, y ajustar los gráficos para que puedan compararse visualmente?
Por supuesto, podría analizar los datos y crear mis propios valores
ylim
personalizados ... pero me gustaría usar
matplotlib
para hacer eso por mí.
¿Alguna sugerencia sobre cómo hacer esto de manera fácil (y eficiente)?
Aquí está mi función de Python que traza usando
matplotlib
:
import matplotlib.pyplot as plt
def myplotfunction(title, values, errors, plot_file_name):
# plot errorbars
indices = range(0, len(values))
fig = plt.figure()
plt.errorbar(tuple(indices), tuple(values), tuple(errors), marker=''.'')
# axes
axes = plt.gca()
axes.set_xlim([-0.5, len(values) - 0.5])
axes.set_xlabel(''My x-axis title'')
axes.set_ylabel(''My y-axis title'')
# title
plt.title(title)
# save as file
plt.savefig(plot_file_name)
# close figure
plt.close(fig)
Simplemente use
axes.get_ylim()
, es muy similar a
set_ylim
.
De los
docs
:
get_ylim ()
Obtenga el rango del eje y [abajo, arriba]
ymin, ymax = axes.get_ylim()
Si está utilizando la estructura
plt
, ¿por qué molestarse incluso con los ejes?
Esto debería funcionar:
def myplotfunction(title, values, errors, plot_file_name):
# plot errorbars
indices = range(0, len(values))
fig = plt.figure()
plt.errorbar(tuple(indices), tuple(values), tuple(errors), marker=''.'')
plt.xlim([-0.5, len(values) - 0.5])
plt.xlabel(''My x-axis title'')
plt.ylabel(''My y-axis title'')
# title
plt.title(title)
# save as file
plt.savefig(plot_file_name)
# close figure
plt.close(fig)
¿O no es este el caso?