Pertanyaan sederhana di sini: Saya mencoba untuk mendapatkan ukuran legenda saya matplotlib.pyplot
menjadi lebih kecil (yaitu, teks menjadi lebih kecil). Kode yang saya gunakan berjalan seperti ini:
plot.figure()
plot.scatter(k, sum_cf, color='black', label='Sum of Cause Fractions')
plot.scatter(k, data[:, 0], color='b', label='Dis 1: cf = .6, var = .2')
plot.scatter(k, data[:, 1], color='r', label='Dis 2: cf = .2, var = .1')
plot.scatter(k, data[:, 2], color='g', label='Dis 3: cf = .1, var = .01')
plot.legend(loc=2)
python
size
matplotlib
legend
mike
sumber
sumber
plot.rcParams.update
?Ini harus dilakukan
Kemudian lakukan plot setelahnya.
Ada satu ton rcParams lainnya, mereka juga dapat diatur dalam file matplotlibrc.
Mungkin juga Anda bisa mengubahnya lewat sebuah
matplotlib.font_manager.FontProperties
instance tetapi ini saya tidak tahu caranya. -> lihat jawaban Yann.sumber
matplotlib.rc('legend', fontsize=0.5, linewidth=2)
legend.handlelength
bukanlegend.linewidth
menggunakan
import matplotlib.pyplot as plt
Metode 1: tentukan ukuran font saat memanggil legenda (berulang)
Dengan metode ini Anda dapat mengatur ukuran font untuk setiap legenda saat pembuatan (memungkinkan Anda memiliki banyak legenda dengan ukuran font yang berbeda). Namun, Anda harus mengetik semuanya secara manual setiap kali Anda membuat legenda.
(Catatan: @ Mathias711 mencantumkan fontsizes bernama tersedia dalam jawabannya)
Metode 2: tentukan ukuran font di rcParams (nyaman)
Dengan metode ini Anda mengatur ukuran legenda font default, dan semua legenda akan secara otomatis menggunakannya kecuali jika Anda menentukan sebaliknya menggunakan metode 1. Ini berarti Anda dapat mengatur ukuran legenda font Anda di awal kode Anda, dan tidak khawatir tentang pengaturannya untuk setiap legenda individu .
Jika Anda menggunakan ukuran bernama misalnya
'medium'
, maka teks legenda akan berskala dengan globalfont.size
inrcParams
. Untuk mengubahfont.size
penggunaanplt.rc(font.size='medium')
sumber
Ada juga beberapa ukuran font bernama , selain dari ukuran dalam poin:
Pemakaian:
sumber
Ada beberapa pengaturan untuk menyesuaikan ukuran legenda. Dua hal yang menurut saya paling berguna adalah:
legend(..., labelspacing=0.2)
akan mengurangi jarak antara entri menjadi 2 poin. Default pada instalasi saya adalah sekitar 0,5.legend(..., prop={'size':8})
. Default pada instalasi saya adalah sekitar 14 poin.Selain itu, legenda dokumentasi daftar sejumlah parameter padding dan spacing lainnya termasuk:
borderpad
,handlelength
,handletextpad
,borderaxespad
, dancolumnspacing
. Ini semua mengikuti bentuk yang sama dengan labelspacing dan area juga dalam beberapa ukuran font.Nilai-nilai ini juga dapat ditetapkan sebagai default untuk semua angka menggunakan file matplotlibrc .
sumber
Pada instalasi saya, FontProperties hanya mengubah ukuran teks, tetapi masih terlalu besar dan berjarak. Saya menemukan parameter dalam
pyplot.rcParams
:legend.labelspacing
, yang aku menebak diatur untuk sebagian kecil dari ukuran font. Saya sudah mengubahnya denganSaya tidak yakin bagaimana menentukannya ke fungsi pyplot.legend - passing
atau
kembali dengan kesalahan.
sumber
plot.legend (loc = 'kanan bawah', decimal_places = 2, fontsize = '11', title = 'Hei,', title_fontsize = '20')
sumber