2012-07-09 34 views
7

Tôi đang cố vẽ một số dữ liệu từ các tệp FITS và tôi muốn biết liệu có ai biết cách tập trung vào các vùng nhất định của trục của ô không? Dưới đây là một số mã mẫu:pyplot zoom in

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) 

Tôi chỉ có thể vẽ khu vực từ [1.3 to 4] trong trục x?

Trả lời

6

Sử dụng plt.axis() chức năng với giới hạn của bạn.

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

nơi x(y)min/max là giới hạn tọa độ cho cả hai trục.

+0

Cảm ơn bạn! Điều này có vẻ rất hữu ích. –

+0

@ nye17 Sử dụng 'xlim' /' ylim' hoặc 'axis' không quan trọng, vì' axis' gọi 'xlim' /' ylim' để thực hiện thao tác. Truy cập định nghĩa 'trục' trong [mã nguồn] (https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/axes.py). 'axis' chỉ thuận tiện hơn một chút vì bạn có thể thao tác tất cả bốn giới hạn bằng một lệnh. – MaxPowers

+0

@MaxPowers Bạn nói đúng, bằng cách nào đó tôi nhầm nó là 'add_axis', xấu của tôi! – nye17

6

Câu hỏi này không có gì để làm với cách bạn thao tác pyfits, mà chỉ đơn giản là vấn đề của việc thêm

plt.xlim(1.3, 4.0) 

để mã của bạn trước plt.show()

+0

Cảm ơn bạn! Tôi sẽ thử cái này! –