2
我试图做一个散点图〜600万点,试图了解某种聚类。matplotlib scatter plotting png
当我尝试在一个简单的分散命令中做到这一点,matplotlib抱怨过多的内存。所以我决定绘制3000点,然后以.png格式保存图形,清除图形,用imread()
加载保存的.png,然后覆盖下一个3000点。
我正面临一些填充问题,我不明白他们是如何出现的。我的代码是有点长,因为我解析大量的文本文件,但下面是复制我的思维样品样机代码:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
plt.xlim(0,1000)
plt.ylim(-1000,1000)
plt.scatter(400,500,marker="+",c="r")
plt.gca().set_aspect('equal')
plt.draw()
plt.savefig(r"C:\TMP\fig1.png")
plt.clf()
im = plt.imread(r"C:\TMP\fig1.png")
implot = plt.imshow(im, origin='upper', aspect='equal', extent=[0,1000,-1000,1000], zorder=0)
plt.scatter(600,500,marker="+",c="b")
plt.savefig(r"C:\TMP\fig2.png")
plt.close(fig)
的结果是什么,我不知道如何解释。很显然,我不会了解imshow()中“aspect”和“extent”之间的关系。有人可以帮助我吗?
图1
图2
我期待既fig1.png
和fig2.png
到在另一个的顶部完全重叠。
谢谢!我会再看看我的脚本。我可能错过了一些东西,但是使用imshow()加载fig1.png时的填充使我疯狂。如何解释为什么png没有完全覆盖第二个数字?这不是我的意图,在剧情中得到阴谋...... – kabel
我没有找出问题所在,但它不是一个好主意。我建议你以不同的方式做。 – Lucas
没问题,谢谢你的输入。我试图解释的是,如果我想像我原本打算的那样绘图 - 保存 - 载入绘图(一次只绘制3000点),我不想在第二个图中看到两组轴。已保存的图(上图1)没有正确缩放,图2中有两组坐标轴(一个来自PNG,一个来自新创建的坐标图)。有一些填充问题,我不明白它如何使用imshow()。或者我可以根据你的建议修改我的脚本。谢谢。 – kabel