2013-02-02 111 views
0

我有一个文件,它看起来像这样:蟒蛇等高线图

1237665126927237227 7.49126127875 1500 7.0 
1237665126927237227 6.64062342139 1750 7.0 
1237665126927237227 5.79903397289 2000 7.0 
1237665126927237227 7.24807646775 1500 7.5 
1237665126927237227 6.51250095795 1750 7.5 
1237665126927237227 5.74908888515 2000 7.5 
1237665126927237227 6.91915170741 1500 8.0 
1237665126927237227 6.29638684709 1750 8.0 
1237665126927237227 5.62891381033 2000 8.0 
1237665126927237227 6.54437390102 1500 8.5 
1237665126927237227 5.98359412299 1750 8.5 
1237665126927237227 5.43512459898 2000 8.5 

我需要创建与3rd列作为x轴和4th列作为y轴的情节,与2nd列作为轮廓,轮廓线为1,2,3,4等等。

林正在尝试做线沿线的东西,

from pylab import * 

ChiTable= np.loadtxt('ChiTableSingle.txt') 

xlist = linspace(ChiTable[2]) 
ylist = linspace(ChiTable[3]) 
X, Y = meshgrid (xlist, ylist) 

Z =partsChi[1] 

figure() 
CP1 = contour(X, Y, Z) 
clabel(CP1, inline=True, fontsize=10) 

pl.show() 

,但即时通讯刚刚开始自己​​完全被这一切混淆。我得到一个错误,说z输入需要是一个二维数组,我可以理解,为什么作为ive使X,Y成为一个二维数组,并且z需要是与之匹配的值,但是我不知道id如何去那。

回答

2

您需要reshape您的数据,而不是使用meshgrid

是这样的:

xdim = 3 
ydim = 3 
X = np.asarray(ChiTable[2]).reshape((xdim, ydim)) 
Y = np.asarray(ChiTable[3]).reshape((xdim, ydim)) 
Z = np.asarray(ChiTable[1]).reshape((xdim, ydim)) 

contour(X, Y, Z) 

meshgrid接受两个1-d阵列和给你回它们的横,reshape改变与元件的N总数的阵列成阵列具有相同数量的元素,但形状不同。