2017-03-22 1 views
-2

Ich stehe mit dem folgenden Problem fest;Konturplots mit einer Funktion

Ich muss ein Konturdiagramm einer Funktion von zwei Variablen Chi2 (X, Y) in einem bestimmten Punkt (Chi = 2,3) tun. Ich habe viele Möglichkeiten ausprobiert, aber ich weiß immer noch nicht, wie ich es machen soll. Zum Beispiel, ich habe folgende getan:

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() 

Der Fehler erhalten ist, dass die bereitgestellte Funktion keinen gültigen Schwimmer zurück. Aber ich kann Werte drucken und mit dieser Funktion arbeiten, also weiß ich nicht, was genau das Problem ist.

Vielen Dank im Voraus.

Bernat.

+0

Wenn über einen Fehler melden, müssen Sie die Zurückverfolgungs aufzunehmen. Sie müssen auch ein [mcve] einschließen. Hier vermissen wir die Chi2-Funktion. Allerdings ist diese Funktion, zusammen mit dem, wie Sie es nennen, die Ursache des Problems. – ImportanceOfBeingErnest

Antwort

0

Solange kein überprüfbarer Code in der Frage gegeben wird, ist hier eine Arbeitslösung:

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

Danke, ich habe den Fehler gefunden. Mit Ihrem Beispiel konnte ich sehen, dass das Problem meine Funktion und nicht das Konturdiagramm selbst war. Vielen Dank! – Brny