[python] Comment changer la taille de la police sur un graphique matplotlib


Answers

matplotlib.rcParams.update({'font.size': 22})
Question

Comment changer la taille de la police pour tous les éléments (ticks, labels, title) sur un graphe matplotlib?

Je sais comment changer la taille des étiquettes de tick, ceci est fait avec:

import matplotlib 
matplotlib.rc('xtick', labelsize=20) 
matplotlib.rc('ytick', labelsize=20) 

Mais comment changer le reste?




Je suis totalement d'accord avec le professeur Huster sur le fait que la manière la plus simple de procéder est de changer la taille de la figure, ce qui permet de conserver les polices par défaut. J'ai juste dû compléter ceci avec une option de bbox_inches en sauvant la figure comme pdf parce que les étiquettes d'axe ont été coupées.

import matplotlib.pyplot as plt
plt.figure(figsize=(4,3))
plt.savefig('Basic.pdf', bbox_inches='tight')



Voici une approche totalement différente qui fonctionne étonnamment bien pour changer les tailles de police:

Changez la taille de la figure !

J'utilise généralement du code comme celui-ci:

import matplotlib.pyplot as plt
import numpy as np
[enter image description here][1]fig = plt.figure(figsize=(4,3))
ax = fig.add_subplot(111)
x = np.linspace(0,6.28,21)
ax.plot(x, np.sin(x), '-^', label="1 Hz")
ax.set_title("Oscillator Output")
ax.set_xlabel("Time (s)")
ax.set_ylabel("Output (V)")
ax.grid(True)
ax.legend(loc=1)
fig.savefig('Basic.png', dpi=300)

Plus la taille de la figure est petite, plus la police est grande par rapport à l'intrigue . Cela augmente également les marqueurs. Remarque: Je définis également le dpi ou le point par pouce. J'ai appris cela en postant le forum AMTA (American Modeling Teacher of America). Exemple: Figure du code ci-dessus




Si vous êtes un fan de contrôle comme moi, vous voudrez peut-être définir explicitement toutes vos tailles de police:

import matplotlib.pyplot as plt

SMALL_SIZE = 8
MEDIUM_SIZE = 10
BIGGER_SIZE = 12

plt.rc('font', size=SMALL_SIZE)          # controls default text sizes
plt.rc('axes', titlesize=SMALL_SIZE)     # fontsize of the axes title
plt.rc('axes', labelsize=MEDIUM_SIZE)    # fontsize of the x and y labels
plt.rc('xtick', labelsize=SMALL_SIZE)    # fontsize of the tick labels
plt.rc('ytick', labelsize=SMALL_SIZE)    # fontsize of the tick labels
plt.rc('legend', fontsize=SMALL_SIZE)    # legend fontsize
plt.rc('figure', titlesize=BIGGER_SIZE)  # fontsize of the figure title

Notez que vous pouvez également définir les tailles appelant la méthode rc sur matplotlib :

import matplotlib

SMALL_SIZE = 8
matplotlib.rc('font', size=SMALL_SIZE)
matplotlib.rc('axes', titlesize=SMALL_SIZE)

# and so on ...





Related