Seaborn中在同一图上绘制多个图表

7
我正在尝试绘制一种条形风格的“factorplot”来显示一些数据,然后在其上方绘制一个常规点样式的“factorplot”以展示该数据的拟合结果。因此,对于数据图,我可以简单地执行以下操作:
sns.factorplot(x='x',y='yData',data=dataFrame,kind='bar')

对于模型图,我可以简单地执行以下操作:

sns.factorplot(x='x',y='yModel',data=dataFrame,kind='point')

问题在于如果我执行以下操作:
sns.plt.show()

我得到了两个单独的图形,而不是一个。有没有简单的方法告诉seaborn将它们绘制在同一张图表上?


不确定这是否是解决方案的错误,如果您执行g = sns.factorplot(x='x',y='yData',data=dataFrame,kind='bar'),那么g将是一个FacetGrid,也许您可以使用这些轴(g.ax)用于下一个factorplot? - mgc
@mgc 我认为对于因子图来说这是不可能的。 - ticster
@mwaskom 这确实让我对正在发生的事情有了一些启示,我想我会试着从那里开始找到自己的解决方案,也许放弃factorplot转而使用“轴级”函数,但如果有人有其他想法,我会继续保留这个问题。 - ticster
你可能会有幸得到其他的想法 - 我相信mwaskom是seaborn的作者和维护者... - J Richard Snape
@JRichardSnape 好吧,那么对于这个任务,我们回到常规的pyplot。 - ticster
1个回答

5
正如评论中提到的,此答案解释了基本架构是什么,导致你看到了那种行为(两个不同的图),但是我们可以对你的问题给出更具体的答案: 教程解释了 factorplot 主要是一个方便函数,它将 FacetGrid 与许多 Axes 级别的函数结合起来,用于绘制共享 API 的分类图。由于您没有使用 factorplot 的多面板选项,因此您只需要将 sns.factorplot(..., kind="bar") 替换为 sns.barplot(...),将 sns.factorplot(..., kind="point") 替换为 sns.pointplot(...)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接