Seaborn小提琴图透明度

时间:2020-06-26 15:26:48

标签: python seaborn violin-plot

我想在seaborn.violinplot中增加透明的小提琴。我尝试了以下方法:

import seaborn as sns

tips = sns.load_dataset("tips")

ax = sns.violinplot(x="day", y="total_bill", data=tips, color='r', alpha=[0.8, 0.6, 0.4, 0.2])

会导致所需的输出:

enter image description here

2 个答案:

答案 0 :(得分:3)

发现this thread希望改变小提琴图的总体alpha值,看来您需要从斧头访问matplotlib.PolyColections才能设置Alpha值,但是由于无论如何都需要访问它们,您最好单独设置Alpha值(至少在您的情况下,因为您需要单独的Alpha值)。

根据我的理解,ax.collections同时包含matplotlib.PolyCollections和matplotlib.PathCollections,您只需要PolyCollections,所以我做了以下工作,看来很有效:

ax = sns.violinplot(x = 'day', y = 'total_bill', data = tips, color = 'r')
for violin, alpha in zip(ax.collections[::2], [0.8,0.6,0.4,0.2]):
    violin.set_alpha(alpha)

ax.collections [:: 2]会忽略PathCollections,因为ax.collections的格式为[PolyCollection1,PathCollection1,PolyCollection2,PathCollection2,...]

输出:

enter image description here

答案 1 :(得分:0)

根据相同的thread更新。

更简单的答案是:

plt.setp(ax.collections, alpha=.3)