我想调整此箱线图的配色方案,以便左侧的组为深蓝色和浅蓝色,右侧的组为深红色和浅红色。我已经在 my_colours
中制作了我想要的颜色,但我仍然不知道该怎么做。这是数据的代码:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
a1 = list(np.random.normal(.70, .20, 20))
a2 = list(np.random.normal(.5, .15, 20))
b1 = list(np.random.normal(.78, .20, 20))
b2 = list(np.random.normal(.4, .25, 20))
levsA = ['a' for i in range(40)]
levsB = ['b' for i in range(40)]
itemsa = [1 for i in range(20)] + [2 for i in range(20)]
itemsb = [1 for i in range(20)] + [2 for i in range(20)]
df = pd.DataFrame({'cs':a1 + a2 + b1+ b2,
'levels':levsA + levsB,
'type':itemsa + itemsb})
my_colours = ((0.1216, 0.4667, 0.7059),
(0.8392, 0.1529, 0.1569),
(0.6824, 0.7804, 0.9098),
(1, 0.5961, 0.5882))
sns.set_palette(my_colours)
sns.boxplot(x='type', y='cs', hue='levels', data=df)
我想要按以下顺序排列:
最佳答案
这些框是PathPatch
es。您可以循环它们并设置它们的颜色。不过,需要注意它们在坐标区中出现的顺序。
import matplotlib.patches
boxes = ax.findobj(matplotlib.patches.PathPatch)
for color, box in zip(my_colours[::2]+my_colours[1::2], boxes):
box.set_facecolor(color)
关于python-3.x - Seaborn 中分组箱线图的单独颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51899470/