web-dev-qa-db-fra.com

Matplotlib: Changer la couleur d'un axe

Existe-t-il un moyen de changer la couleur d'un axe (pas les tiques) dans matplotlib? J'ai cherché dans les documents Axes, Axis et Artist, mais pas de chance; la galerie matplotlib n'a également aucun indice. Une idée?

56
knipknap

Lorsque vous utilisez des figures, vous pouvez facilement changer la couleur de la colonne vertébrale avec:

ax.spines['bottom'].set_color('#dddddd')
ax.spines['top'].set_color('#dddddd') 
ax.spines['right'].set_color('red')
ax.spines['left'].set_color('red')

Utilisez ce qui suit pour modifier uniquement les graduations:

ax.tick_params(axis='x', colors='red')
ax.tick_params(axis='y', colors='red')

Et ce qui suit pour ne changer que l'étiquette:

ax.yaxis.label.set_color('red')
ax.xaxis.label.set_color('red')

Et enfin le titre:

ax.title.set_color('red')
100
SaiyanGirl

Pour mémoire, voici comment j'ai réussi à le faire fonctionner:

fig = pylab.figure()
ax  = fig.add_subplot(1, 1, 1)
for child in ax.get_children():
    if isinstance(child, matplotlib.spines.Spine):
        child.set_color('#dddddd')
19
knipknap

Vous pouvez le faire en ajustant les paramètres rc par défaut.

import matplotlib
from matplotlib import pyplot as plt

matplotlib.rc('axes',edgecolor='r')
plt.plot([0, 1], [0, 1])
plt.savefig('test.png')
13
Mark