Seaborn的多个直方图

时间:2020-04-15 17:54:08

标签: python matplotlib seaborn

使用matplotlib作图,我得到了这4个直方图模型: 4 Histograms

使用Seaborn,我得到了所需的精确图形,但是我无法复制它一次获得4个图形: Seaborn

我想以图像1的格式获取4个seaborn图(图像2)(一次用我对seaborn的计算得出4个)。

我的代码如下:

import os
import re  
import time
import ipdb
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
path_file = os.path.join(BASE_DIR, 'camel_product_list.csv')

gapminder = pd.read_csv(path_file)
print(gapminder.head())
df = gapminder
sns.distplot(df['average_histogram_ssim'], hist=True, kde = False, label='All values')
df = gapminder[gapminder.color == 'green']
# sns.distplot(df['lifeExp'], hist = True, kde = True, label='Only Matches')
sns.distplot(df['average_histogram_ssim'], hist_kws={"histtype": "step", 
                            "linewidth": 3,
                            "alpha": 1, "color": "b"} , 
                            kde = False, label='Only Matches')
# Plot formatting
plt.legend(prop={'size': 12})
plt.title('ratio_image SSIM')
plt.xlabel('Data Range')
plt.ylabel('Density') 
plt.show()

数据框的列名称为:

'ratio_text','ratio_image', 'ratio_hist', 'ratio_sub', 'color'

我正在使用颜色列作为过滤器。

如何获取按所有颜色和绿色过滤的 ratio_text','ratio_image','ratio_hist','ratio_sub',的4个海洋图?

1 个答案:

答案 0 :(得分:2)

首先定义子图网格,并将其四个轴分配给数组ax

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

现在,您可以使用ax关键字参数将要绘制的轴传递给seaborn的绘制函数,例如对于第一个情节:

sns.distplot(df['average_histogram_ssim'], hist=True, kde=False, label='All values', 
             ax=ax[0, 0])

ax=ax[0, 1]相同的是右上方的图,依此类推。