我使用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")
我得到以下结果:
您能帮我删除这个多余的轴吗?当具有多个子图时,这尤其不方便。
答案 0 :(得分:1)
您看到的额外轴是catplot
返回的轴。要摆脱它,您可以在sns.catplot(...)
之后添加以下行,其中索引2
表示图形的计数。
plt.close(2)
要进行测试,如果您使用plt.close(1)
,它将删除包含条形图的主要图形
答案 1 :(得分:1)
您看到的多余轴是您创建的catplot
。 catplot
是图形级功能(即,它创建自己的图形);因此实际上并没有ax
参数。可以将其视为仍然允许它的错误。您可能想做的是创建一个sns.swarmplot
参数的ax
。