У меня есть 40 наборов данных, каждый размером около 115 МБ, и я хотел бы построить их все вместе на одном графике в масштабе журнала.
# make example data
import numpy as np
data_x = []
data_y = []
for _ in range(40):
x, y = np.random.random(size = (2, int(7e6))) # 7e6 chosen to make about 115MB size
data_x.append(x)
data_y.append(y)
del x, y
# now show the size of one set in MB
print((data_x[0].nbytes + data_y[0].nbytes)/1e6, 'MB')
# 112.0 MB
На моем компьютере доступно около 30 ГБ оперативной памяти, поэтому я полностью ожидаю, что 40*112MB = 4.5GB
подойдет.
Я хотел бы создать наложенный журнал для каждого набора данных:
import matplotlib.pyplot as plt
for x,y in zip(data_x, data_y):
plt.loglog(x, y)
plt.show()
Но объем памяти слишком велик.
Я бы предпочел не сокращать данные. Есть ли способ, которым я мог бы уменьшить накладные расходы памяти, чтобы построить эти 4.5GB
данных?
Я бы предпочел оставить цикл for, поскольку мне нужно изменить стиль точек и цвет каждого графика в нем, поэтому объединение наборов данных нежелательно.
Наиболее похожий вопрос, который я мог найти, это здесь , но это отличается тем, что цикл используется для создания отдельных графиков, а не для добавления к одному графику, поэтому добавление команды plt.clf()
в петля не помогает мне.