用Matplotlib绘制多个图表

4
每当我想使用matplotlib绘制多个二维线性图时,我会定义两个列表:
coloTypesList=["b","g","r","c","m","y","k"]; drawTypesList=["-","--","x"];
然后在每次迭代时(每个图表),从中选择一对。但是仅当我需要绘制少于22个图表时才适用此方法。你有没有什么想法可以使其更通用,包括颜色和线型?

你需要将它们绘制在同一坐标轴上吗?在单个坐标轴上有超过22个数据集不会变得非常嘈杂吗? - Brian Cain
没错,这会变得很吵闹,但有时候我们可能需要同时绘制50-100个分布图来看到整体情况。 - pacodelumberg
1个回答

8

从您给出的列表中,您有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种组合(嗯,白色不应计算在内...)。

谢谢你的回答,我认为208种组合对于许多应用来说已经足够了,而且能够绘制RGB提供了更多的组合。 - pacodelumberg
只要它们在视觉上是可区分的,你就可以使用它们。您可能希望最大化数据集计数的颜色之间的距离。 - Brian Cain
@Brian Cain 当我说“你最多只能”时,那就是我的意思。 - joaquin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接