У меня проблема с памятью при использовании matplotlib.collection.LineCollection с очень большим количеством строк (> 1 000 000). Я пытаюсь придерживаться библиотеки matplotlib из-за некоторых хороших функций геоплоттинга.
Есть ли способ нарисовать линии в сохраненном файле в al oop, чтобы только часть общего коллекция сохраняется в памяти? Ниже приведен минимальный рабочий пример, показывающий проблему с памятью (обратите внимание, что этот код будет использовать около 2 ГБ ОЗУ).
import matplotlib.pyplot as plt, matplotlib.collections as mat, numpy as np
#Generate line collection array
numEdges = 10000000
lineArray_m = np.zeros((numEdges, 2, 2), dtype = np.float64)
#Generate line collection and add it to the plot
fig, ax = plt.subplots(figsize = (8, 8))
for i in range(5):
line_collection = mat.LineCollection(lineArray_m[i*1000000:(i+1)*1000000,:,:], lw = 1, colors = 'k') #Note: this is the call causing large memory consumption, redefining or deleting the variable does not release memory
ax.add_collection(line_collection)