Matplotlib: Ändern der Farbe einer Achse

75

Gibt es eine Möglichkeit, die Farbe einer Achse (nicht der Zecken) in matplotlib zu ändern? Ich habe in den Dokumenten nach Axes, Axis und Artist gesucht, aber kein Glück. Die Matplotlib-Galerie hat auch keinen Hinweis. Irgendeine Idee?

Knipknap
quelle

Antworten:

150

Wenn Sie Figuren verwenden, können Sie die Rückenfarbe leicht ändern mit:

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

Verwenden Sie Folgendes, um nur die Häkchen zu ändern:

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

Und folgendes, um nur das Label zu ändern:

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

Und zum Schluss der Titel:

ax.title.set_color('red')
SaiyanGirl
quelle
6
Hervorragende Antwort, danke! Nur ein Hinweis für alle anderen: ax.tick_params(axis='x', colors='red', which='both')- which = "both" ändert sowohl die Haupt- als auch die Neben-Tick-Farbe.
Kinverarity
1
ax.tick_params(axis='x', colors='red')scheint die Farbe sowohl der Zecke als auch des Etiketts zu ändern ...
Jonathan
Ist es möglich, so zu verwenden ax.yaxis.label.set_color('grey'), dass nur die Zecken von y1, y2um ihre Farbe zu ändern, und die anderen unverändert bleiben?
FaCoffee
Haben Sie eine Idee, wie Sie die Farbe der zu streuenden Punkte ändern können?
Harit Vishwakarma
@FaCoffee Sie können die Farben der Tick-Beschriftung unabhängig von der Tick-Farbe festlegen, indem Sie die aufrufen set_ticklabels()und übergeben kwarg color. Wie so:ax.xaxis.set_ticklabels([0.0,0.2,0.4,0.6,0.8,1.0], color = 'k')
Marisano
20

Für die Aufzeichnung habe ich es so geschafft, dass es funktioniert:

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')
Knipknap
quelle
danke dafür, hoffentlich wird matplotlib einen einfacheren Weg hinzufügen, dies zu erreichen.
jhanifen
16

Sie können dies tun, indem Sie die Standard-RC-Einstellungen anpassen.

import matplotlib
from matplotlib import pyplot as plt

matplotlib.rc('axes',edgecolor='r')
plt.plot([0, 1], [0, 1])
plt.savefig('test.png')
Kennzeichen
quelle
2
Matplotlib hat auch einen Kontext-Manager, der temporäre Änderungen an den RC-
Joelostblom