Saya mencoba untuk memvisualisasikan array numpy menggunakan imshow () karena mirip dengan imagesc () di Matlab.
imshow(random.rand(8, 90), interpolation='nearest')
Gambar yang dihasilkan sangat kecil di tengah jendela abu-abu, sementara sebagian besar ruang kosong. Bagaimana cara mengatur parameter untuk membuat gambar lebih besar? Saya mencoba figsize = (xx, xx) dan itu bukan yang saya inginkan. Terima kasih!
python
numpy
matplotlib
Ruofeng
sumber
sumber
Jawaban:
Jika Anda tidak memberikan
aspect
argumen keimshow
, itu akan menggunakan nilai forimage.aspect
dimatplotlibrc
. Default untuk nilai ini di newmatplotlibrc
adalahequal
. Jadiimshow
akan plot array Anda dengan rasio aspek yang sama.Jika Anda tidak perlu aspek yang sama Anda dapat mengatur
aspect
untukauto
yang memberikan gambar berikut
Jika Anda menginginkan rasio aspek yang sama, Anda harus menyesuaikannya
figsize
dengan aspek tersebutyang memberi Anda:
sumber
Aneh, ini pasti berhasil untuk saya:
Saya menggunakan backend "MacOSX", btw.
sumber
plt.figure(figsize = (x_new, y_new))
dan untuk imgshow () Anda sekarang harus mengimpor ioimage karena SciPy imageshow () akan segera dihentikanSaya juga baru mengenal python. Ini adalah sesuatu yang sepertinya akan melakukan apa yang Anda inginkan
Saya yakin ini menentukan ukuran kanvas.
sumber
Perbarui 2020
seperti yang diminta oleh @baxxx, berikut ini pembaruan karena
random.rand
sementara itu sudah usang.Ini bekerja dengan matplotlip 3.2.1:
Plot ini:
Untuk mengubah bilangan acak, Anda dapat bereksperimen dengan
np.random.normal(0,1,(8,90))
(di sini mean = 0, deviasi standar = 1).sumber