我正在尝试使用Seaborn的猫图功能来绘制具有两个特征的条形图。
sns.catplot(kind='bar', data=df, col='col1', y='col2', x='col3')
我现在想在顶部添加原始数据(以带状图的形式)。如果仅使用一个面板来执行此操作,则只需将它们绘制在相同的轴上:
fig, ax = plt.subplots()
sns.barplot(data=df, y='col2', x='col3', ax=ax, alpha=0.5)
sns.stripplot(data=df, y='col2', x='col3', ax=ax, dodge=True)
但是,由于catplot返回FacetGrid,所以我无法弄清楚该怎么做。谢谢!
答案 0 :(得分:0)
catplot
是用于简化常见的多面图的辅助功能。如果您想进一步控制,建议您直接使用FacetGrid
:
N = 1000
df = pd.DataFrame({'col1':np.random.choice(['A','B','C'], size=N),
'col2':np.random.random(size=N),
'col3':np.random.choice(['D','E'], size=N)})
g = sns.FacetGrid(data=df, col='col1', col_wrap=2)
g.map_dataframe(sns.barplot, x='col3', y='col2', alpha=0.5, ci=None)
g.map_dataframe(sns.stripplot, x='col3', y='col2')