我该如何让Matplotlib自动更改线条标记?

8
我正在使用matplotlib(Python)绘制单个图中的多条线。默认情况下,Python为每条线分配不同的颜色,但我希望它分配不同的线型,并只使用黑色。我知道我可以制作一个不同线型的列表并使用它们,但这需要在想要绘制多条线的每个脚本中获取所有线型并将它们添加到其中。我认为必须有一种自动的方法。

这确实是那两个问题的重复。我在搜索时错过了它们。 - pocketfullofcheese
1个回答

7

我认为自动选择想要的标记并不可能,但通过一些努力是完全可行的。在我的绘图中,我会先完成所有需要的绘图,然后再更改标记。然而,根据我的经验,找到正确的标记循环取决于您想展示的图形和图形出现的上下文。我非常鼓励您手动选择标记,并找出哪种在您的图形上看起来最好。以下是我处理方式的简短概述(但是您在问题中已经提到了类似的内容):

import matplotlib.pyplot as plt

f = plt.figure(1); f.clf()
ax = f.add_subplot(111)
ax.plot([1,2,3,4,5])
ax.plot([5,4,3,2,1])
ax.plot([2,3,2,3,2])

import itertools
for l, ms in zip(ax.lines, itertools.cycle('>^+*')):
    l.set_marker(ms)
    l.set_color('black')

plt.show()

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