Arrays 绘制轮廓图时出现值错误

Arrays 绘制轮廓图时出现值错误,arrays,python-2.7,plot,contour,contourf,Arrays,Python 2.7,Plot,Contour,Contourf,我想画一个函数的轮廓,我的代码如下: xlist = linspace(0, 100, 100) ylist = linspace(0, 100, 200) X, Y = meshgrid(xlist, ylist) #print "X = " + str(X) #print "Y = " + str(Y) Z = power_at_each_point(X, Y) #print "Z = " + str(Z) figure() CP2 = contourf(X, Y, Z) colorbar(

我想画一个函数的轮廓,我的代码如下:

xlist = linspace(0, 100, 100)
ylist = linspace(0, 100, 200)
X, Y = meshgrid(xlist, ylist)
#print "X = " + str(X)
#print "Y = " + str(Y)
Z = power_at_each_point(X, Y)
#print "Z = " + str(Z)
figure()
CP2 = contourf(X, Y, Z)
colorbar(CP2)
title('Contour Plot')
xlabel('Room-x (m)')
ylabel('Room-y (m)')
show()
当我单独测试时,每个点x,Y处的函数幂,我写:

print power_at_each_point(50, 50)
输出为-80.9187477018

它基本上表示房间中达到这一点的功率,它正常输出一个数字,但当我在meshgrid命令后调用它时,它返回一个错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我想获取房间中x坐标和y坐标点的每个坐标,并使用power_at_each_point方法计算在该点达到的功率 它应该返回一个数字,我在轮廓图中表示它

我的猜测是,Z=power_的参数X,Y在每个_点从仅仅是数字变成了我不想要的数组,这就是导致错误的原因。 如何让函数Z=power_在每个_点X,Y作为参数X作为一个数字ex:1和Y ex:2,并返回该点的幂的值,以便在轮廓图中表示它


任何帮助都将不胜感激。

我发现函数meshgrid需要一个矩阵作为参数,所以我继续创建了一个名为Z的矩阵,我自己填充了其中的值,然后我继续输入Z作为meshgrid函数的参数:

x_list = linspace(0, 100, 100)
y_list = linspace(0, 100, 100)
X, Y = meshgrid(x_list, y_list)

Z = [[0 for x in range(len(x_list))] for x in range(len(y_list))]
for each_axes in range(len(Z)):
    for each_point in range(len(Z[each_axes])):
        Z[each_axes][each_point] = power_at_each_point(each_axes, each_point)

figure()
CP2 = contourf(X, Y, Z)
这让我得到了我想要的结果。
点在Z矩阵中是反向的,或者你可以说是沿水平方向镜像的,但这是我要玩的东西,这样我可以让Z中的元素与网格网格实际设置其网格点的方式相匹配。

问题可能在于你的函数幂在每个点上,它不知道如何处理非标量参数。也许您应该将代码发布到此函数。