【发布时间】:2013-06-19 22:37:12
【问题描述】:
Python 新手,一般编程并尝试:
1) 从一个文件夹中读取多个(格式相同的)CSV 文件
2) 在单个图上绘制每个 CSV 文件的 X 列“时间”与 Y 列“pH”
3) 使用文件名(不带 .csv)创建图例作为绘图每行的参考。
我已经能够打开单个 CSV 文件并绘制 X 与 Y,但没有成功迭代文件并在单个绘图上覆盖多行。
任何帮助将不胜感激!我尝试了几种不同的读取文件的方法,我只在下面展示其中一种。我宁愿将文件作为单独的 pandas 数据表读取,以便以后可以操作它们。现在,我希望只是让一些基本的代码工作。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas import Series, DataFrame
from numpy import nan as NA
import glob
ferms = glob.glob ('Python/CSV/*.csv')
print ferms
for ferm in ferms:
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(ferms['EFT(h)'], ferms['pH1.PV [pH]'], 'k--')
plt.xlabel('EFT(h)')
plt.ylabel('pH')
plt.show()
根据@Paul H 的建议修改代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas import Series, DataFrame
from numpy import nan as NA
import glob
ferms = glob.glob ('Python/CSV/*.csv')
print ferms
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
for ferm in ferms:
# define the dataframe
data = pd.read_csv(ferm)
ax.plot(ferms[0], ferms[3], 'k--')
plt.xlabel('EFT(h)')
plt.ylabel('pH')
plt.show()
新错误:
--> 235 返回数组(a,dtype,copy=False,order=order) 236 237 def asanyarray(a,dtype=None,order=None):
ValueError:无法将字符串转换为浮点数:Python/CSV\20135140.csv
只是为了检查,我进入了我的 csv 文件并删除了标题,认为它们可能是导致“字符串浮动”错误的原因。但是,即使我的 csv 中只有数字,它也会引发相同的错误。
【问题讨论】:
-
请显示您使用的代码并解释它不工作的原因。
-
如果您向我们展示您在做什么,您将在这里获得更好的帮助。由于您现在的问题是“请为我做我的工作”,这往往会惹恼可能会帮助您的人;)
-
当您尝试覆盖多行时,什么不起作用?
-
感谢您的 cmets - 用我尝试过的一种方法的代码更新了帖子(尝试了很多)。
标签: python matplotlib