Comment change-t-on la taille de la police pour tous les éléments (ticks, étiquettes, titre) sur un tracé matplotlib?
Je sais comment changer la taille des étiquettes des ticks, cela se fait avec:
import matplotlib
matplotlib.rc('xtick', labelsize=20)
matplotlib.rc('ytick', labelsize=20)
Mais comment change-t-on le reste?
python
matplotlib
font-size
Herman Schaaf
la source
la source
'family'
,'weight'
etc.?'family'
comme'normal'
,'sans-serif'
, etc.import matplotlib.pyplot as plt
, vous pouvez vous signaler quepyplot
arc
aussi bien. Vous pouvez le faireplt.rc(...
sans avoir à modifier vos importations.Si vous êtes un maniaque du contrôle comme moi, vous pouvez définir explicitement toutes vos tailles de police:
Notez que vous pouvez également définir les tailles appelant la
rc
méthode surmatplotlib
:la source
plt.rc('axes', titlesize=BIGGER_SIZE)
plt.rc('axes', titlesize=SMALL_SIZE, labelsize=MEDIUM_SIZE)
la source
Si vous souhaitez modifier la taille de police pour un tracé spécifique qui a déjà été créé, essayez ceci:
la source
ax=plt.gca()
si le tracé a été créé sans définir d'axe.ax.get_legend().get_texts()
, carax.legend()
redessine toute la légende avec des paramètres par défaut en plus de renvoyer la valeur deax.get_legend()
.Mise à jour: Voir le bas de la réponse pour une façon légèrement meilleure de le faire.
Mise à jour n ° 2: j'ai également découvert la modification des polices de titre de légende.
Mise à jour # 3: il y a un bogue dans Matplotlib 2.0.0 qui fait que les étiquettes de tick pour les axes logarithmiques reviennent à la police par défaut. Devrait être corrigé dans 2.0.1 mais j'ai inclus la solution de contournement dans la 2ème partie de la réponse.
Cette réponse s'adresse à toute personne essayant de modifier toutes les polices, y compris pour la légende, et à toute personne essayant d'utiliser des polices et des tailles différentes pour chaque chose. Il n'utilise pas rc (ce qui ne semble pas fonctionner pour moi). C'est assez lourd mais je n'ai pas pu me familiariser avec une autre méthode personnellement. Il combine essentiellement la réponse de ryggyr ici avec d'autres réponses sur SO.
L'avantage de cette méthode est qu'en ayant plusieurs dictionnaires de polices, vous pouvez choisir différentes polices / tailles / poids / couleurs pour les différents titres, choisir la police pour les étiquettes de coche et choisir la police pour la légende, le tout indépendamment.
MISE À JOUR:
J'ai élaboré une approche légèrement différente et moins encombrée qui supprime les dictionnaires de polices et autorise toutes les polices de votre système, même les polices .otf. Pour avoir des polices distinctes pour chaque chose, il suffit d'écrire plus de variables
font_path
et de lesfont_prop
aimer.J'espère que c'est une réponse complète
la source
Voici une approche totalement différente qui fonctionne étonnamment bien pour changer les tailles de police:
Changez la taille de la figure !
J'utilise habituellement du code comme celui-ci:
Plus la taille de la figure est petite, plus la police est grande par rapport au tracé . Cela améliore également les marqueurs. Remarque J'ai également défini le
dpi
ou le point par pouce. J'ai appris cela en postant le forum AMTA (American Modeling Teacher of America). Exemple du code ci-dessus:la source
bbox_inches
argumentfig.savefig('Basic.png', bbox_inches="tight")
Utilisation
plt.tick_params(labelsize=14)
la source
Vous pouvez utiliser
plt.rcParams["font.size"]
pour la misefont_size
enmatplotlib
et vous pouvez également utiliserplt.rcParams["font.family"]
pour la misefont_family
enmatplotlib
. Essayez cet exemple:la source
Voici ce que j'utilise généralement dans Jupyter Notebook:
la source
Sur la base des éléments ci-dessus:
la source
Ceci est une extension de la réponse de Marius Retegan . Vous pouvez créer un fichier JSON séparé avec toutes vos modifications et le charger avec rcParams.update. Les modifications s'appliqueront uniquement au script actuel. Donc
et enregistrez ce 'example_file.json' dans le même dossier.
la source
Je suis totalement d'accord avec le professeur Huster que la façon 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 cela avec une option bbox_inches lors de l'enregistrement de la figure au format PDF car les étiquettes d'axe ont été coupées.
la source