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

ETC

我需要创建一个以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 输入需要是一个 2d 数组,我可以理解为什么我将 X,Y 变成了一个 2d 数组,而 z 需要是与之匹配的值,但我不知道 id 是怎么回事那。

4

1 回答 1

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接收两个一维数组并返回它们的交叉,将元素总数reshape的数组更改为元素数相同但形状不同的数组。N

于 2013-02-02T16:55:25.123 回答