我想在抖动带状图后面绘制小提琴图。结果图在抖动点后面有平均值/标准条,这很难看清。我很想知道是否有办法使标准更重要。

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()


python - Seaborn剥离图,在小点前面有 fiddle 图条-LMLPHP

最佳答案

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()


python - Seaborn剥离图,在小点前面有 fiddle 图条-LMLPHP

08-25 17:53