Bagaimana membuat plot inline di Notebook Jupyter lebih besar?

263

Saya telah membuat plot saya sebaris di Notebook Ipython saya dengan " %matplotlib inline."

Sekarang, alurnya muncul. Namun, ini sangat kecil. Apakah ada cara untuk membuatnya tampak lebih besar menggunakan pengaturan notebook atau pengaturan plot?

masukkan deskripsi gambar di sini

Christopher
sumber

Jawaban:

172

Ya, bermainlah dengan figuresizelike so (sebelum Anda memanggil subplot Anda):

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')
roadrunner66
sumber
28
f, (ax1, ax2, ax3) = plt.subplots (1,3, sharex = 'col', sharey = 'row', figsize = (18, 16)) untuk kasus khusus ini
Rol
12
Tidak bekerja. Mengubah gambar dalam kasus saya hanya mengubah rasio aspek. Lebar dari jumlah total tetap
Aleksejs Fomins
Itu benar untuk angka yang terlalu besar untuk muat pada halaman, maka penskalaan berhenti. Ini masih bisa berguna untuk mengubah rasio aspek seperti yang Anda catat.
roadrunner66
1
Meningkatkan dpi ke '200' memberikan hasil yang jauh lebih baik daripada hanya mengubah ukuran gambar.
Adithya Bhat
Ya, lihat @Hagne di bawah ini.
roadrunner66
403

Ukuran gambar default (dalam inci) dikendalikan oleh

matplotlib.rcParams['figure.figsize'] = [width, height]

Sebagai contoh:

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [10, 5]

menciptakan angka dengan 10 (lebar) x 5 (tinggi) inci

tacaswell
sumber
7
Ini sebenarnya jauh lebih berguna sebagai strategi set-it-and-forget-it jika semua plot salah ukuran.
ijoseph
2
Bagus. Berjuang dengan ukuran kotak panda dan ini memperbaikinya. Untuk beberapa alasan figsize=(x,y)argumen tidak efektif di jupyter. Namun, memodifikasi matplob.rcParams, seperti yang Anda sarankan, berfungsi dengan sempurna.
0_0
29
Pastikan Anda menjalankan ini setelah berjalan %matplotlib inline.
tepatnya
@ tapi bukankah ini default?
Verena Haunschmid
4
@VerenaHaunschmid yang berjalan %matplotlib inlinesetelah pengaturan rcParams tampaknya menimpa ukuran gambar kembali ke default.
uut
63

Saya menemukan bahwa itu %matplotlib notebookbekerja lebih baik bagi saya daripada sejajar dengan notebook Jupyter.

Perhatikan bahwa Anda mungkin perlu me-restart kernel jika Anda menggunakan %matplotlib inlinesebelumnya.

Pembaruan 2019: Jika Anda menjalankan Jupyter Lab Anda mungkin ingin menggunakan %matplotlib widget

SlimCheney
sumber
5
Mungkin ini berfungsi dalam beberapa kasus tetapi ketika saya mencoba ini pada saya itu memberi saya gambar kosong dengan kerangka data panda df.plot(). Saya harus kembali ke%matplotlib inline
tsando
8
@tsando Saya telah melihat masalah ketika beralih dari %matplotlib inlineke %matplotlib notebooktanpa memulai ulang kernel memberikan output kosong. Beralih dari %matplotlib notebookke %matplotlib inlinebekerja dengan baik.
SlimCheney
4
Terima kasih @SlimCheney, saya mengkonfirmasi apa yang Anda katakan benar - itu berfungsi jika Anda me-restart kernel
tsando
1
Ini pasti mengalahkan mencoba mengatur panning dan memperbesar komponen dengan tangan
beldaz
1
tidak berfungsi, bahkan setelah restart kernel. Ini memberikan output kosong
Kardi Teknomo
31

Jika Anda hanya ingin gambar sosok Anda tampak lebih besar tanpa mengubah tampilan umum gambar Anda, tambah resolusi gambarnya. Mengubah ukuran gambar seperti yang disarankan dalam sebagian besar jawaban lain akan mengubah tampilan karena ukuran font tidak sesuai skala.

import matplotlib.pylab as plt
plt.rcParams['figure.dpi'] = 200
Hagne
sumber
19

Pertanyaannya adalah tentang matplotlib, tetapi demi setiap pengguna R yang berakhir di sini diberi judul agnostik bahasa:

Jika Anda menggunakan kernel R, cukup gunakan:

options(repr.plot.width=4, repr.plot.height=3)
Jared Wilber
sumber
11

Untuk menyesuaikan ukuran satu gambar:

import matplotlib.pyplot as plt

fig=plt.figure(figsize=(15, 15))

Untuk mengubah pengaturan default, dan karenanya semua plot Anda:

import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = [15, 15]
perpisahan
sumber
1

Detail kecil namun penting untuk menyesuaikan ukuran gambar satu kali (seperti beberapa komentator di atas melaporkan "ini tidak berhasil untuk saya"):

Anda harus melakukan plt.figure (figsize = (,)) SEBELUM untuk mendefinisikan plot Anda yang sebenarnya. Sebagai contoh:

Ini harus mengukur ukuran plot dengan benar sesuai dengan gambar yang Anda tentukan:

values = [1,1,1,2,2,3]
_ = plt.figure(figsize=(10,6))
_ = plt.hist(values,bins=3)
plt.show()

Padahal ini akan menunjukkan plot dengan pengaturan default, sepertinya "abaikan" figsize:

values = [1,1,1,2,2,3]
_ = plt.hist(values,bins=3)
_ = plt.figure(figsize=(10,6))
plt.show()
RGood
sumber