如何在单个图中绘制多个swarmplot?

3

我希望能够在一个图中绘制多个swarmplots。我认为swarmplot是seaborn绘图库中能够实现此功能的一种绘图方法,因为它可以接受axes关键字参数。然而,使用最新版本的anaconda、matplotlib和seaborn绘图库运行以下代码:

import seaborn as sb
import matplotlib.pyplot as plt
tips = sb.load_dataset("tips")
f, ax = plt.subplots(2,2)
sb.swarmplot(x="size", y="total_bill", data=tips, axes=ax[0,0])

给出以下错误(在长回溯的末尾):
ValueError: Can not reset the axes.  You are probably trying to re-use an artist in more than one Axes which is not supported

我在谷歌上搜索了一下,没有找到任何关于这个错误的提及。在子图中绘制 swarmplot 是不可能的吗?
谢谢。
1个回答

4
你需要使用 ax=,而不是 axes=

1
非常感谢。对我来说有点奇怪的是,当一个图形只有一个轴时,axes=会起作用。 - Tobias Wood
1
关键字参数通过 plt.scatter 传递。看起来它会对 axes 做一些处理,但我不确定具体是什么。 - mwaskom
它可能只是在内部调用 plt.figure.gca,并且对 axes 什么也不做。 - jackl

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