Ich habe eine Reihe von Daten, die ich verwenden möchte, um ein Konturdiagramm in Polarkoordinaten mit Matplotlib zu erstellen.
Meine Daten sind die folgenden:
theta
- 1D Array von Winkelwerten radius
- 1D Array von Radiuswerten value
- 1D Array von Werten, die ich für die Konturen verwenden möchte Das sind alles 1D-Arrays, die richtig ausgerichtet sind - zB:
%Vor%Das heißt, alle Werte werden so oft wiederholt, dass jede Zeile dieser "Tabelle" aus drei Variablen einen Punkt definiert.
Wie kann ich aus diesen Werten ein Polarkonturdiagramm erstellen? Ich habe darüber nachgedacht, die Radius- und Theta-Werte in x- und y-Werte umzurechnen und dies in kartesischen Koordinaten zu tun, aber die Kontur-Funktion scheint 2D-Arrays zu benötigen, und ich kann nicht ganz verstehen warum.
Irgendwelche Ideen?
Die Funktion contour()
von Matplotlib erwartet, dass Daten als 2D-Gitter aus Punkten und entsprechendem Gitter mit Werten für jeden dieser Gitterpunkte angeordnet werden. Wenn Ihre Daten in einem Gitter angeordnet sind, können Sie r, Theta in x, y umwandeln und contour(r*np.cos(theta), r*np.sin(theta), values)
verwenden, um Ihre Darstellung zu erstellen.
Wenn Ihre Daten nicht natürlich gerastert sind, sollten Sie dem Rat von Stephen folgen und griddata()
verwenden, um Ihre Daten in ein Raster zu interpolieren.
Das folgende Skript zeigt Beispiele für beide.
%Vor%
Ich weiß nicht, ob es möglich ist, ein Polarkonturdiagramm direkt zu erstellen, aber wenn Sie in kartesische Koordinaten konvertieren, können Sie das griddata
Funktion, um Ihre 1D-Arrays in 2D zu konvertieren.
Tags und Links python matplotlib graphing