从python中具有多个CSV的文件夹绘制Box-Plot图

时间:2016-04-20 23:20:29

标签: python csv pandas boxplot

我有一个包含多个CSV文件的文件夹。每个文件都有3列('真实','用户' sys')每列在行中有10个时间值(浮点数)。我的目标是从文件夹中读取这些csv文件并制作一个box-whisker图来比较每个csv文件的值。我编写了以下python代码,它给了我多个(等于文件数)单独的图形。通过从循环中删除plt.show(),只显示最后一个图形。

我希望将这些图形合并到一个图形中,并将每个文件名称作为定义哪个盒须用于哪个文件的标签。请帮助。

import csv
import numpy as np
import pandas
import matplotlib.pyplot as plt
import glob

files = glob.glob ('/Users/Desktop/sample/*.csv')
print files

for file in files:
    df = pandas.read_csv(file, sep=',')

    LABELS = ["real", "user", "sys"]

    plt.title('Time Taken by Classifier')
    plt.xlabel('Time_Types')
    plt.ylabel('Time_Value in (sec)')


    df.boxplot()

    plt.show()

1 个答案:

答案 0 :(得分:0)

你可能想尝试这些方面:

import pandas as pd
data = pd.DataFrame()
for file in files:

    df = pandas.read_csv(file, sep=',')
    df['file'] = file
    data = pd.concat([data, df])


LABELS = ["real", "user", "sys"]

plt.title('Time Taken by Classifier')
plt.xlabel('Time_Types')
plt.ylabel('Time_Value in (sec)')


data.boxplot(by='file')

plt.show()

请参阅pd.DataFrame.boxplot() docsunderlying matplotlib implementation了解如何使用关键字args修改布局。