【发布时间】:2015-07-16 01:50:58
【问题描述】:
我正在尝试通过从文件中读取数据来绘制具有多种颜色的热图。我可以很好地生成 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
任何有用的建议表示赞赏
【问题讨论】:
-
请说明是否要在数据点之间进行插值(换句话说,数据文件中的列之一是“z”值),或者是否要制作 2D 直方图。
-
@chthonicdaemon 我可以将
col[5]保留为 Z 值