web-dev-qa-db-fra.com

Changer la couleur de l'axe, des graduations et des étiquettes pour un tracé dans matplotlib

J'aimerais changer la couleur de l'axe, ainsi que les graduations et les étiquettes de valeur pour un tracé que j'ai créé à l'aide de matplotlib et de PyQt.

Des idées?

73
Richard Durr

Comme exemple rapide (en utilisant une méthode légèrement plus propre que la question potentiellement en double):

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot(range(10))
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')

ax.spines['bottom'].set_color('red')
ax.spines['top'].set_color('red')
ax.xaxis.label.set_color('red')
ax.tick_params(axis='x', colors='red')

plt.show()

alt text

121
Joe Kington

Si vous souhaitez modifier plusieurs figures ou sous-parcelles, il peut être utile d'utiliser le gestionnaire de contexte matplotlib pour modifier la couleur plutôt que de les modifier individuellement. Le gestionnaire de contexte vous permet de modifier temporairement les paramètres rc uniquement pour le code en retrait immédiatement suivant, mais n'affecte pas les paramètres rc globaux.

Cet extrait donne deux chiffres, le premier avec les couleurs modifiées pour l'axe, les graduations et les graduations, et le second avec les paramètres par défaut de rc.

import matplotlib.pyplot as plt
with plt.rc_context({'axes.edgecolor':'orange', 'xtick.color':'red', 'ytick.color':'green', 'figure.facecolor':'white'}):
    # Temporary rc parameters in effect
    fig, (ax1, ax2) = plt.subplots(1,2)
    ax1.plot(range(10))
    ax2.plot(range(10))
# Back to default rc parameters
fig, ax = plt.subplots()
ax.plot(range(10))

enter image description here

enter image description here

Vous pouvez taper plt.rcParams pour afficher tous les paramètres rc disponibles et utiliser la liste de compréhension pour rechercher des mots-clés:

# Search for all parameters containing the Word 'color'
[(param, value) for param, value in plt.rcParams.items() if 'color' in param]
25
joelostblom