Bagaimana cara mengubah ukuran font untuk semua elemen (kutu, label, judul) pada plot matplotlib?
Saya tahu cara mengubah ukuran label centang, ini dilakukan dengan:
import matplotlib
matplotlib.rc('xtick', labelsize=20)
matplotlib.rc('ytick', labelsize=20)
Tetapi bagaimana seseorang mengubah sisanya?
python
matplotlib
font-size
Herman Schaaf
sumber
sumber
'family'
,'weight'
, dll?'family'
Seperti'normal'
,'sans-serif'
, dllimport matplotlib.pyplot as plt
, Anda mungkin ingin menunjukkan bahwapyplot
memilikirc
juga. Anda dapat melakukannyaplt.rc(...
tanpa harus mengubah impor Anda.Jika Anda adalah orang gila kontrol seperti saya, Anda mungkin ingin mengatur secara eksplisit semua ukuran font Anda:
Perhatikan bahwa Anda juga dapat mengatur ukuran yang memanggil
rc
metodematplotlib
:sumber
plt.rc('axes', titlesize=BIGGER_SIZE)
plt.rc('axes', titlesize=SMALL_SIZE, labelsize=MEDIUM_SIZE)
sumber
Jika Anda ingin mengubah ukuran font hanya untuk plot tertentu yang telah dibuat, coba ini:
sumber
ax=plt.gca()
jika plot dibuat tanpa mendefinisikan sumbu.ax.get_legend().get_texts()
, karenaax.legend()
menggambar ulang seluruh legenda dengan parameter default di atas mengembalikan nilaiax.get_legend()
.Pembaruan: Lihat bagian bawah jawaban untuk cara yang sedikit lebih baik melakukannya.
Pembaruan # 2: Saya telah menemukan perubahan font judul legenda juga.
Pembaruan # 3: Ada bug di Matplotlib 2.0.0 yang menyebabkan label centang untuk sumbu logaritmik kembali ke font default. Harus diperbaiki di 2.0.1 tapi saya sudah memasukkan solusinya di bagian 2 dari jawabannya.
Jawaban ini untuk siapa saja yang mencoba mengubah semua font, termasuk untuk legenda, dan bagi siapa saja yang mencoba menggunakan font dan ukuran yang berbeda untuk setiap hal. Itu tidak menggunakan rc (yang sepertinya tidak bekerja untuk saya). Ini agak rumit tetapi saya tidak bisa memahami metode lain secara pribadi. Ini pada dasarnya menggabungkan jawaban ryggyr di sini dengan jawaban lain pada SO.
Manfaat dari metode ini adalah bahwa, dengan memiliki beberapa kamus font, Anda dapat memilih font / ukuran / berat / warna yang berbeda untuk berbagai judul, memilih font untuk label centang, dan memilih font untuk legenda, semuanya secara independen.
MEMPERBARUI:
Saya telah mengerjakan pendekatan yang sedikit berbeda, kurang berantakan yang menghilangkan kamus font, dan memungkinkan font apa pun pada sistem Anda, bahkan font .otf. Untuk memiliki font yang terpisah untuk setiap hal, cukup tulis variabel yang lebih banyak
font_path
danfont_prop
sukai.Semoga ini jawaban yang komprehensif
sumber
Berikut ini adalah pendekatan yang sangat berbeda yang bekerja sangat baik untuk mengubah ukuran font:
Ubah ukuran gambar !
Saya biasanya menggunakan kode seperti ini:
Semakin kecil Anda membuat ukuran gambar, semakin besar font relatif terhadap plot . Ini juga meningkatkan penanda. Catatan saya juga mengatur
dpi
atau dot per inci. Saya belajar ini dari sebuah postingan di forum AMTA (American Modeling Teacher of America). Contoh dari kode di atas:sumber
bbox_inches
argumenfig.savefig('Basic.png', bbox_inches="tight")
Menggunakan
plt.tick_params(labelsize=14)
sumber
Anda dapat menggunakan
plt.rcParams["font.size"]
untuk menetapkanfont_size
dimatplotlib
dan juga Anda dapat menggunakanplt.rcParams["font.family"]
untuk menetapkanfont_family
dimatplotlib
. Coba contoh ini:sumber
Inilah yang biasanya saya gunakan di Jupyter Notebook:
sumber
Berdasarkan hal-hal di atas:
sumber
Ini adalah ekstensi untuk jawaban Marius Retegan . Anda dapat membuat file JSON terpisah dengan semua modifikasi Anda dan memuatnya dengan rcParams.update. Perubahan hanya akan berlaku untuk skrip saat ini. Begitu
dan simpan 'example_file.json' ini di folder yang sama.
sumber
Saya sepenuhnya setuju dengan Prof Huster bahwa cara paling sederhana untuk melanjutkan adalah mengubah ukuran gambar, yang memungkinkan menjaga font default. Saya hanya perlu melengkapi ini dengan opsi bbox_inches ketika menyimpan gambar sebagai pdf karena label sumbu dipotong.
sumber