- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过从文件中读取数据来绘制具有多种颜色的热图。我可以很好地生成 2D 和法线热图,但无法像附加图像那样绘制。当使用随机数时,我可以绘制它但是在从文件中读取数据时它显示错误。
上面的热图是用随机数据生成的
输入:col[1]
和col[2]
是x
和y
坐标
00022d9064bc 819251 440006 1073260801 1073260803 2.0
00022dba8f51 819251 440006 1073260801 1073260803 2.0
00022de1c6c1 819251 440006 1073260801 1073260803 2.0
003065f30f37 819251 440006 1073260801 1073260803 2.0
00904b48a3b6 819251 440006 1073260801 1073260803 2.0
00904b83a0ea 819213 439954 1073260803 1073260810 7.0
00904b85d3cf 817526 439458 1073260803 1073261920 1117.0
00904b14b494 817558 439525 1073260804 1073265410 4606.0
00904b99499c 817558 439525 1073260804 1073262625 1821.0
00904bb96e83 817558 439525 1073260804 1073265163 4359.0
00904bf91b75 817558 439525 1073260804 1073263786 2982.0
00022d36a6df 820428 438735 1073260807 1073260809 2.0
代码:
from matplotlib import pyplot as plt
from matplotlib import cm as CM
from matplotlib import mlab as ml
import numpy as np
data = np.loadtxt('inputfile', unpack=True, dtype='str, int, int, int, int, float')
x = data[1]
y = data[2]
X, Y = np.meshgrid(x,y)
x = X.ravel()
y = Y.ravel()
gridsize = 30
plt.subplot(111)
cb = plt.colorbar()
cb.set_label('density')
plt.show()
错误:
Traceback (most recent call last):
File "heat3.py", line 11, in <module>
X, Y = np.meshgrid(x,y)
File "/usr/lib/python2.7/dist-packages/numpy/lib/function_base.py", line 3106, in meshgrid
mult_fact = np.ones(shape, dtype=int)
File "/usr/lib/python2.7/dist-packages/numpy/core/numeric.py", line 178, in ones
a = empty(shape, dtype, order)
MemoryError
感谢任何有用的建议
最佳答案
您看到的错误来自 meshgrid
试图构建可能相当大的矩阵。如果您的数据包含 N
行,则矩阵将为 N×N。根据您拥有的点数以及它们的密集程度,您将需要热图中的两个内容之一。要么
我已经修改了下面的代码以适用于第二种情况(hexbin
自动执行此操作),因为您似乎没有引用数据中的第三个值进行插值。
from matplotlib import pyplot as plt
from matplotlib import cm as CM
from matplotlib import mlab as ml
import numpy as np
data = np.loadtxt('inputfile', unpack=True, dtype='str, int, int, int, int, float')
x = data[1]
y = data[2]
z = data[5]
# These lines are completely unnecessary and perhaps come
# from a different solution which was interpolating between points
#X, Y = np.meshgrid(x,y)
#x = X.ravel()
#y = Y.ravel()
gridsize = 30
#plt.subplot(111) # <- You don't need this as it is one plot anyway
plt.hexbin(x, y, C=z) # <- You need to do the hexbin plot
cb = plt.colorbar()
cb.set_label('density')
plt.show()
我在上面注释掉的残留 meshgrid
调用可能来自您在某处找到的一段代码,该代码执行第一个选项(在间隔点之间进行插值),也许我使用 griddata
。如果这实际上是你想要的,你可以看看这个 cookbook entry 网格化不规则间隔的数据
关于python - 如何使用多色热图解决 MemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30068049/
我想要类似于以下伪代码的东西: while input is not None and timer = 5: print "took too long" else: print inp
如何将 MainEngine Observable 转换为 Cold?来自这个例子: public IObservable MainEngine { get
自从手表被发明以来,表盘的方圆之争就始终没有停下来过,在漫长的岁月中,无论是方形还是圆形表盘,人们都为其寻找到足够多的设计元素,让其肆意成长,这种生机与活力后来也延续到了智能手表上,在2014年,这
我正在学习 CUDA,试图解决一些标准问题。例如,我正在使用以下代码求解二维扩散方程。但我的结果与标准结果不同,我无法弄清楚。 //kernel definition __global__ void
我的 Web 应用程序使用 native dll 来实现其部分功能(其位置在 PATH 中提供)。一切正常,直到我对 WAR 进行更改并且 JBoss 热部署此 WAR。此时dll已经找不到了,需要手
我看到这个问题here 。这是关于实现每个发出的项目的延迟。这是根据accepted answer如何实现的: Observable.zip(Observable.range(1, 5) .g
我最近一直在进行冷迁移...这意味着我无法在进行迁移时从应用程序级别读取/写入数据库(维护页面)。 这样就不会因为更改结构而发生错误,而且如果负载很大,我也不希望 mysql 在迁移过程中崩溃。 我的
我是一名优秀的程序员,十分优秀!