もう 1 つ問題が発生しました。次の形式のファイルが複数あります。
周波数AB
1000 1.2 0.0014
100 1.2 0.00013
10 1.2 0.0012
すべてのファイルが同じフォルダーにあります。これまでのところ、すべてのファイルを読み取り、必要な計算を実行してから、必要なすべてのデータを含む 1 つの大きなファイルを保存できます (コードについては以下を参照)。
必要なデータを保存する前に:
データを元のファイルの数に分割し、新しいデータを使用して、入力名と同じ名前を使用します (コードの N はファイルあたりの行数です。これを使用して、ファイルの数を特定できます総行数から持っています)
そして、すべての異なるデータを1つのプロットにプロットするには(上記のような3つのファイルがあると仮定すると、すべて同じプロットに3行のプロットが必要です)-すべての試行以来、それを行うことができないようです1行だけ教えてください
* 更新 - データを読み取ることができ、すべてを最初のループに入れてから、すべてのデータを調べることができます - 今、保存機能を自動化したいのですが、コード (以下の単純化されたバージョンを参照) は 1 つのデータセットのみを保存します (おそらくテキストファイルを上書きしますか?) * UPDATE 2 - これで機能するようになりました - 2 番目のループに保存機能を追加する必要がありました
import os
import numpy as np
datadirectory = '/media/data'
os.chdir( datadirectory)
listing = os.listdir(datadirectory)
my_array=np.zeros(shape=(0,3))
for infile in listing:
dataset = open(infile).readlines()
data = np.genfromtxt(dataset, usecols=(0,1,2))
my_array = np.vstack((my_array, data))
lta= my_array
SOME PROCESSING HERE - lta には 5 つの列があります
Results=np.column_stack((lta[:,0], lta[:,1], lta[:,2], lta[:,3], lta[:,4]))
for i in listing:
date = i
np.savetxt((os.path.join(resultpath, date)) + '.txt', Results, fmt='%s', delimiter='\t')
my_array = np.vstack((my_array, Results))
データをプロットする - my_array 配列にすべてのデータがあり、N 行 (与えられた番号) ごとに異なるデータセットがあります - すべてのデータを同じグラフにプロットし、N 行ごとにシンボルの色を変更したい
import matplotlib.pylab as plt
plt.figure(figsize=(10,5))
#graph_axes = plt.subplot(N,2,1)
graph = plt.semilogx(my_array[:,0], my_array[:,2])
plt.ylim(0, 25)
plt.xlim(0.1, 1000)
plt.show()
plt.savefig(os.path.join(resultpath, 'image.png'))
ヘルプ/ガイダンスをいただければ幸いです。