gpt4 book ai didi

python - 大数据pyplot中内存错误

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:29 25 4
gpt4 key购买 nike

我是 python 和编程新手。我正在尝试使用 python 绘制方向图。我在平面上有大量点(大约 1,200,000 个),每个点都属于一个簇。每个簇应该具有不同的颜色。我目前正在做的是为每个簇分配一种颜色,并在每个点绘制一个实心圆。我尝试通过为不同的部分创建绘图并使用混合将它们组合起来来部分完成。这是该部分的代码:(sn是点的总数,label是簇号的簇数组,xcoor和ycoor是点的坐标)

pylab.xlim([0,250])
pylab.ylim([0,100])
plt.savefig("HK pickle.png")
for l in range (1, 20):
for j in range(int((float(sn)/80)*(l-1)), int((float(sn)/80)*(l))):
overlay = Image.open("HK pickle.png")
c = label[j] % 8
if c == 0:
circle1 = plt.Circle((float(xcoor[j]), float(ycoor[j])), 0.05, color = (0.5, 0, 0))
elif c == 1:
circle1 = plt.Circle((float(xcoor[j]), float(ycoor[j])), 0.05, color = (1, 0, 0))
elif c == 2:
circle1 = plt.Circle((float(xcoor[j]), float(ycoor[j])), 0.05, color = (0, 0.5, 0))
elif c == 3:
circle1 = plt.Circle((float(xcoor[j]), float(ycoor[j])), 0.05, color = (0, 1, 0))
elif c == 4:
circle1 = plt.Circle((float(xcoor[j]), float(ycoor[j])), 0.05, color = (0, 0, 0.5))
elif c == 5:
circle1 = plt.Circle((float(xcoor[j]), float(ycoor[j])), 0.05, color = (0, 0 ,1))
elif c == 6:
circle1 = plt.Circle((float(xcoor[j]), float(ycoor[j])), 0.05, color = (0.5, 0.5 ,0))
elif c == 7:
circle1 = plt.Circle((float(xcoor[j]), float(ycoor[j])), 0.05, color = (0.5, 0 ,0.5))
fig = plt.gcf()
fig.gca().add_artist(circle1)
del circle1
plt.savefig("HK pick.png")
del fig
back = Image.open("HK pick.png")
comp = Image.blend(back, overlay, 0.5)
comp.save("HK pickle.png", "PNG")
del comp
pylab.xlim([0,250])
pylab.ylim([0,100])
plt.savefig("HK plots.png")

但是,这会导致以下错误:

    fig.gca().add_artist(circle1)
File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 1404, in add_artist
self.artists.append(a)
MemoryError

错误出现在 l = 11 处。我不断并行地检查任务管理器,当 MemoryError 出现时,它仍然有近 3GB 的可用内存。请在这件事上给予我帮助。

我对此很陌生,仍然不知道我提供的信息是否足够。如果您需要更多信息,请告诉我

最佳答案

您可能会使用 scatter 和关键字 rasterized=True 做得更好,这会将所有矢量图形展平为光栅图像(这将占用更少的内存) .

类似于:

colors_lst = [ ... your tuples ...]
color = map(lambda x: colors_lst[x % 8], labels)
ax.scatter(xcoord, ycoord, c = colors, rasterized=True)

我认为将取代你的大部分脚本。

scatter documentation

关于python - 大数据pyplot中内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14581775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com