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?

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

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

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

2
Matplotlib hat auch einen Kontext-Manager, der temporäre Änderungen an den RC-
Joelostblom
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.