【问题标题】:How to make a seaborn distplot for each column in a pandas dataframe?如何为 pandas 数据框中的每一列制作 seaborn distplot?
【发布时间】:2020-05-19 14:57:27
【问题描述】:

我在 Jupyter 笔记本中使用Seaborn 来绘制这样的直方图:

import numpy as np
import pandas as pd
from pandas import DataFrame
import matplotlib.pyplot as plt
import seaborn as sns

%matplotlib inline

df = pd.read_csv('CTG.csv', sep=',')

sns.distplot(df['LBE'])

我有一个包含值的列数组,我想为其绘制直方图,我尝试为每个列绘制直方图:

continous = ['b', 'e', 'LBE', 'LB', 'AC']

for column in continous:
    sns.distplot(df[column])

我得到了这个结果——只有一个带有(大概)所有直方图的图:

我想要的结果是多个如下所示的直方图(每个变量一个):

我该怎么做?

【问题讨论】:

    标签: python pandas jupyter seaborn


    【解决方案1】:

    在每次调用 sns.distplot() 之前插入 plt.figure()

    这是一个示例 plt.figure():

    这是一个示例没有 plt.figure():

    完整代码:

    # imports
    import numpy as np
    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    plt.rcParams['figure.figsize'] = [6, 2]
    
    %matplotlib inline
    
    # sample time series data
    np.random.seed(123)
    df = pd.DataFrame(np.random.randint(-10,12,size=(300, 4)), columns=list('ABCD'))
    datelist = pd.date_range(pd.datetime(2014, 7, 1).strftime('%Y-%m-%d'), periods=300).tolist()
    df['dates'] = datelist 
    df = df.set_index(['dates'])
    df.index = pd.to_datetime(df.index)
    df.iloc[0]=0
    df=df.cumsum()
    
    # create distplots
    for column in df.columns:
        plt.figure()             # <==================== here!
        sns.distplot(df[column])
    

    【讨论】:

      猜你喜欢
      • 2016-11-28
      • 2021-02-23
      • 2020-04-24
      • 2020-05-11
      • 1970-01-01
      • 2019-08-03
      • 2021-05-24
      • 1970-01-01
      相关资源
      最近更新 更多