我想在抖动带状图后面绘制小提琴图。结果图在抖动点后面有平均值/标准条,这很难看清。我很想知道是否有办法使标准更重要。
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()
最佳答案
Seaborn不在乎将其创建的对象暴露给用户。因此,需要从轴上收集它们以进行操作。您要在此处更改的属性是zorder
。所以这个想法可以是
绘制小提琴
收集轴上的线和点,使线具有较高的zorder,使点具有较高的zorder。
最后绘制带状图或黑线图。这将自动具有较低的zorder。
例:
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.collections import PathCollection
tips = 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()