【问题标题】:How to read in and store x,y data from multiple text files (in one directory)如何从多个文本文件(在一个目录中)读取和存储 x,y 数据
【发布时间】:2015-02-21 20:53:06
【问题描述】:

我有大约 150 个文本文件,我想从中加载数据,然后绘制成散点图。正在使用numpy.loadtxt 加载文件,如下所示:

x,y=loadtxt('2.8k to 293k 15102014_rerun 147_0K.txt',skiprows=1,unpack=True,dtype=float,delimiter=",")

如何从给定文件夹中加载 ~150 个文件并将它们全部绘制出来。

【问题讨论】:

  • 您能否添加更多关于输入文件(列)格式以及您希望绘制哪种图形的信息?您是否尝试过任何代码?
  • 例如:x,y=loadtxt('2.8k to 293k 15102014_rerun 147_0K.txt',skiprows=1,unpack=True,dtype=float,delimiter=",") 就是通常加载的在我的文本文件中。该图是一个简单的线/散点图。我不太确定从哪里开始。我在考虑先使用 os.getcwd?
  • 您希望所有文件都绘制在同一个图上吗?
  • 不同的图表。打算加入保存图片功能。
  • 啊,将通过编辑更新。

标签: python arrays loops text graph


【解决方案1】:

以下内容读取当前文件夹中名为*.txt 的所有文件,然后将它们绘制到带有matplotlib 的交互式绘图中。我使用glob 模块作为通配符匹配的目录列表,如果你只想要所有 文件,你可以使用os.listdir('.')。

import glob
from matplotlib import pyplot as plt
import numpy as np

plt.clf()
plt.subplot(111)
for f in glob.glob('*.txt'):
    print(f)
    x, y=np.loadtxt(f,skiprows=1,unpack=True,dtype=float,delimiter=",")
    plt.scatter(x,y)

plt.show()

以下将每组数据输出到不同的绘图 - 名称取自输入文件的名称。

import glob
from matplotlib import pyplot as plt
import numpy as np

for f in glob.glob('*.txt'):
    base_name = f[:-4]
    print(f)
    fig = plt.figure() 
    ax = fig.add_subplot(1,1,1)

    x, y=np.loadtxt(f,skiprows=1,unpack=True,dtype=float,delimiter=",")
    ax.scatter(x,y)

    fig.savefig(base_name+'.png')

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 1970-01-01
    • 2015-11-02
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    相关资源
    最近更新 更多