График большого CSV с использованием ZedGraph в Ironpython, ошибка памяти - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь отобразить большой 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 все равно получит ошибку памяти ..

...