如何在 seaborn 中并排绘制两个计数图?

Posted

技术标签:

【中文标题】如何在 seaborn 中并排绘制两个计数图?【英文标题】:How do I plot two countplot graphs side by side in seaborn? 【发布时间】:2017-08-25 04:05:05 【问题描述】:

我正在尝试绘制两个计数图来显示击球次数和保龄球次数。我尝试了以下代码:

l=['batting_team','bowling_team']
for i in l:
    sns.countplot(high_scores[i])
    mlt.show()

但是通过使用这个,我得到了两个图,一个在另一个之下。我怎样才能让它们并排订购?

【问题讨论】:

【参考方案1】:
import matplotlib.pyplot as plt
l=['batting_team', 'bowling_team']
figure, axes = plt.subplots(1, 2)
index = 0
for axis in axes:
  sns.countplot(high_scores[index])
  index = index+1
plt.show()

【讨论】:

【参考方案2】:

类似这样的:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

batData = ['a','b','c','a','c']
bowlData = ['b','a','d','d','a']

df=pd.DataFrame()
df['batting']=batData
df['bowling']=bowlData


fig, ax =plt.subplots(1,2)
sns.countplot(df['batting'], ax=ax[0])
sns.countplot(df['bowling'], ax=ax[1])
fig.show()

这个想法是在图中指定子图 - 有很多方法可以做到这一点,但上面的方法可以正常工作。

【讨论】:

看看没有seaborn的更通用的解决方案:***.com/a/54266570/5084355 为什么我得到 4 张图片?两张图片是空的,另外两张有我想要的图表。 @cyber-math 代码只生成两个子图,也许您输入了类似:plt.subplots(2,2)?你试过运行这个确切的脚本吗? 感谢您的回复。这是我所做的 fig, ax =plt.subplots(1,2) sns.catplot(x='CDR',y='Age',data=long_df, ax=ax[0]) sns.catplot(x='CDR',y='MMSE',data=long_df, ax=ax[1]) 删除 sharey 我之前遇到过这个额外的空白情节问题,plt.close() 在那段时间工作。现在它不工作了。

以上是关于如何在 seaborn 中并排绘制两个计数图?的主要内容,如果未能解决你的问题,请参考以下文章

使用两个数据框绘制并排条形图

如何手动缩放 Seaborn Violinplot 的计数

如何在 seaborn 中显示正确的计数值?

如何使用 seaborn 绘制每个离散变量的计数(这里计数不仅仅是频率,而是定义的值)[关闭]

如何缩放具有不同频率的多个KDE图?

seaborn中的分组条形图