2015-05-07 16 views
8

Ich setze ein eigenes Stylesheet in MPL. Ich habe einige Beispieleinstellungen online gefunden und geändert:matplotlib: Titelfarbe im Stylesheet setzen

axes.titlesize : 18 
axes.labelsize : large 
axes.labelcolor : ffffff 

Ich möchte auch die Schriftfarbe des Titels ändern. Von diesen Einstellungen schien axes.titlecolor wie eine gute Vermutung, aber es funktioniert nicht. Irgendwelche Ideen, wie man das macht?

+0

@TheChymera Beide unten Antworten richtig sind. Was möchtest du sonst noch wissen? – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest Keine Antwort beantwortet die Frage ("Titel im Stylesheet setzen"). Was ich gerne wissen möchte ist, wie die Titelfarbe über das Stylesheet gezielt eingestellt werden kann. – TheChymera

+0

@TheChymera Von beiden Antworten können Sie sehen, dass das Festlegen der Titelfarbe allein über das Stylesheet nicht möglich ist. Ich sehe nicht ganz, wie eine neue Antwort, sagen wir mal wieder, dass es unmöglich ist, hier zu helfen. – ImportanceOfBeingErnest

Antwort

2

Ich bin nicht vollständig vertraut mit, wie die Mpl Stylesheets tatsächlich implementiert sind, aber meine Vermutung ist, dass sie nur vorbereitete mpl rc-Dateien sind.

Wenn sie tatsächlich mpl rc Dateien sind, dann basiert auf dem Lesen meiner aktuellen rc-Datei, gibt es kein Attribut in den "Achsen" für die Farbe des Titels.

Meine Arbeit um für stilistische Funktionalität hinzufügen, die wie etwas tun, zu tun in den rc-Dateien nicht implementiert werden kann oder ist:

using_custom_style = true 
plt.use('my_style') 
... 
if using_custom_style: 
    ax.set_title('my title', color=my_color_of_choice) 
else: 
    ax.set_title('my_title') # this doesn't specify a color so it will just use whatever default vaule mpl knows to use 

Es ist nicht die beste Abhilfe, da es eine Menge Unordnung o der Code fügt Aber es ist das Einzige, was ich gefunden habe, wenn ich nicht herausfinden kann, wo die Standardeinstellung in den MPL-Param-Dateien oder Stylesheets gespeichert ist.

die mpl rc-Datei zu analysieren, wenn Sie so etwas wie ‚grep Titel matplotlibrc‘ laufen sie die einzigen Fälle, spuckt es das Wort Titel in der Datei findet:

# spezielle Textgrößen tick Etiketten, Achsen, Labels, Titel sehen, etc, die rc

# axes.titlesize: große # Schriftgröße der Achsen Titel

so scheint es kein Standard-Farbeinstellung für den Titel zu sein - oder besser gesagt, wenn tis dort seinen Namen etwas sonst ist das nicht direkt offensichtlich

'grep color matplotlibrec' gibt alle Instanzen der Wortfarbe in der rc-Datei aus

Wieder scheint es nichts zu geben, das direkt mit den Titelfarben oder sogar der Standardtextfarbe zusammenhängt.

Wenn Sie sich die Mpl-API etwas genauer ansehen, verwendet axes.set_title() Kwarts wie color =, die nur als gültige Text-Eigenschaften gekennzeichnet sind.

http://matplotlib.org/1.4.3/api/text_api.html#matplotlib.text.Text listet gültige Texteigenschaften auf. Für Farbe alles sagt es ist "jede Matplotlib Farbe"

Ich könnte mir vorstellen, irgendwo im Mpl-Quellcode gibt es eine Zeile, die behandelt, was zu tun ist, wenn keine Farbe Kwarg für ein bestimmtes Textobjekt angegeben ist. Irgendwo gibt es eine Standardfarbe, die ich denke, ist wahrscheinlich nur 'k'. Es ist mir jedoch zur Zeit nicht klar, wie ich diese Einstellung ändern soll.

Entschuldigung für den langen Diskurs, hoffe, dass dies einigen hilft.

2

Kann etwas später antworten aber trotzdem) Wenn Sie die Standardtitelfarbe ändern möchten, können Sie die Eigenschaft text.color in der Datei matplotrc festlegen (Standard ist schwarz). Natürlich wird es die Farben aller Ihrer Textausgaben ändern.

-1

Dieses (Refrenced From Here) arbeiten

title_obj = plt.title('my random fig') 
plt.getp(title_obj)      
plt.getp(title_obj, 'text')    
plt.setp(title_obj, color='r') #Sets it to the color red