2
votes

Personnaliser la police lors de l'utilisation de la feuille de style

J'utilise la feuille de style 'ggplot' . Maintenant, le style est génial, sauf que je voudrais modifier spécifiquement le style de police. Est-ce possible?

Si vous avez trouvé la documentation sur la personnalisation des styles. Cependant, je veux juste changer la police tout en conservant le reste du style.

De plus, est-ce que quelqu'un sait où voir les détails des paramètres de chaque style ( comme font, figsize, etc.)?

plt.imshow(ori, vmin = 0, vmax = 300)
plt.style.use('ggplot')
plt.show() 


0 commentaires

3 Réponses :


1
votes

Essayez rcParams

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

En savoir plus matplotlib


0 commentaires

2
votes

Oui, c'est possible. Et vous pouvez le faire soit localement en transmettant la police à des libellés individuels

 import matplotlib.pyplot as plt
 plt.rcParams['font.family'] = 'your font'

ou globalement

font = {'fontname':'your font'}
plt.xlabel('xlabel', **hfont)
plt.ylabel('xlabel', **hfont)


0 commentaires

3
votes

Combinaison de styles

Je pense que le plus élégant est de combiner les styles .

Par exemple, vous pouvez définir vos propres paramètres de police dans mystyle.mplstyle (voir ci-dessous où l'enregistrer et à quoi il pourrait ressembler). Pour obtenir le style ggplot avec vos propres paramètres de police, il vous suffirait alors de spécifier:

def copy_style():

    import os
    import matplotlib

    # style definition(s)

    styles = {}

    styles['mystyle.mplstyle'] = '''
font.family          : serif
'''

    # write style definitions

    # directory name where the styles are stored
    dirname = os.path.abspath(os.path.join(matplotlib.get_configdir(), 'stylelib'))

    # make directory if it does not yet exist
    if not os.path.isdir(dirname): os.makedirs(dirname)

    # write all styles
    for fname, style in styles.items():
        open(os.path.join(dirname, fname),'w').write(style)

Cette solution est élégante, car elle permet une application cohérente dans toutes vos parcelles et vous permet de mélanger et assortir.

Où enregistrer votre style personnalisé?

Tiré de l'un de mes propres styles mystyle.mplstyle code> pourrait avoir les entrées suivantes (vous devez évidemment personnaliser selon vos besoins):

find / -iname '*.mplstyle' 2>/dev/null

Lequel vous devez l'enregistrer dans le répertoire de configuration de matplotlib. Pour moi, c'est ~ / .matplotlib / stylelib / , mais utilisez

/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/stylelib/ggplot.mplstyle

pour savoir quoi utiliser sur votre système d'exploitation. Consultez la documentation . Vous pouvez également écrire une fonction Python à installer au bon endroit.

Où trouver les styles existants?

Puis la dernière partie de votre question. Tout d'abord, il est utile de savoir que vous pouvez obtenir une liste des styles disponibles en utilisant

find / -iname 'ggplot.mplstyle' 2>/dev/null

Voir le documentation pour une représentation graphique.

Comment inspecter par exemple ggplot.mplstyle ? Je pense que la meilleure référence dans source de matplotlib a >. Vous pouvez également trouver les fichiers * .mplstyle sur votre système. Cependant, l'endroit dépend de votre système d'exploitation et de votre installation. Pour moi

import matplotlib.pyplot as plt
plt.style.available

donne

import matplotlib
matplotlib.get_configdir()

Ou plus généralement vous pouvez rechercher tous les styles:

font.family  : serif
font.serif   : CMU Serif
font.weight  : bold
font.size    : 18
text.usetex  : true

Pour Windows, je ne suis pas vraiment un expert, mais peut-être que les chemins de fichiers énumérés ci-dessus vous donnent une idée de l'endroit où chercher.

Script Python pour installer le style au bon endroit

Pour installer vos styles personnalisés au bon endroit, vous pouvez créer un script qui ressemble à quelque chose comme:

plt.style.use(['ggplot', 'mystyle'])

1 commentaires

Je vous remercie! C'est vraiment utile et systématique!