如何格式化海底图

时间:2020-05-11 18:16:13

标签: python pandas seaborn

以下代码生成2个并排图。但是,我想将右侧图向右推,以便其标签显示与左侧图分离。我该怎么做?我在subplotscountplot

中都找不到任何选项

代码如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
data = {
    'apples': [3, 2, 0, np.nan, 2],
    'oranges': [0, 7, 7, 2, 7],
    'figs':[1, np.nan, 10, np.nan, 10]
}
purchases = pd.DataFrame(data)
fig, ax =plt.subplots(1,2)

sns.countplot(purchases['apples'], ax=ax[0])
sns.countplot(purchases['oranges'], ax=ax[1])
show()

2 个答案:

答案 0 :(得分:2)

一个选项是tight_layout

fig, ax =plt.subplots(1,2)

sns.countplot(purchases['apples'], ax=ax[0])
sns.countplot(purchases['oranges'], ax=ax[1])
plt.tight_layout()

输出:

enter image description here

答案 1 :(得分:0)

为了使您的数据与seaborn很好地兼容,请考虑将数据框更改为“长”格式,并使用sns.catplot绘制所有类别及其对应的计数:

data = purchases.stack().droplevel(0).reset_index()
data.columns = ['fruit', 'number']
print(data.head(5))

# output:
#      fruit  number
# 0   apples     3.0
# 1  oranges     0.0
# 2     figs     1.0
# 3   apples     2.0
# 4  oranges     7.0

sns.catplot(data=data, x='number', kind='count', col='fruit') 
plt.show()

输出:

enter image description here