【问题标题】:Python boxplot on single variables单个变量上的 Python 箱线图
【发布时间】:2018-10-22 00:37:38
【问题描述】:

我正在尝试使用此 python 循环打印数据集中每个变量的所有箱线图。

colNameList = list(df.columns)
for i in range (0, len(df.columns)):
    df.boxplot(column=colNameList[i])

df 是我的数据集。

为什么这个简单的代码只显示最后一个箱线图?

【问题讨论】:

    标签: python pandas matplotlib statistics boxplot


    【解决方案1】:

    IIUC,您希望每列都有一个框,这是df.boxplot() 的默认值。

    示例数据框

    df = pd.DataFrame({'col1':np.random.randint(0,9,100),
                       'col2':np.random.randint(2,12,100),
                       'col3':np.random.randint(4,14,100)})
    
    >>> df.head()
       col1  col2  col3
    0     6     9     4
    1     5     2     8
    2     0     7    11
    3     0    10     9
    4     0     3     8
    

    绘图:

    df.boxplot()
    

    如果您只想要某些列:

    df[['col1', 'col2']].boxplot()
    # or
    df.boxplot(column=['col1', 'col2'])
    

    编辑根据您的 cmets,这里有一种方法可以将每个单独的框保存为单独的箱线图,以便您可以单独查看它们。

    for i in df.columns:
        df.boxplot(column=i)
        plt.savefig('plot'+str(i)+'.png')
        plt.close()
    

    【讨论】:

    • 如果我想循环执行并为每个变量显示它?
    • 你的意思是每个变量都有一个单独的图吗?
    【解决方案2】:

    如果您想为每个变量单独绘制图表,只需将 plt.show() 放在 for 循环中:

    import matplotlib.pyplot as plt
    import pandas as pd
    
    for i in df.columns:
        df.boxplot(column=i)
        plt.show()
    

    您可以用更 Python 的方式编写代码:df.colums 已经是一个列表,并且迭代是在列表上完成的

    【讨论】:

    • 什么是plt? @乔
    • 导入 matplotlib.pyplot 因为 plt 是一个库
    • 对不起,我的名声很差。我是新来的@Joe
    猜你喜欢
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 2016-12-09
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多