import numpy as np
import pylab as plt
def julia():
# Calculate the Julia set on a grid
x, y = np.mgrid[-1.5:0.5:500j, -1:1:500j]
z = x + 1j*y
julia = np.zeros(z.shape)
for i in range(50):
z = z**2 -0.70176 -0.3842j
julia += 1/float(2+i)*(z*np.conj(z) > 4)
return x,y,julia
if __name__ == '__main__':
x,y,z = julia()
plt.contourf(x,y,z)
plt.show()
Hmm, ich muss meine Aussage von vorhin korrigieren - ich sollte das Problem besser jetzt lösen.
@gkuhl:
Enthält der Quelltext, den du angeführt hast, schon eine Darstellung der Julia-Menge mit entsprechenden Abstufungen der Farben?
Wenn ich ihn ausführe, erhalte ich eine Fehlermeldung, dass es kein Modul "numpy" gibt.
In Matplotlib und MayaVi müsste ich mich erst einarbeiten, ich habe bisher absolut keine Ahnung.
Ist der Umgang damit leicht zu erlernen und bieten die beiden Möglichkeiten, die es lohnenswert für mich machen?
Ich möchte ausgefüllte Julia-Mengen mit farbigen Abstufungen darstellen, außerdem Ränder von Julia-Mengen und Bahnen einzelner Iterationen, evtl. auch über das Bild einer Julia-Menge gelegt.
Wie ich nur den Rand einer Julia-Menge darstellen soll, weiß ich übrigens noch nicht.
Also, eignet sich Matplotlib oder MayaVi besonders dafür?
NumPy ist nicht Teil der Standardbibliothek. Mein Beispiel hat auch Farbabstufungen (colormaps), auch wenn sie in dem Fall vielleicht nicht unbedingt die schönsten sind. Zur 2d Darstellung ist die Matplot Library ein Quasi-Standard, die dir sicherlich einiges an Arbeit abnehmen kann. Schau am besten Mal in die Galerie auf der Matplotlib-Seite. Für 3d wird häufig MayaVi verwendet.
Wenn du mit Python mathematische oder naturwissenschaftliche Probleme lösen willst, ist es auf jeden Fall sinnvoll sich SciPy und NumPy anzuschauen.