在寻找更改小提琴图(alpha值)的通用方法时,发现了这个帖子。看起来你需要从ax中访问matplotlib.PolyCollections,才能设置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,...]
输出: