您可以使用颜色列表:
vp1 = violinplot(y1, x1, points=20, widths=0.9, showmeans=True, showextrema=False, showmedians=False)
colors = ["red", "orange", "yellow", "green", "blue", "indigo", "violat"]
len_colors = len(colors)
i = 0
for pc in vp1['bodies']:
pc.set_facecolor(colors[i])
pc.set_edgecolor('black')
i += 1
if i == len_colors:
i = 0
vp1['cmeans'].set_color('black')
解释:
i = 0 将colors 的索引设置为0,并在每次使用一种颜色后,将变量增加1,这样下一个颜色将是列表中的下一个颜色。
如果i 增加到等于colors 长度的点,则将其值设置回0。
如果您希望每种颜色完全随机且不同,可以使用内置random 模块中的random() 方法:
from random import random
# Your code
vp1 = violinplot(y1, x1, points=20, widths=0.9, showmeans=True, showextrema=False, showmedians=False)
for pc in vp1['bodies']:
pc.set_facecolor((random(), random(), random()))
pc.set_edgecolor('black')
vp1['cmeans'].set_color('black')