Tôi muốn vẽ bằng cách sử dụng imshow theo cách tương tự như ví dụ thứ hai ở đây http://www.scipy.org/Plotting_Tutorial nhưng để xác định lại tỷ lệ cho trục. Tôi cũng muốn hình ảnh vẫn ở lại trong khi tôi làm điều này!Làm cách nào để thay đổi tỷ lệ imshow trong matplotlib mà không kéo giãn hình ảnh?
Mã từ ví dụ:
from scipy import *
from pylab import *
# Creating the grid of coordinates x,y
x,y = ogrid[-1.:1.:.01, -1.:1.:.01]
z = 3*y*(3*x**2-y**2)/4 + .5*cos(6*pi * sqrt(x**2 +y**2) + arctan2(x,y))
hold(True)
# Creating image
imshow(z, origin='lower', extent=[-1,1,-1,1])
xlabel('x')
ylabel('y')
title('A spiral !')
# Adding a line plot slicing the z matrix just for fun.
plot(x[:], z[50, :])
show()
Nếu tôi thay đổi mức độ rộng hơn, ví dụ:
imshow(z, origin='lower', extent=[-4,4,-1,1])
Sau đó thì ảnh thu được kéo dài. Nhưng tất cả những gì tôi muốn làm là thay đổi các dấu tích trùng với dữ liệu của tôi. Tôi biết tôi có thể sử dụng pcolor để bảo tồn dữ liệu X và Y, mặc dù có các nhánh khác cho nó.
Tôi tìm thấy câu trả lời này cho phép tôi tự làm lại tất cả các bọ ve:
How do I convert (or scale) axis values and redefine the tick frequency in matplotlib?
Nhưng điều đó có vẻ hơi quá đáng chút.
Có cách nào để chỉ thay đổi phạm vi được hiển thị bởi các nhãn không?
Aspect là giải pháp tốt cho trường hợp sử dụng của tôi vì tôi không có cốt truyện ở đó. Và bạn sửa xticks trong một giải pháp thanh lịch hơn tôi. Cảm ơn bạn! – ubershmekel