2016-03-04 58 views
1

我需要绘制2D“热图”使用python使用从我的文件数据。我的文件有3列x,y,值。 X变为1至199和y从1到49我已经成功地从这里使用代码:Make a 2D pixel plot with matplotlib但我区是矩形的,我需要的是“说谎”矩形,但上面的代码使得“站立”的矩形。2D热图使用python和matplotlib

任何方式如何由90度逆时针旋转,或调换的数据?我很新的蟒蛇,我已经发现行不通的所有解决方案...

这里是我的代码产生“站立”矩形:

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.cm as cm 

x,y,temp = np.loadtxt('snorm000990987662298').T 
nrows, ncols = 199, 49 
grid = temp.reshape((nrows, ncols)) 

plt.imshow(grid, cmap=cm.gist_gray) 
plt.show() 

回答

0

尝试使用numpy.transpose

grid = np.transpose(grid) 
plt.imshow(grid, cmap=cm.gist_gray) 
plt.show() 
+0

尼斯,这个工作的感谢,它的“大话”矩形,现在我需要扭转电网在y轴上,因为它的倒挂... – Martin

+0

啊。你想要的可能是['numpy.rot90'](http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.rot90.html#numpy.rot90):'grid = np.rot90(网格)'。另请参见['numpy.flipud'](http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.flipud.html)和['numpy.fliplr'](HTTP:/ /docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.fliplr.html)。 – Jeff

+0

我翻转了Y轴:)。但是,谢谢你的解决方案。 – Martin