2017-03-22 123 views
-2

我遇到以下问题;使用函数的轮廓图

我必须在某个点(chi = 2.3)做两个变量chi2(X,Y)函数的等高线图。我尝试过很多方法,但我仍然不知道如何去做。例如,我做了以下操作:

import numpy as np 
    import matplotlib.pyplot as plt 
    from function import chi2 # Two variable function imported from another file 

    x = np.arange(-2,2,0.02) 
    y = np.arange(0,1.5,0.02) 

    X,Y= np.meshgrid(x,y) 

    Z = chi2(X,Y) 

    plt.figure() 
    CS = plt.contour(X,Y,Z) 
    plt.clabel(CS,inline=2.3, fontsize=10) 
    plt.show() 

获得的错误是Supplied函数不返回有效的float。但是我可以打印数值并使用该功能,所以我不知道究竟是什么问题。

预先感谢您。

Bernat。

+0

报告有关错误时,你需要包括回溯。您还需要包含[mcve]。在这里,我们错过了chi2函数。然而,这个功能以及你如何称之为问题的根源。 – ImportanceOfBeingErnest

回答

0

只要没有可验证的代码是在给定的问题,这里是一个有效的解决方案:

import numpy as np 
import matplotlib.pyplot as plt 

chi2 = lambda x,y: 2*(np.sin(x*4)+1)*np.sin(np.sqrt(y*4)+x) 

x = np.arange(-2,2,0.02) 
y = np.arange(0,1.5,0.02) 

X,Y= np.meshgrid(x,y) 

Z = chi2(X,Y) 

plt.figure() 
CS = plt.contour(X,Y,Z, [2.3]) 
plt.clabel(CS,inline=True, fontsize=10) 
plt.show() 

enter image description here

+0

谢谢,我发现了错误。用你的例子,我可以看到问题是我的功能,而不是轮廓图本身。谢谢! – Brny