在Ironpython中使用ZedGraph为大型csv绘制图形,内存错误

时间:2019-03-20 14:43:38

标签: python ironpython zedgraph

我正在尝试使用Zedgraph在Ironpython中绘制大型csv文件的图形,但是由于文件太大,我遇到了内存错误。

我搜索了几个答案,表明我应该在加载时处理数据,但是我认为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)

所以,我的问题是,有没有一种方法可以使用ZedGraph来绘制大型csv数据,而无需加载X和Y值?

或者,是否存在另一种方法将数据存储为减少内存使用的数组? 由于我使用Ironpython,因此无法使用Numpy或Pandas之类的库。

更新: 我使用bin文件来存储和读取数据,它似乎比读取和存储csv文件小得多,但仍然不能解决问题。 当bin文件很大时,zedgraph仍然会出现内存错误。

0 个答案:

没有答案