2012-11-13 63 views
50

我正在寫一個腳本來做一些繪圖。我想要它繪製幾個數據系列,每個系列都有其獨特的線條樣式(不是顏色)。我可以很容易地遍歷列表,但是有沒有這樣一個列表已經在python中可用?matplotlib中有線樣式列表嗎?

+0

我知道這是不是真的,你怎麼尋找,但我有我的回答他們的名單[這裏](http://stackoverflow.com/a/8409110/674039) – wim

回答

75

根據the doc你可以通過這樣找到他們:

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

你可以做同樣的markers

+4

對於標記語法似乎略有不同:'從matplotlib導入標記; markers.MarkerStyle.markers.keys()' –

+0

在版本2.1.2中,'lines.lineMarkers.keys()'產生與'markers.MarkerStyle.markers.keys()'相同的結果。 –

17

的文檔plothttp://matplotlib.org/1.5.3/api/pyplot_api.html#matplotlib.pyplot.plot有行+標記樣式列表:

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

從我的經驗在列表中有顏色和標記是很好的,所以我可以在繪圖時迭代它們。

下面是我如何獲得這些東西的列表。它採取了一些挖掘。

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

在python3的.keys()方法返回dict_keys對象,而不是一個list。 您需要將結果傳遞給list(),以便能夠像在python2中那樣對數組進行索引。例如this SO question

因此,要創建用於線條,顏色和標記的可迭代數組,您可以使用類似的東西。

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