построение множества графиков с помощью matplotlib - PullRequest
4 голосов
/ 04 декабря 2011

Всякий раз, когда я хочу построить несколько 2-мерных графов с помощью matplotlib, я определяю два списка:

coloTypesList=["b","g","r","c","m","y","k"]; drawTypesList=["-","--","x"];

и выбираю пару из них на каждой итерации (для каждого графика).Этот метод помогает мне, только когда у меня меньше 22 графиков.Любая идея сделать это более общим с окраской и типом рисунка?

1 Ответ

8 голосов
/ 04 декабря 2011

Из списков, которые вы предоставляете, у вас есть 21 комбинация:

>>> from itertools import product
>>> markers = ["-", "--", "x"]
>>> colors = ["b", "g", "r", "c", "m", "y", "k"]
>>> [a + b for a, b in product(colors, markers)]
['b-', 'b--', 'bx', 'g-', 'g--', 'gx', 'r-', 'r--', 'rx', 'c-', 'c--', 'cx', 'm-', 'm--', 'mx', 'y-', 'y--', 'yx', 'k-', 'k--', 'kx']

Однако есть гораздо больше вариантов, чем те, которые вы используете в настоящее время:

Стиль линии или маркер:

================    ===============================
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
================    ===============================

Сокращения цветов:

==========  ========
character   color
==========  ========
'b'         blue
'g'         green
'r'         red
'c'         cyan
'm'         magenta
'y'         yellow
'k'         black
'w'         white
==========  ========

Обратите внимание, что вы можете указать цвета как RGB или RGBAкортежи ((0, 1, 0, 1)), чтобы вы могли создать полную палитру.Просто добавляя светлые / темные версии ваших текущих цветов, вы умножаете свои возможности.

Я не уверен, что вам нужно так много комбинаций маркеров и цветов на одном только графике.Учитывая, что вы используете только стандартные цвета, у вас есть максимум 26 * 8 = 208 комбинаций (ну, белый не должен учитываться ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...