当用Python绘制时,如何将图例中的标记颜色随机化?

2024-10-03 23:28:24 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我启用的代码

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

因此,我如何在图例中随机选择标记颜色以避免混淆?在

谢谢你的帮助,谢谢。在


Tags: 代码from标记importplotlabelblahitertools
2条回答

只需对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。在

至于彩色标记,可以在调用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引用。在

相关问题 更多 >