python – 使用Seaborn,如何从点图中获取所有元素以显示在violoi
发布时间:2020-12-20 12:08:57 所属栏目:Python 来源:网络整理
导读:使用Seaborn 0.6.0,我试图在小提琴图上叠加一个点图.我的问题是小提琴图的个别观察中的“棒”被绘制在点图上的标记之上,如下所示. import seaborn as snsimport matplotlib.pyplot as pltfig,ax = plt.subplots(1,figsize=[12,8])sns.violinplot(x="day",y="
使用Seaborn 0.6.0,我试图在小提琴图上叠加一个点图.我的问题是小提琴图的个别观察中的“棒”被绘制在点图上的标记之上,如下所示.
import seaborn as sns import matplotlib.pyplot as plt fig,ax = plt.subplots(1,figsize=[12,8]) sns.violinplot(x="day",y="total_bill",hue="smoker",data=tips,split=True,inner='stick',ax=ax,palette=['white']*2) sns.pointplot(x="day",y='total_bill',dodge=0.3,join=False) 仔细观察这个图,看起来绿色的误差条是在violoin棒上方(周六看),但蓝色的误差条,以及蓝色和绿色的点都画在小提琴棒的下方. 我尝试将zorder的不同组合传递给两个函数,但这并没有改善绘图外观.我能做些什么来让点图中的所有元素出现在violoinplot的所有元素之上? 解决方法
类似于Diziet Asahi的回答,但更简单一点.由于我们正在设置zorder,因此我们不需要按照我们希望它们出现的顺序绘制绘图,这样可以省去排序艺术家的麻烦.我也正在制作它,以便点图不出现在图例中,它没有用处.
import seaborn as sns import matploltlib.pyplot as plt tips = sns.load_dataset("tips") ax = sns.pointplot(x="day",join=False,palette=['white']) plt.setp(ax.lines,zorder=100) plt.setp(ax.collections,zorder=100,label="") sns.violinplot(x="day",ax=ax) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |