Как получить список всех маркеров в matplotlib? - PullRequest
2 голосов
/ 08 января 2020

Диаграммы, которые я генерирую, имеют много линий, и я хочу автоматически использовать цвета и маркеры, чтобы различать guish их.

Я пробовал это:

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) 

Который циркулирует marker более (0,11). Этот вид работает, потому что по какой-то причине marker < 12. Когда я использую marker = i % 20, я получаю сообщение об ошибке makerstyle 12 is unknown.

Это пример диаграммы, которую я генерирую, она не красивая, она используется только для проверки результатов теста:

enter image description here

Диаграммы являются результатом испытаний с изменяющимися параметрами, поэтому необходимо выполнить итерацию по всем доступным цветам, стилям линий и маркерам, чтобы убедиться, что при наличии на диаграмме 100 линий я могу различать guish те которые принадлежат взорванным решениям (значения как 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?

1 Ответ

4 голосов
/ 08 января 2020

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'}
...