2015-05-07 11 views
8

Sto impostando un foglio di stile personalizzato in mpl. Ho trovato e modificato alcune impostazioni di esempio online:matplotlib: imposta il colore del titolo nel foglio di stile

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

Voglio anche cambiare il colore del carattere del titolo. Da queste impostazioni, axes.titlecolor sembrava una buona ipotesi, ma non funziona. Qualche idea su come fare questo?

+0

@TheChymera Entrambe le risposte di seguito sono corrette. Cos'altro vorresti sapere? – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest Nessuna risposta risponde alla domanda ("imposta il titolo in un foglio di stile"). Quello che mi piacerebbe sapere è come il colore del titolo può essere impostato in modo specifico tramite il foglio di stile. – TheChymera

+0

@TheChymera Da entrambe le risposte è possibile vedere che l'impostazione del colore del titolo solo tramite il foglio di stile non è possibile. Non vedo come una nuova risposta, dicendo ancora un'altra volta che è impossibile, potrebbe aiutare qui. – ImportanceOfBeingErnest

risposta

2

Non ho completamente familiarità con il modo in cui i fogli di stile Mpl vengono effettivamente implementati, ma suppongo che siano solo file MPL rc pre-modificati.

Se si tratta in effetti di file mpl rc, in base alla lettura del mio file rc corrente, non vi è alcun attributo negli "Assi" per il colore del titolo.

mio lavoro in giro per l'aggiunta di funzionalità stilistica che può o non può essere implementata nei file rc è do fare qualcosa di simile:

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 

La sua non è la migliore soluzione dal momento che aggiunge un sacco di confusione o il codice ma è l'unica cosa che ho trovato a funzionare quando non riesco a capire dove l'impostazione predefinita è effettivamente memorizzata nei file mpl o nei fogli di stile.

analizzando il file MPL rc se si esegue qualcosa come 'grep titolo matplotlibrc' sputa fuori gli unici casi che trova il titolo di parola nel file:

# etichette testo speciale formati da zecca, asce, etichette, titolo , ecc, vedere la rc

# axes.titlesize: grande # fontsize del titolo assi

quindi non ci sembra essere una regolazione colore di default per il titolo - o meglio se tis c'è la sua chiamata qualcosa altro che non è direttamente evidente

'grep color matplotlibrc' restituisce tutte le istanze del colore della parola nel file rc

Anche in questo caso non sembra esserci nulla direttamente correlato ai colori del titolo o al colore del testo predefinito.

Guardando un po 'più vicino all'API di Mpl, axes.set_title() prende kwargs come color =, che sono semplicemente etichettati come proprietà di testo valide.

http://matplotlib.org/1.4.3/api/text_api.html#matplotlib.text.Text elenca proprietà di testo valide. Per il colore tutto ciò che dice è 'qualsiasi colore matplotlib'

Immagino da qualche parte nel codice sorgente di mpl c'è una linea che gestisce cosa fare quando non viene specificato alcun colore kwarg per un dato oggetto di testo. Da qualche parte c'è un colore predefinito che penso sia probabilmente solo "k". In questo momento non mi è chiaro, tuttavia, come modificare quell'impostazione.

Siamo spiacenti per il lungo discorso, spero che questo aiuti alcuni.

2

In futuro è possibile rispondere, ma in ogni caso) Se si desidera modificare il colore del titolo predefinito, è possibile impostare la proprietà text.color nel file matplotrc (l'impostazione predefinita è nero). Ovviamente cambierà i colori di tutte le uscite di testo.

-1

questo può funzionare (Refrenced From Here)

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  
Problemi correlati