I am trying to read in a file containing XY endpoints of line segments and a value associated with the segment, then plot the line segments colored by the value given. The problem I am having is that there is potentially hundreds of thousands to millions of line segments and when I attempt to read in these larger files I run into a memory error. Is there a more memory efficient way of doing this?

import matplotlib.pyplot as plt
import matplotlib.colors as colors
import matplotlib.cm as cmx
import sys
import csv

if len(sys.argv) > 1:
    flofile = sys.argv[1]
else:
    flofile = "GU3\GU3.flo"

fig = plt.figure()
ax = fig.add_subplot(111)
jet = cm = plt.get_cmap('jet')
cNorm = colors.Normalize(vmin=0)
scalarMap = cmx.ScalarMappable(norm=cNorm,cmap=jet)
with open(flofile) as FLO:
    title = FLO.readline()
    limits = [float(tp) for tp in FLO.readline().split()]
    FLO.readline()#headers
    for line in FLO:
        if 'WELLS' in line: break        
        frac = ([float(tp) for tp in line.split()])
        ax.plot([frac[0],frac[2]],[frac[1],frac[3]],color=colorVal)


#ax.plot(*call_list)
scalarMap._A = []
plt.colorbar(scalarMap)
plt.xlim([0,limits[0]])
plt.ylim([0,limits[1]])

plt.show()

This code works for small files. Thanks.

Edit
Report