有没有办法在 seaborn 点图中设置透明度/alpha 级别?

chp*_*gia 8 python matplotlib seaborn

我想制作一个具有透明度的 seaborn 点图,以便我可以清楚地看到位于不同颜色的其他点后面的点。

我尝试将“alpha=0.3”添加到对 pointplot 的调用中,并在带有 kind='point'; 的 catplot 中尝试了相同的操作。但是,这些都不会导致所需的透明度(也不会产生错误消息)。

sns.pointplot(x='aamm', y='posrate', hue='AA:XX', hue_order=[1,0], data=data, dodge=True, palette=palette, alpha=0.3)
Run Code Online (Sandbox Code Playgroud)

我希望得到一个带有透明点的图,但相反,我得到了一个带有普通不透明点的图。在分离不同颜色的重叠点方面,闪避选项似乎也没有产生任何明显的效果。

有没有办法为seaborn pointplot添加透明度或使用其他东西来获得类似的效果?

谢谢你。

Gio*_*Gio 6

据我所知,没有更多的 alpha 参数可以直接在 seaborn 中设置。

您可以执行以下操作:

示例数据框

df = pd.DataFrame(np.random.randint(low=0, high=1000, size=(50, 5)))
Run Code Online (Sandbox Code Playgroud)

绘图

g=sns.pointplot(x=0, y=1, data=df, dodge=True,plot_kws=dict(alpha=0.3))
plt.setp(g.collections, alpha=.3) #for the markers
plt.setp(g.lines, alpha=.3)       #for the lines
Run Code Online (Sandbox Code Playgroud)

输出

  • 我解决了,对于任何有兴趣的人。如果你有两个图, ll = len(g.collections) plt.setp(g.collections[:ll/2], alpha=.3) #for 标记应该可以帮助你。 (2认同)