从多个CSV文件绘制图

时间:2020-08-15 20:22:55

标签: python pandas csv matplotlib

我有一个包含多个子目录的项目目录。每个子目录都包含一个* .csv 文件,其数据以以下格式显示

text,num,num
text,num,num

第0行中的文本后跟以','为分隔符的数字

我编写了用于绘制'*。csv'文件的代码。

x = []
y_list= []
with open('d1_data.csv','r') as csvfile:
    plots= csv.reader(csvfile, delimiter=',')
    for row in plots:
        x.append(numpy.log10(float(row[1])))
        y_list.append(float(row[2]))
num = float(1000000)
new_y = [y / num for y in y_list]
plt.plot(x,new_y, marker='o')
plt.title('single_plot')
plt.xlabel('x-axis')
plt.ylabel('y-axis')
plt.show()

相反,我想将来自不同目录中每个'*。csv'文件的所有曲线绘制成具有相同x和y轴的单个图形。每个传到'x'列表的'*。csv'文件值都需要输入 log10 的实际值,并将值添加到<如上面的示例代码所示,strong>'y '需要除以 1000000

有人可以帮我实现这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以使用glob查找所有具有* csv扩展名的文件,并为每个文件运行一个for循环,然后像在代码中一样将每个项目附加到列表中。

import glob, os
os.chdir("/mydir")
for file in glob.glob("*.csv"):
   *enter your code here*