2012-07-09 59 views
7

Estoy tratando de trazar algunos datos de archivos FITS y quería saber si alguien sabe cómo enfocarse en ciertas regiones del eje de una trama. Aquí es un código de ejemplo:pyplot haciendo zoom en

import pyfits 
from matplotlib import pyplot as plt 
from matplotlib import pylab 
from pylab import * 
#Assuming I have my data in the current directory 
a = pyfits.getdata('fits1.fits') 
x = a['data1'] # Lets assume data1 is the column: [0, 1, 1.3, 1.5, 2, 4, 8] 
y = a['data2'] # And data2 is the column: [0, 0.5, 1, 1.5, 2, 2.5, 3] 
plt.plot(x,y) 

¿Cómo podría representar solamente la región de [1.3 to 4] en el eje x?

Respuesta

6

Utilice la función plt.axis() con sus límites.

plt.axis([xmin,xmax,ymin,ymax]) 

donde x(y)min/max son los límites para los dos ejes de coordenadas.

+0

¡Gracias! Esto se ve muy útil. –

+0

@ nye17 El uso de 'xlim' /' ylim' o 'axis' no importa, ya que' axis' llama a 'xlim' /' ylim' para realizar la operación. Visite la definición de 'axis' en el [código fuente] (https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/axes.py). 'axis' es un poco más conveniente ya que puedes manipular los cuatro límites con un solo comando. – MaxPowers

+0

@MaxPowers Tienes razón, de alguna manera lo confundí como 'add_axis', ¡es malo! – nye17

6

Esta pregunta no tiene nada que ver con cómo se manipula pyfits, sino simplemente una cuestión de añadir

plt.xlim(1.3, 4.0) 

a su código antes de plt.show()

+0

¡Gracias! Voy a probar esto! –