python轮廓图

时间:2013-02-02 16:50:59

标签: python matplotlib

我有一个看起来像这样的文件:

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

1 个答案:

答案 0 :(得分: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元素总数的数组更改为具有相同数量的数组元素,但形状不同。