2 回答
TA贡献1794条经验 获得超8个赞
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()
TA贡献1859条经验 获得超6个赞
我刚刚遇到了同样的问题,只需调整以下zorder参数即可解决sns.stripplot:
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, zorder=1)
plt.show()
结果类似于@ImportanceOfBeingErnest 的答案:
添加回答
举报