如何为小提琴图添加颜色?
How to add colors to violinplots?
我正在用我拥有的数据准备小提琴图。
我想做的是在小提琴情节中为我的情节赋予独特的颜色,如彩虹色图。
我有一些 运行 完全相同的颜色,但我想引入一些变化。
vp1 = violinplot(y1, x1, points=20, widths=0.9, showmeans=True, showextrema=False, showmedians=False)
for pc in vp1['bodies']:
pc.set_facecolor('red')
pc.set_edgecolor('black')
vp1['cmeans'].set_color('black')
我该怎么做?
import random
def randomColor():
r = lambda: random.randint(0,255)
color = '#{:02x}{:02x}{:02x}'.format(r(), r(), r())
return color
vp1 = violinplot(y1, x1, points=20, widths=0.9, showmeans=True, showextrema=False, showmedians=False)
for pc in vp1['bodies']:
pc.set_facecolor(randomColor())
pc.set_edgecolor('black')
vp1['cmeans'].set_color('black')
如果你有 100 列,你可以使用它。函数 randomColor()
生成随机 hex
值并在每次迭代时给出随机颜色。
您可以使用颜色列表:
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()
method from the built-in 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')
我正在用我拥有的数据准备小提琴图。
我想做的是在小提琴情节中为我的情节赋予独特的颜色,如彩虹色图。 我有一些 运行 完全相同的颜色,但我想引入一些变化。
vp1 = violinplot(y1, x1, points=20, widths=0.9, showmeans=True, showextrema=False, showmedians=False)
for pc in vp1['bodies']:
pc.set_facecolor('red')
pc.set_edgecolor('black')
vp1['cmeans'].set_color('black')
我该怎么做?
import random
def randomColor():
r = lambda: random.randint(0,255)
color = '#{:02x}{:02x}{:02x}'.format(r(), r(), r())
return color
vp1 = violinplot(y1, x1, points=20, widths=0.9, showmeans=True, showextrema=False, showmedians=False)
for pc in vp1['bodies']:
pc.set_facecolor(randomColor())
pc.set_edgecolor('black')
vp1['cmeans'].set_color('black')
如果你有 100 列,你可以使用它。函数 randomColor()
生成随机 hex
值并在每次迭代时给出随机颜色。
您可以使用颜色列表:
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()
method from the built-in 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')