Bagaimana Anda mengubah ukuran gambar yang digambar dengan matplotlib?
python
graph
matplotlib
plot
visualization
tatwright
sumber
sumber
plt.figure(figsize=(20,10))
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
->fig.set_size_inches(11,8)
untuk menghindari kebingungan sekali dan untuk semua.Jawaban:
gambar memberi tahu Anda tanda tangan panggilan:
figure(figsize=(1,1))
akan membuat gambar inci-demi-inci, yang akan menjadi 80-oleh-80 piksel kecuali Anda juga memberikan argumen dpi berbeda.sumber
show()
untuk membuat jendela popup, Anda perlu meneleponfigure(num=1,...)
sebelum merencanakan apa pun - pyplot / pylab membuat angka segera setelah Anda menggambar sesuatu, dan ukuran popup muncul diperbaiki pada saat ini.Jika Anda telah membuat gambar, Anda dapat dengan cepat melakukan ini:
Untuk menyebarkan perubahan ukuran ke jendela gui yang ada tambahkan
forward=True
sumber
imshow
, sekarang saya menggunakan kode ini setelah menghilangkan ruang di sekitar area plotplt.subplots_adjust(left=0.0, right=1.0, bottom=0.0, top=1.0)
.fig.set_dpi(100)
.Tampaknya ini berfungsi:
Ini membuat lebar gambar 5 inci, dan tingginya 10 inci .
Kelas Gambar kemudian menggunakan ini sebagai nilai default untuk salah satu argumennya.
sumber
fig.set_size_inches(18.5, 10.5, forward=True)
bekerja.MENGGUNAKAN plt.rcParams
Ada juga solusi ini jika Anda ingin mengubah ukuran tanpa menggunakan lingkungan gambar. Jadi jika Anda menggunakan
plt.plot()
misalnya, Anda dapat mengatur tuple dengan lebar dan tinggi.Ini sangat berguna saat Anda memplot inline (mis. Dengan IPython Notebook). Seperti yang diperhatikan @asamaier, lebih baik tidak menaruh pernyataan ini di sel yang sama dengan pernyataan impor.
Konversi ke cm
The
figsize
tuple menerima inci jadi jika Anda ingin mengaturnya dalam sentimeter Anda harus membagi mereka dengan 2,54 memiliki melihat ke pertanyaan ini .sumber
plt.rcParams["figure.figsize"] = (20,3)
sel ekstra. Ketika saya menyebutnya di sel yang sama dengan pernyataan impor, itu diabaikan.Silakan coba kode sederhana sebagai berikut:
Anda perlu mengatur ukuran gambar sebelum Anda plot.
sumber
atplotlib.pyplot.figure
, yang orang lain tidak katakan dengan jelas. Saya terus mencoba hal-hal sepertimatplotlib.figure
danmatplotlib.figure.Figure
plt.figure(figsize=(1,1))
adalah langkah terpenting. Terima kasih.Jika Anda sedang mencari cara untuk mengubah ukuran gambar di Panda , Anda dapat melakukan mis:
di mana
df
adalah kerangka data Pandas. Atau, untuk menggunakan gambar atau sumbu yang adaJika Anda ingin mengubah pengaturan default, Anda dapat melakukan hal berikut:
sumber
Tautan pertama di Google untuk
'matplotlib figure size'
adalah AdjustingImageSize ( Google cache halaman ).Berikut ini skrip pengujian dari halaman di atas. Ini membuat
test[1-3].png
file dengan ukuran berbeda dari gambar yang sama:Keluaran:
Dua catatan:
Komentar modul dan output aktual berbeda.
Jawaban ini memungkinkan untuk dengan mudah menggabungkan ketiga gambar dalam satu file gambar untuk melihat perbedaan ukuran.
sumber
fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size[0]*2, default_size[1]*2) )
Anda cukup menggunakan (dari matplotlib.figure.Figure ):
Pada Matplotlib 2.0.0, perubahan pada kanvas Anda akan segera terlihat, sebagai
forward
kata kunci default untukTrue
.Jika Anda hanya ingin mengubah lebar atau tinggi alih-alih keduanya, Anda bisa menggunakannya
fig.set_figwidth(val)
ataufig.set_figheight(val)
Ini juga akan segera memperbarui kanvas Anda, tetapi hanya di Matplotlib 2.2.0 dan yang lebih baru.
Untuk Versi Lama
Anda harus menentukan
forward=True
secara eksplisit untuk memperbarui kanvas Anda dalam versi yang lebih lama dari yang ditentukan di atas. Perhatikan bahwaset_figwidth
danset_figheight
fungsi tidak mendukungforward
parameter dalam versi yang lebih lama dari Matplotlib 1.5.0.sumber
Anda juga bisa menggunakan:
sumber
Cobalah berkomentar di luar
fig = ...
garissumber
Ini bekerja dengan baik untuk saya:
Ini juga dapat membantu: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html
sumber
Untuk menambah ukuran gambar Anda N kali Anda harus memasukkan ini tepat sebelum pl.show ():
Ini juga bekerja dengan baik dengan notebook ipython.
sumber
Karena Matplotlib tidak dapat menggunakan sistem metrik secara asli, jika Anda ingin menentukan ukuran gambar Anda dalam satuan panjang yang wajar seperti sentimeter, Anda dapat melakukan hal berikut (kode dari gns-ank ):
Maka Anda dapat menggunakan:
sumber
Ini mengubah ukuran gambar segera bahkan setelah angka telah ditarik (setidaknya menggunakan Qt4Agg / TkAgg - tetapi tidak MacOSX - dengan matplotlib 1.4.0):
sumber
Menyamaratakan dan menyederhanakan jawaban psihodelia. Jika Anda ingin mengubah ukuran saat ini dengan faktor
sizefactor
Setelah mengubah ukuran saat ini, mungkin Anda harus menyesuaikan tata letak subplot . Anda dapat melakukannya di GUI jendela gambar, atau dengan menggunakan perintah subplots_adjust
Sebagai contoh,
sumber
Pilihan lain, untuk menggunakan fungsi rc () di matplotlib (unit ini inci)
sumber
Anda langsung mengubah ukuran gambar dengan menggunakan
sumber
pyplot
tidak memiliki metode apa pun yang dinamaiset_figsize
.