簡體   English   中英

更改 Seaborn Boxplot 上的 Box 和 Point Grouping Hue

[英]Change Box and Point Grouping Hue on Seaborn Boxplot

讓我們根據文檔創建一個 sns 箱線圖:

import seaborn as sns
sns.set(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set3")

產生一個很好的情節:

在此處輸入圖片說明

但是,我希望能夠控制每個組的顏色。 我希望將吸煙者“是”組顯示為灰色框和灰色異常值點,並且我希望吸煙者“否”組顯示為帶有綠色框和綠色異常值點。 如何編輯底層matplotlib ax 對象以更改這些屬性?

通過將您自己的palette傳遞給boxplot()似乎最好改變盒子的顏色。 為了按組更改異常值(“傳單”)的顏色,此答案包括一個解決方案。 這里得到的代碼:

import seaborn as sns, matplotlib.pyplot as plt
sns.set(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips,
  palette=sns.color_palette(('.5', 'g')))

# each box in Seaborn boxplot is artist and has 6 associated Line2D objects
for i, box in enumerate(ax.artists):
  col = box.get_facecolor()
  # last Line2D object for each box is the box's fliers
  plt.setp(ax.lines[i*6+5], mfc=col, mec=col)

plt.show()

結果: 具有所需顏色的箱線圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM