我大致按如下方式调用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)

是否可以通过给其提供特定的颜色来使一个盒子脱颖而出,同时使用给定的调色板为所有其他盒子上色?

matplotlib - 为seaborn.boxplot中的特定框分配颜色-LMLPHP

最佳答案

使用sns.boxplot制作的盒子实际上只是matplotlib.patches.PathPatch对象。这些以列表形式存储在ax.artists中。

因此,我们可以特别通过索引ax.artists来选择一个框。然后,您可以设置facecoloredgecolorlinewidth以及许多其他属性。

例如(基于示例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()

matplotlib - 为seaborn.boxplot中的特定框分配颜色-LMLPHP

关于matplotlib - 为seaborn.boxplot中的特定框分配颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36305695/

10-15 18:50