我想创建一个箱形图列表,其框的颜色取决于我用作输入的pandas.DataFrame列的名称.
列名称包含指示实验条件的字符串,基于该实验条件,我希望箱形图的框被着色.
我这样做是为了制作箱形图:
sns.boxplot(data = data.dropna(), orient="h")
plt.show()
这将创建一个包含正确名称的漂亮的箱图列表.现在我想给每个名为红色的’prog,DMSO’的箱形图,其余的都是蓝色.
我尝试创建一个字典,列名作为键,颜色作为值:
color = {}
for column in data.columns:
if 'prog+, DMSO+' in column:
color[column] = 'red'
else:
color[column] = 'blue'
然后使用字典作为颜色:
sns.boxplot(data = data.dropna(), orient="h", color=color[column])
plt.show()
这不起作用,可以理解(没有循环通过字典).所以我做了一个循环:
for column in data.columns:
sns.boxplot(data = data[column], orient='h', color=color[column])
plt.show()
这确实制作了不同颜色的箱形图,但它们彼此重叠并且没有正确的标签.如果我能以某种方式将这些箱形图很好地放在彼此之下的一个图中,那么我几乎就是我想要的.或者,还有更好的方法?