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?
risposta
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
La sintassi per i marcatori sembra essere leggermente diverso: 'dai marcatori di importazione matplotlib; markers.MarkerStyle.markers.keys() ' –
Nella versione 2.1.2,' lines.lineMarkers.keys() 'produce lo stesso risultato di' markers.MarkerStyle.markers.keys() '. –
La documentazione per plot
http://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
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()
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())
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