2016-04-18 11 views
17

I trama una linea senza specificare il colore (si pensi: plt.plot (x, y)). Dire che il colore esce blu.Come ottenere il colore della linea stampata più recente in Python's plt

Domanda: Come ottengo questo colore dall'oggetto plt in modo che possa inserirlo in una variabile?

Sembra che questo è vicino (e potenzialmente la soluzione):

p = plt.plot(x,y) 
color = p[0].get_color() 

domanda Aggiornato: io non sono sicuro di aver capito la "0" indice: Vuol p [0] L'accesso sempre più recente linea tracciata?

+1

Eventuali duplicati di [Come posso ottenere il colore della all'ultima cifra matplotlib?] (Http://stackoverflow.com/questions/13395888/how-can-i-get- the-color-of-the-last-figure-in-matplotlib) –

+0

@ivan_pozdeev Ho aggiornato la mia domanda, grazie per aver segnalato il link – denvar

risposta

21

Nell'esempio, p è un elenco di oggetti Line2D. In questo esempio hai solo un oggetto linea, p [0]. Quello che segue è un esempio che traccia tre linee. Man mano che viene aggiunta più riga, viene aggiunta al p.So se si desidera il colore dell'ultimo grafico, sarà a[-1].get_color().

import numpy as np 
import matplotlib.pyplot as plt 

x = np.arange(10) 
y = np.arange(10) 
p = plt.plot(x,y, x,y*2, x,y*3) # make three line plots 
type(p) # list 
type(p[0]) # <class 'matplotlib.lines.Line2D'> 
p[0].get_color() # 'b' 
p[1].get_color() # 'g' 
p[2].get_color() # 'r' 

line plot