2016-10-27 2 views
0

Ich verwende den folgenden Code, um eine Funktion von zwei Variablen wie folgt aussiehtPython: Warum erscheinen Diagramme von Funktionen mit zwei Variablen falsch?

import numpy as np 
from mpl_toolkits.mplot3d import Axes3D 
from pylab import meshgrid 
import matplotlib.pyplot as plt 
x = np.arange(0,1.0,0.01) 
y = np.arange(0,1.0,0.01) 
X,Y = meshgrid(x, y) 
Z = np.sin(2*np.abs(X-0.3)+2*np.sin(5*Y)) 
fig = plt.figure() 
ax = fig.gca(projection='3d') 
ax.plot_surface(X, Y, Z) 
plt.show() 

Das Ergebnis zu plotten: enter image description here

Was diese Linien sind, die von aus der Oberfläche stoßen kommt? Sie sind nicht in meinen Daten. Wenn Sie die Auflösung auf 0,001 ändern, werden sie zwar korrigiert, aber das Plotten wird dadurch sehr langsam.

+1

Was sind deine Werte für Z? – DavidG

+0

Ich habe den Code erstellt, um einen MWE zu erstellen – Bananach

Antwort

1

Standardmäßig ignoriert ax.plot_surface einige der Daten. Das Problem ist, dass es diese Daten nicht ignoriert, um die schwarzen Linien zu zeichnen. Daher basieren die schwarzen Linien auf anderen Daten als die verbindenden blauen Flecken. ist

ax.plot_surface(X, Y, Z,cstride=1,rstride=1) 

Es ist mir nicht klar, was die Idee hinter den Standardeinstellungen:

Dies kann, indem optionale Argumente gedreht werden. Ich wäre glücklich, erleuchtet zu sein.

+0

Es ist wahrscheinlich ein Leistungsproblem, so dass Sie ungefähr sehen können, was Sie erhalten werden, bevor Sie nach der endgültigen "HD" -Version fragen. – berna1111

Verwandte Themen