在Python中绘图时如何随机化图例中的标记颜色?

时间:2015-07-13 17:38:24

标签: python matplotlib

这是我启用的代码

from itertools import*
markers = itertools.cycle([ '+', '*', ',', 'o', '.', '1', 'p', ])

blah blah....

blah blah....

plot(ld,lp, linestyle="", label=liquidname,marker = markers.next())

然而问题是标记点开始重复,因为我在图例中有很多值。 http://i.imgur.com/GakvIHw.png

因此,如何将图例中的标记颜色随机化以避免混淆?

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

对于彩色标记,您可以在调用plot()函数时传递颜色。

至于随机颜色,我们谈论的数字有多大?你可以定义一个颜色数组并随机选择一个:

import matplotlib.pyplot as plt
from random import randint

markers = [ '+', '*', ',', 'o', '.', '1', 'p']
colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']

for x in range(20):
    c = randint(0,6)
    plt.plot(x, 1, color=colors[c], marker=markers[x%7])

plt.show()

markers

这里的优点是你有明显可辨的颜色。

如果你有超过几十个标记,可以通过随机RGB组件选择随机数字颜色。

另请参阅Markers参考。

答案 1 :(得分:1)

color执行相同操作marker,尽管使用不同数量的颜色以便存在偏移:

from itertools import *

markers = itertools.cycle([ '+', '*', ',', 'o', '.', '1', 'p', ])
# Use any combination of colors you like.
# Below is blue, green, red, black, yellow, magenta
colors = itertools.cycle('bgrkym')

blah blah....

plot(ld, lp, linestyle="", label=liquidname, 
     marker=markers.next(), color=colors.next())

有关特定颜色的详细信息,请参阅documentation