<p>您可以使用颜色列表:</p>
<pre><code>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')
</code></pre>
<p>说明:</p>
<p><code>i = 0</code>将<code>colors</code>的索引设置为<code>0</code>,并且在每次使用颜色后,将变量增加<code>1</code>,以便下一种颜色将是列表中的下一种颜色</p>
<p>如果<code>i</code>增加到等于<code>colors</code>长度的点,则将其值设置回<code>0</code></p>
<hr/>
<p><strong>如果希望每个颜色完全随机且不同,可以使用内置的<a href="https://docs.python.org/3/library/random.html" rel="nofollow noreferrer">^{<cd9>}</a>模块中的<a href="https://docs.python.org/3/library/random.html#random.random" rel="nofollow noreferrer">^{<cd8>}</a>方法:</strong></p>
<pre><code>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')
</code></pre>