У меня есть несколько строк (всего более 50), которые должны появиться на нескольких графиках, и я хотел бы сохранить их, используя многочисленные маркеры. Увы, количество маркеров в matplotlib
ограничено тем, что число затмевается количеством строк. Потратив час на поиски ответа, я определил itertools.cycle
как потенциальное решение, поскольку оно позволяет мне циклически проходить серию. Скажем, например, я хочу перебрать пять маркеров:
import itertools
markers = itertools.cycle(('o', 'D', '*', 'X', '+'))
Однако вскоре я осознал необходимость ограничения цикла определенным числом (т. Е. Числом строк) и сохранения их в списке, потому что линии появятся на нескольких графиках, и я хотел бы, чтобы маркеры были согласованными. Я столкнулся с другим вопросом ( Существует ли элегантный способ циклически проходить по списку N раз с помощью итераций (например, itertools.cycle, но ограничивать циклы)? ), который, по-видимому, решает ограниченную часть моей проблемы с помощью:
import itertools
n = 50 # number of lines
itertools.chain.from_iterable(itertools.repeat(['o', 'D', '*', 'X', '+'], n))
Итак, теперь мне нужно только выяснить, где хранится моя проблема.
- Как мне ограничить количество итераций (кажется, что они решены), а также сохранить их как элементы в списке?
Если itertools
не самый удобный способ, я был бы признателен, если бы кто-то мог указать мне более удобное направление.