Ich habe Daten im X-, Y-, Z-Format, wo alle 1D-Arrays sind, und Z ist die Amplitude der Messung an der Koordinate (X, Y). Ich möchte diese Daten als Kontur- oder 'Imshow'-Diagramm darstellen, wobei die Konturen / Farbe den Wert Z (Amplitude) darstellen.
Das Gitter für Messungen und das X- und Y-Aussehen sind unregelmäßig angeordnet.
Vielen Dank,
len (X) = 100
len (Y) = 100
len (Z) = 100
(Quellcode am Ende ...)
Hier ist ein bisschen Augenschmaus, das ich produziert habe, als ich damit herumgespielt habe. Es untersucht die Tatsache, dass eine lineare Transformation eines Meshgrids immer noch ein Meshgrid ist. I.e. Auf der linken Seite aller meiner Diagramme arbeite ich mit X- und Y-Koordinaten für eine 2-d (Eingabe) -Funktion. Auf der rechten Seite möchte ich mit (AVG (X, Y), Y-X) Koordinaten für die gleiche Funktion arbeiten.
Ich spielte mit Meshgrids in nativen Koordinaten und transformierte sie in Meshgrids für die anderen Koordinaten. Funktioniert gut, wenn die Transformation linear ist.
Für die beiden unteren Diagramme habe ich mit Zufallsstichproben gearbeitet, um Ihre Frage direkt anzusprechen.
Hier sind die Bilder mit setlims=False
:
Und das gleiche mit setlims=True
:
Egal, ob sie unregelmäßig verteilt sind, Kontur- und 3D-Plots erfordern ein Meshgrid.
Nun, wenn Sie bereit sind, von Python in seinen Konkurrenten R abzuweichen, habe ich gerade ein Paket an CRAN geschickt (sollte morgen oder am nächsten Tag verfügbar sein), das Konturen auf nicht regulären Gittern durchführt - das Folgende kann in ein paar Zeilen Code erreicht werden:
%Vor%Was folgendes bewirkt:
Wenn Sie ein regelmäßigeres Gitter wünschen und sich ein bisschen mehr Rechenzeit leisten können:
%Vor%Die unscharfen Kanten in den oben genannten, ich weiß, wie zu lösen und sollte für die nächste Version der Software behoben werden ....