如何获取 matplotlib 中所有标记的列表?
How to obtain a list of all markers in matplotlib?
我生成的图表有很多线条,我想自动使用颜色和标记来区分它们。
我试过这个:
for i,studyDframeTuple in enumerate(studyDframeTuples):
time = studyDframeTuple[1]['time']
error = studyDframeTuple[1]['Linf velocity error']
caseName = studyDirs[studyDframeTuple[0]]
ax.plot(time, error, marker = i % 12, label=caseName)
在 (0,11) 上循环 marker
。这种作品,因为某些原因marker < 12
。当我使用 marker = i % 20
时,出现 makerstyle 12 is unknown
错误。
这是我正在生成的图表示例,它并不漂亮,仅用于检查测试结果:
这些图表是通过不同参数的测试得出的,因此需要遍历所有可用的颜色、线条样式和标记,以确保当我在图表上有 100 条线时,我可以区分那些属于到分解的解决方案(此图上的值如 1e15)。
如何将 matplotib 中的所有标记放入列表中并对其进行迭代?
编辑:
我像这样破解了自己的列表
mStyles = [".",",","o","v","^","<",">","1","2","3","4","8","s","p","P","*","h","H","+","x","X","D","d","|","_",0,1,2,3,4,5,6,7,8,9,10,11
]
但是什么时候发生变化呢?我可以从 matplotlib 以编程方式获取此列表吗?
12 不作为标记值存在。您可以使用此命令获得所有现有标记的字典:
from matplotlib.lines import Line2D
print(Line2D.markers)
输出:
{'.': 'point',
',': 'pixel',
'o': 'circle',
'v': 'triangle_down',
'^': 'triangle_up',
'<': 'triangle_left',
'>': 'triangle_right',
'1': 'tri_down',
'2': 'tri_up',
'3': 'tri_left',
'4': 'tri_right',
'8': 'octagon',
's': 'square',
'p': 'pentagon',
'*': 'star',
'h': 'hexagon1',
'H': 'hexagon2',
'+': 'plus',
'x': 'x',
'D': 'diamond',
'd': 'thin_diamond',
'|': 'vline',
'_':'hline',
'P': 'plus_filled',
'X': 'x_filled',
0: 'tickleft',
1: 'tickright',
2: 'tickup',
3:'tickdown',
4: 'caretleft',
5: 'caretright',
6: 'caretup',
7: 'caretdown',
8: 'caretleftbase',
9: 'caretrightbase',
10: 'caretupbase',
11: 'caretdownbase',
'None': 'nothing',
None: 'nothing',
' ': 'nothing',
'': 'nothing'}
我生成的图表有很多线条,我想自动使用颜色和标记来区分它们。
我试过这个:
for i,studyDframeTuple in enumerate(studyDframeTuples):
time = studyDframeTuple[1]['time']
error = studyDframeTuple[1]['Linf velocity error']
caseName = studyDirs[studyDframeTuple[0]]
ax.plot(time, error, marker = i % 12, label=caseName)
在 (0,11) 上循环 marker
。这种作品,因为某些原因marker < 12
。当我使用 marker = i % 20
时,出现 makerstyle 12 is unknown
错误。
这是我正在生成的图表示例,它并不漂亮,仅用于检查测试结果:
这些图表是通过不同参数的测试得出的,因此需要遍历所有可用的颜色、线条样式和标记,以确保当我在图表上有 100 条线时,我可以区分那些属于到分解的解决方案(此图上的值如 1e15)。
如何将 matplotib 中的所有标记放入列表中并对其进行迭代?
编辑:
我像这样破解了自己的列表
mStyles = [".",",","o","v","^","<",">","1","2","3","4","8","s","p","P","*","h","H","+","x","X","D","d","|","_",0,1,2,3,4,5,6,7,8,9,10,11
]
但是什么时候发生变化呢?我可以从 matplotlib 以编程方式获取此列表吗?
12 不作为标记值存在。您可以使用此命令获得所有现有标记的字典:
from matplotlib.lines import Line2D
print(Line2D.markers)
输出:
{'.': 'point',
',': 'pixel',
'o': 'circle',
'v': 'triangle_down',
'^': 'triangle_up',
'<': 'triangle_left',
'>': 'triangle_right',
'1': 'tri_down',
'2': 'tri_up',
'3': 'tri_left',
'4': 'tri_right',
'8': 'octagon',
's': 'square',
'p': 'pentagon',
'*': 'star',
'h': 'hexagon1',
'H': 'hexagon2',
'+': 'plus',
'x': 'x',
'D': 'diamond',
'd': 'thin_diamond',
'|': 'vline',
'_':'hline',
'P': 'plus_filled',
'X': 'x_filled',
0: 'tickleft',
1: 'tickright',
2: 'tickup',
3:'tickdown',
4: 'caretleft',
5: 'caretright',
6: 'caretup',
7: 'caretdown',
8: 'caretleftbase',
9: 'caretrightbase',
10: 'caretupbase',
11: 'caretdownbase',
'None': 'nothing',
None: 'nothing',
' ': 'nothing',
'': 'nothing'}