2009-12-30 22 views
33

Gibt es eine Möglichkeit, die Farbe einer Achse (nicht die Ticks) in Matplotlib zu ändern? Ich habe die Dokumente für Axes, Axis und Artist durchgesehen, aber kein Glück; Die matplotlib-Galerie hat auch keinen Hinweis. Irgendeine Idee?Matplotlib: Ändern der Farbe einer Achse

Antwort

61

Wenn Zahlen verwenden, können Sie leicht die Wirbelsäule Farbe mit ändern:

nur die Zecken ändern folgende
ax.spines['bottom'].set_color('#dddddd') 
ax.spines['top'].set_color('#dddddd') 
ax.spines['right'].set_color('red') 
ax.spines['left'].set_color('red') 

Verwendung:

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

und die folgenden nur die Änderungen Etikett:

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

Und schließlich der Titel:

ax.title.set_color('red') 
+3

Ausgezeichnete Antwort, danke! Nur eine Anmerkung für alle anderen: '' ax.tick_params (axis = 'x', colors = 'red', was = 'both') '' - which = "both" ändert sowohl die Haupt- als auch die Unterfarbe. – kinverarity

+0

'ax.tick_params (axis = 'x', colors = 'red')' scheint die Farbe des Ticks und des Labels zu ändern ... – Jonathan

+0

Ist es möglich, 'ax.yaxis.label.set_color (' Grau ') 'so, dass nur die Ticks von' y1' nach 'y2' ihre Farbe ändern und die anderen unverändert bleiben? – FaCoffee

16

Für das Protokoll, das ist, wie ich es Arbeit bilden geschaffen:

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') 
+0

+1, viel besser als mit dem globalen rc. – Mark

+0

danke, hoffentlich wird Matplotlib einen einfacheren Weg hinzufügen, dies zu erreichen. – jhanifen

7

Sie können es tun, indem Sie die Standard rc Einstellungen.

import matplotlib 
from matplotlib import pyplot as plt 

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

Matplotlib hat auch einen [context manager] (http://matplotlib.org/users/style_sheets.html#temporary-styling), der temporäre Änderungen an den rc-Parametern http://stackoverflow.com/a/41527038/2166823 erlaubt –