Bagaimana cara membuat gambar judul dan sumbu label ukuran font di Matplotlib?

Saya menciptakan tokoh dalam Matplotlib seperti ini:

from matplotlib import pyplot as plt

fig = plt.figure()
plt.plot(data)
fig.suptitle('test title')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
fig.savefig('test.jpg')

Saya ingin menentukan ukuran font untuk mencari judul dan label sumbu. Saya perlu semua tiga ukuran font yang berbeda, sehingga pengaturan global ukuran font (mpl.rcParams['font.ukuran']=x) ini bukan apa yang saya inginkan. Bagaimana cara mengatur ukuran font untuk mencari judul dan label sumbu secara individual?

Mengomentari pertanyaan (2)
Larutan

Fungsi-fungsi yang berhubungan dengan teks seperti label, judul, dll. menerima parameter yang sama seperti matplotlib.teks.Teks. Untuk ukuran font, anda dapat menggunakan size/ukuran tulisan:

from matplotlib import pyplot as plt    

fig = plt.figure()
plt.plot(data)
fig.suptitle('test title', fontsize=20)
plt.xlabel('xlabel', fontsize=18)
plt.ylabel('ylabel', fontsize=16)
fig.savefig('test.jpg')

Untuk global setting title dan label ukuran, mpl.rcParams berisi sumbu.titlesize dan sumbu.labelsize. (Dari halaman):

axes.titlesize      : large   # fontsize of the axes title
axes.labelsize      : medium  # fontsize of the x any y labels

(Sejauh yang saya bisa melihat, tidak ada cara untuk mengatur x dan y label ukuran secara terpisah.)

Dan saya melihat bahwa sumbu.titlesize tidak mempengaruhi suptitle. Saya kira, anda perlu mengatur secara manual.

Komentar (9)

Anda juga dapat melakukan ini secara global melalui rcParams kamus:

import matplotlib.pylab as pylab
params = {'legend.fontsize': 'x-large',
          'figure.figsize': (15, 5),
         'axes.labelsize': 'x-large',
         'axes.titlesize':'x-large',
         'xtick.labelsize':'x-large',
         'ytick.labelsize':'x-large'}
pylab.rcParams.update(params)
Komentar (5)

Jika anda're lebih banyak digunakan untuk menggunakan ax benda untuk melakukan plotting, anda mungkin menemukan ax.xaxis.label.set_size() lebih mudah untuk mengingat, atau setidaknya lebih mudah untuk menemukan menggunakan tab di ipython terminal. Tampaknya perlu redraw setelah operasi untuk melihat efek. Misalnya:

import matplotlib.pyplot as plt

# set up a plot with dummy data
fig, ax = plt.subplots()
x = [0, 1, 2]
y = [0, 3, 9]
ax.plot(x,y)

# title and labels, setting initial sizes
fig.suptitle('test title', fontsize=12)
ax.set_xlabel('xlabel', fontsize=10)
ax.set_ylabel('ylabel', fontsize='medium')   # relative to plt.rcParams['font.size']

# setting label sizes after creation
ax.xaxis.label.set_size(20)
plt.draw()

Saya don't tahu cara yang sama untuk mengatur suptitle ukuran setelah itu's dibuat.

Komentar (4)

Untuk hanya mengubah judul's jenis huruf (font dan font axis) saya menggunakan ini:

import matplotlib.pyplot as plt
fig = plt.Figure()
ax = fig.add_subplot(111)
ax.set_title('My Title', fontdict={'fontsize': 8, 'fontweight': 'medium'})

Yang fontdict kecuali semua kwargs dari matplotlib.teks.Teks.

Komentar (0)

Solusi alternatif untuk mengubah ukuran font untuk mengubah padding. Ketika Python menghemat PNG, anda dapat mengubah tata letak menggunakan kotak dialog yang terbuka. Jarak antara sumbu, padding jika anda suka dapat diubah pada tahap ini.

Komentar (0)

Tempat right_ax sebelum set_ylabel()

kapak.right_ax.set_ylabel('AB skala')

Komentar (0)