Я пытаюсь отобразить большой CSV-файл в Ironpython с помощью Zedgraph, но я получил ошибку памяти, так как файл слишком велик.
Я искал несколько ответов, предлагающих обработать данные при загрузке, но я думаю, что для метода построения графиков ZedGraph нужен массив, содержащий значения X и Y.
Вот мой код для загрузки данных CSV
def readData(self, end = -1):
counter = 0
sampleArray = []
tempReader = csv.reader(self.file, delimiter = ',')
for row in tempReader:
sampleArray.append(row)
if counter == end: #Break the reading loop until the 'desired count' value is reached (provided by user; 'None' by default)
break
counter += 1
return sampleArray
Вот мой код для отображения данных после вызова вышеуказанного метода
for i in xrange(len(sample_array)):
self.y_values.Add(float(sample_array[i].pop()))
self.x_values.Add(float(sample_array[i].pop()))
self.x_array = Array[float](self.x_values)
self.y_array = Array[float](self.y_values)
self.point_list = FilteredPointList(self.x_array, self.y_array)
my_curve = self.my_pane.AddCurve("Curve", self.point_list, Color.Yellow, SymbolType.None)
Итак, у меня вопрос, есть ли способ построить большие данные CSV, используя ZedGraph без загрузки значений X и Y?
Или, есть ли альтернативный способ хранения данных в виде массива, который уменьшает использование памяти?
Поскольку я использую Ironpython, я не могу использовать такие библиотеки, как Numpy или Pandas.
Обновление:
Я использую bin-файл для хранения и чтения данных, и он кажется намного меньше, чем чтение и хранение csv-файла, но все равно не решает проблему.
когда файл bin большой, zedgraph все равно получит ошибку памяти ..