用Python绘制CSV数据

时间:2017-05-07 17:07:41

标签: python csv matplotlib

我正在开发一个关于CSV文件的项目。我几乎没有开始学习python及其谜团。我有这段代码在一个文件夹中查找,得到所有" .csv"文件(或#34; .txt"在这种情况下,这就是我找到所有海量数据的方式)并读出其数据。我使用pandas导入CSV(它有2列,TimeAmplitude)后,我想绘制两列。我知道情节看起来是怎样的(数据是在MATLAB中绘制的,但我的工作是为python创建一个软件)。我尝试使用此link,但我不知道如何知道我的X-axisTimeY-axisAmplitude

到目前为止,这是我的整个代码

import pandas as pd
import os
import tkinter as tk 
from tkinter.filedialog import askdirectory 
import matplotlib.pyplot as plt


print ("Please choose the path to the CSV Files: ")


root = tk.Tk()
root.withdraw()
root.attributes('-topmost', True)
path = askdirectory()

print("\nThe chosen folder is: " + path)

tmp_paths=[] 
data_tables=[] 
data_paths=[] 
file_ext=[] 
file_name=[]
sep_name=[] 




for root, dirs, files in os.walk(path):     
    for file in files:                      
        if file.endswith(".txt"):          
             tmp_paths=os.path.join(root,file)  #
             tables=pd.read_csv(tmp_paths, header=5, sep=' ',converters={"Time":float, "Ampl":float}) 
             data_tables.append(tables)     
             data_paths.append(tmp_paths)      


file_ext=[name.split("\\",1)[1] for name in data_paths] 
file_name=[name.split(".txt",1)[0] for name in file_ext]
sep_name=[name.split("-",6) for name in file_name]

plt.plot(data_tables[1],data_tables[0])
plt.show()

P.S:当我试图绘制时,它给了我:`KeyError:' Time'。

修改

1.使用data_tables

float值转换为pandas

2.绘图代码中的固定ecopy错误

在新的修改后,我不再获得KeyError,但TimeAmpl会发出另一个错误,指出索引预计为integers而不是{{1} }或str及其接受的唯一值为slices1,其他任何值均为0

1 个答案:

答案 0 :(得分:0)

关于pandas文档,你已经绘制了一个像这样的DataFrame:
要使用标签

绘制所有列
plt.figure()
data_tables.plot()
plt.legend(loc='best')
  

pandas-docs/version/0.13.1/visualization