2012-11-13 14 views
50

Sto scrivendo una sceneggiatura che farà alcuni complimenti. Voglio che rappresenti diverse serie di dati, ognuna con il suo stile di linea unico (non il colore). Posso facilmente eseguire iterazioni attraverso una lista, ma esiste già una lista già disponibile in python?Esiste un elenco di stili di linea in matplotlib?

+0

io so che non è davvero quello che si cerca, ma io ho una lista di loro nella mia risposta [qui] (http://stackoverflow.com/a/8409110/674039) – wim

risposta

75

Secondo the doc li si potrebbe trovare in questo modo:

from matplotlib import lines 
lines.lineStyles.keys() 
>>> ['', ' ', 'None', '--', '-.', '-', ':'] 

si può fare lo stesso con markers

+4

La sintassi per i marcatori sembra essere leggermente diverso: 'dai marcatori di importazione matplotlib; markers.MarkerStyle.markers.keys() ' –

+0

Nella versione 2.1.2,' lines.lineMarkers.keys() 'produce lo stesso risultato di' markers.MarkerStyle.markers.keys() '. –

17

La documentazione per plothttp://matplotlib.org/1.5.3/api/pyplot_api.html#matplotlib.pyplot.plot ha una lista di stili di linea + marcatori:

character description 
'-'  solid line style 
'--'  dashed line style 
'-.'  dash-dot line style 
':'  dotted line style 
'.'  point marker 
','  pixel marker 
'o'  circle marker 
'v'  triangle_down marker 
'^'  triangle_up marker 
'<'  triangle_left marker 
'>'  triangle_right marker 
'1'  tri_down marker 
'2'  tri_up marker 
'3'  tri_left marker 
'4'  tri_right marker 
's'  square marker 
'p'  pentagon marker 
'*'  star marker 
'h'  hexagon1 marker 
'H'  hexagon2 marker 
'+'  plus marker 
'x'  x marker 
'D'  diamond marker 
'd'  thin_diamond marker 
'|'  vline marker 
'_'  hline marker 
5

Dalla mia esperienza è bello avere i colori e i marcatori in una lista in modo da poterli scorrere durante la stampa.

Ecco come ottengo l'elenco di tali cose. Ci sono voluti degli scavi.

import matplotlib 
colors_array = matplotlib.colors.cnames.keys() 
markers_array = matplotlib.markers.MarkerStyle.markers.keys() 
0

Nel python3 il metodo restituisce un oggetto .keys()dict_keys e non un list. È necessario passare i risultati a list() per poter indicizzare l'array come si potrebbe in python2. per esempio. this SO question

Quindi, per creare matrici iterabili per linee, colori e indicatori è possibile utilizzare qualcosa di simile.

import matplotlib 
colors_array = list(matplotlib.colors.cnames.keys()) 
lines_array = list(matplotlib.lines.lineStyles.keys()) 
markers_array = list(matplotlib.markers.MarkerStyle.markers.keys()) 
Problemi correlati