我想創建一個boxLot的列表,其框的顏色取決於我用作輸入的pandas.DataFrame列的名稱。基於DataFrame列的顏色seaborn boxplot列名
列名稱包含指示實驗條件的字符串,根據該實驗條件我想將boxplot的框着色。
我這樣做是爲了使箱線圖:
sns.boxplot(data = data.dropna(), orient="h")
plt.show()
這將創建正確的名稱盒狀圖的一個美麗的列表。現在我想給每個boxplot,它的名字中有'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()
這確實讓不同顏色的箱線圖,但都在彼此的頂部,並沒有正確的標籤。如果我能以某種方式將這些盒狀圖很好地放置在一個點下方,我幾乎可以達到我想要的狀態。或者,還有更好的方法?
你要通過你的字典'palette'(多種顏色),而不是'color'(單一個)。 – mwaskom