我大致如下调用seaborn.boxplot:
seaborn.boxplot(ax=ax1,
x="centrality", y="score", hue="model", data=data],
palette=seaborn.color_palette("husl", len(models) +1),
showfliers=False,
hue_order=order,
linewidth=1.5)
是否可以通过赋予特定颜色使一个盒子脱颖而出,同时用给定的调色板着色所有其他盒子?
答案 0 :(得分:16)
使用sns.boxplot
制作的框实际上只是matplotlib.patches.PathPatch
个对象。它们作为列表存储在ax.artists
中。
因此,我们可以通过索引ax.artists
来特别选择一个框。然后,您可以在许多其他属性中设置facecolor
,edgecolor
和linewidth
。
例如(基于其中一个示例here):
import seaborn as sns
import 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="Set3")
# Select which box you want to change
mybox = ax.artists[2]
# Change the appearance of that box
mybox.set_facecolor('red')
mybox.set_edgecolor('black')
mybox.set_linewidth(3)
plt.show()