У меня есть списки из ~ 10 соответствующих входных файлов, содержащих столбцы разделенных вкладкой данных, приблизительно 300 строк/точек на каждый.Python - Графическое содержимое mutliple-файлов
Я ищу для построения содержимого каждого набора данных, так что у меня есть 2 графика для каждого набора данных, каждый из которых просто равен x vs (y1, y2, y3, ...), а другой - преобразуется функцией, например x vs (f (y1), f (y2), f (y3), ...).
Я не уверен, что лучший способ достичь этого, я думал об использовании простого массива имен файлов, то не мог понять, как хранить их все без перезаписи данных - что-то вроде этого:
import numpy as np
import matplotlib.pyplot as plt
def ReadDataFile(file):
print (file)
x,y = np.loadtxt(file, unpack=True, usecols=(8,9))
return x, y
inputFiles = ['data1.txt','data2.txt','data2.txt',...]
for file in inputFiles:
x1,y1 = ReadDataFile(file) ## ? ##
p1,q1 = function(x1,y1) ## ? ##
plt.figure(1)
plt.plot(x1,y1)
plt.plot(x2,y2)
...
# plt.savefig(...)
plt.figure(2)
plt.plot(p1,q1)
plt.plot(p2,q2)
...
# plt.savefig(...)
plt.show()
Я думаю, мой вопрос в том, как лучше всего читать и хранить все данные и поддерживать возможность доступа к нему без необходимости вставлять весь код в readloop. Могу ли я прочитать два набора данных в список пар? Это что-то в Python? если да, то как мне получить к ним доступ?
Заранее благодарим за любую помощь! С уважением!
Как насчет чтения каждого файла данных и помещения их в словарь? Это сработает для вас? – gabra
Вы можете сохранить свои данные в массиве и использовать 'np.hstack()' для объединения данных (один столбец для x и один для каждого y) и построить объединенные массивы в виде подзаголовков внутри одного объекта-объекта. Я считаю, что «GridSpec» очень хорош для этого. – Andrew
@gabra Должен сказать, что я не испытываю словарей вообще ... но я понимаю, что они хранят пары ключ-значение, я думаю, что это похоже на C++-карту? могут ли записи «значение» в карте быть списком? ie: key1 = 'x1', value1 = [... x1 values list ...] с ключом2 = 'y2' и value2 '= [... y1 values list ...] Это кажется немного неуклюжим мне! Я решил, что должно быть более элегантное решение? – Pete