ich bin neu hier im Forum und auch in Sachen Python. Aufgrund meiner Abschlussarbeit habe ich mich (so gut es in der kurzen Zeit ging) in die Sprache eingearbeitet, dennoch hapert es oft an Kleinigkeiten. Ich bin mir sicher, dass das nicht mein einziger Post bleiben wird Trotz Benutzen der Suchfunktion konnte ich bisher keine Lösung finden, daher hoffe ich, dass ihr mir auf die Sprünge helfen könnt. Ich habe bisher folgenden Code erstellt:
Code: Alles auswählen
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from math import *
from scipy.special import *
import matplotlib.pyplot as plt
import numpy as np
## Definition der Parameter für Druckgleichung nach Rudnicki (1986) ##
q = 6.0/1000
lameu = 11.2*10**9
lame = 8.4*10**9
pi
alpha = 0.65
G = 8.4*10**9
k = 1.0e-15
eta = 0.001
t = 1000*365*24600
kappa = k/eta
print "kappa ist:",kappa
c = ((kappa*(lameu-lame)*(lame+2*G))/((alpha**2)*(lameu+2*G)))
print "c ist:",c
xmin = -10
xmax = 10
ymin = -10
ymax = 10
for x in range (xmin,xmax):
for y in range (ymin,ymax):
r=sqrt(x**2+y**2)
P=(q/(rhof*4*pi*kappa))*(expn(1,r**2/(4*c*t)))
z = P/1e6
print x, y, z
x, y = np.meshgrid(x, y)
## Plotting in 3D ##
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=cm.jet, linewidth=0,
antialiased=False, vmin=np.nanmin(z), vmax=np.nanmax(z))
fig.colorbar(surf, shrink=0.5, aspect=5)
## Achsenskalen ##
ax.set_xlim(xmin,xmax) # x-Achsenskala vorgeben
ax.set_ylim(ymin,ymax) # y-Achsenskala vorgeben
## Beschriftung der Achsen ##
ax.set_title('Druckverteilung')
ax.set_xlabel('Distanz zu Well [m]')
ax.set_ylabel('Distanz zu Well [m]')
ax.set_zlabel('Druck in [MPa]')
plt.show()
- habe ich die for-Schleife richtig benutzt? Soweit ich weiß, muss man teilweise statt P z.B. P[x,y] coden, um eine Abhängigkeit dieser Werte zu definieren? Kann mir da jemand ein Beispiel geben?
- was muss ich tun, damit ich meinen 3D-Plot vernünftig hinbekomme? Mittels numpy und np.arange habe ich da bisher erfolg gehabt, aber hier stehe ich auf dem Schlauch. Muss ich vorher leere Felder à la np.zeros erzeugen? Oder gehören die gar nicht hierher? Auch hier wäre ein kurzes Beispiel echt klasse.
So, ein langer erster Post. Diese Fragen habe ich zudem bereits auf stackoverflow.com gestellt, die Antwort (nur Bahnhof verstanden) aber leider aufgrund meiner geringen Kenntnisse nicht nachvollziehen können. Hoffe auf Verständnis und Hilfe
Grüße
Alex
P.S: falls jemand nachschauen möchte, hier der Originalpost: http://stackoverflow.com/questions/2721 ... nge-python