Seaborn Catplot + Barplot:额外轴

时间:2019-06-28 12:40:15

标签: python matplotlib seaborn

我使用Seaborn / Matplotlib为不同的参数显示不同的输出(例如时间和距离)。我想将两个输出关联到同一图上,因此我使用了Seaborn的卫星图和barplot。

我的问题是我没有得到预期的显示。该图在这里,但出现一些嘈杂的多余轴。

我正在运行以下代码

ax = plt.subplot(311)
ax2 = ax.twinx()

data = sns.load_dataset("tips")
sns.barplot(ax=ax, x="day",y="total_bill", hue="size" , data=data, ci=None)
ax.set_yscale("log")

sns.catplot(data=data, x="day", y="tip", ax=ax2, hue="size", kind="swarm", palette="bright")

我得到以下结果:

enter image description here

您能帮我删除这个多余的轴吗?当具有多个子图时,这尤其不方便。

2 个答案:

答案 0 :(得分:1)

您看到的额外轴是catplot返回的轴。要摆脱它,您可以在sns.catplot(...)之后添加以下行,其中索引2表示图形的计数。

plt.close(2)

要进行测试,如果您使用plt.close(1),它将删除包含条形图的主要图形

答案 1 :(得分:1)

您看到的多余轴是您创建的catplotcatplot是图形级功能(即,它创建自己的图形);因此实际上并没有ax参数。可以将其视为仍然允许它的错误。您可能想做的是创建一个sns.swarmplot参数的ax