猿问

Seaborn 带状图,点前带有小提琴图条

我想在抖动带状图后面画一个小提琴图。生成的图在抖动点后面有平均值/标准条,这使得它很难看到。我想知道是否有办法将酒吧放在积分前面。


import seaborn as sns

import matplotlib.pyplot as plt


tips = sns.load_dataset("tips")


sns.violinplot(x="day", y="total_bill", data=tips, color="0.8")

sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)

plt.show()

米琪卡哇伊
浏览 182回答 2
2回答

幕布斯7119047

Seaborn 并不关心将它创建的对象暴露给用户。所以需要从轴上收集它们来操纵它们。您要在此处更改的属性是zorder. 所以这个想法可以是绘制小提琴从轴上收集线和点,给线一个高 zorder,给点一个更高的 zorder。最后绘制条形图或群图。这将自动具有较低的 zorder。例子:import seaborn as snsimport matplotlib.pyplot as pltfrom matplotlib.collections import PathCollectiontips = sns.load_dataset("tips")ax = sns.violinplot(x="day", y="total_bill", data=tips, color=".8")for artist in ax.lines:    artist.set_zorder(10)for artist in ax.findobj(PathCollection):    artist.set_zorder(11)sns.stripplot(x="day", y="total_bill", data=tips, jitter=True, ax=ax)plt.show()

BIG阳

我刚刚遇到了同样的问题,只需调整以下zorder参数即可解决sns.stripplot:import seaborn as snsimport matplotlib.pyplot as plttips = sns.load_dataset("tips")sns.violinplot(x="day", y="total_bill", data=tips, color="0.8")sns.stripplot(x="day", y="total_bill", data=tips, jitter=True, zorder=1)plt.show()结果类似于@ImportanceOfBeingErnest 的答案:
随时随地看视频慕课网APP

相关分类

Python
我要回答