2016-04-20 195 views
0

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

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

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() 

回答

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

+0

这是否回答你的问题? – Stefan

相关问题