2012-05-10 26 views
35

Tôi đang cố gắng hình dung một mảng mờ bằng cách sử dụng imshow() vì nó tương tự như imagesc() trong Matlab.hình của imshow() là quá nhỏ

imshow(random.rand(8, 90), interpolation='nearest') 

Con số kết quả là rất nhỏ ở giữa cửa sổ màu xám, trong khi phần lớn không gian trống. Làm thế nào tôi có thể thiết lập các thông số để làm cho hình lớn hơn? Tôi đã thử figsize = (xx, xx) và nó không phải là những gì tôi muốn. Cảm ơn!

Trả lời

64

Nếu bạn không đưa ra đối số aspect cho imshow, nó sẽ sử dụng giá trị cho image.aspect trong số matplotlibrc của bạn. Giá trị mặc định cho giá trị này trong một matplotlibrc mới là equal. Vì vậy, imshow sẽ vẽ mảng của bạn với tỷ lệ co bằng nhau.

Nếu bạn không cần một khía cạnh bình đẳng bạn có thể đặt aspect để auto

imshow(random.rand(8, 90), interpolation='nearest', aspect='auto') 

mang đến cho hình sau

imshow-auto

Nếu bạn muốn một tỉ lệ tương đương bạn phải điều chỉnh figsize của bạn theo khía cạnh

fig, ax = subplots(figsize=(18, 2)) 
ax.imshow(random.rand(8, 90), interpolation='nearest') 
tight_layout() 

cung cấp cho bạn:

imshow-equal

7

Đó là lạ, nó chắc chắn làm việc cho tôi:

figure(figsize = (20,2)) 
imshow(random.rand(8, 90), interpolation='nearest') 

Tôi đang sử dụng "MacOSX" backend, btw.

0

Tôi cũng mới sử dụng python. Đây là một cái gì đó trông giống như sẽ làm những gì bạn muốn

axes([0.08, 0.08, 0.94-0.08, 0.94-0.08]) #[left, bottom, width, height] 
axis('scaled')` 

Tôi tin rằng điều này quyết định kích thước của canvas.

Các vấn đề liên quan