Ich würde gerne ein 3D-Konturdiagramm mit Mayavi machen, genau wie die dritte Abbildung auf dieser Seite (ein Wasserstoffelektronenwolkenmodell):
Ich habe eine Reihe von Datenpunkten, die ich mit meinem eigenen Modell erstellt habe, das ich gerne verwenden würde. Die Datenpunkte werden wie folgt in einem mehrdimensionalen Nummernfeld gespeichert:
%Vor%Die Datenpunkte sind im XYZ-Raum nicht gleichmäßig verteilt und werden nicht in einer bestimmten Reihenfolge gespeichert. Ich denke, dass das Beispiel ein Meshgrid verwendet, um die Datenpunkte zu generieren - ich habe es nachgeschlagen, verstehe es aber überhaupt nicht. Jede Hilfe würde sehr geschätzt werden?
H http://www.sethanil.com/ _ / rsrc / 1267943775903 / Python-für-Forschung / 5 / Article5-fig3.png
Der Trick besteht darin, vor dem Plotten über ein Gitter zu interpolieren - ich würde dafür scipy
verwenden. Unter R
ist ein (500,3) Array von XYZ-Werten und V
ist die "Größe" an jedem XYZ-Punkt.
Von hier aus ist es ein Kinderspiel, unsere Daten anzuzeigen:
%Vor%Das ergibt einen schönen (klumpigen) Gaussian.
Sehen Sie sich die Dokumentation für Rasterdaten an Sie können die Interpolationsmethode ändern. Wenn Sie mehr Punkte haben (sowohl im interpolierten Raster als auch im Datensatz), wird die Interpolation besser und besser für die zugrunde liegende Funktion, die Sie veranschaulichen möchten. Hier ist das obige Beispiel bei 10K Punkten und einem feineren Raster: