Polarkonturdiagramm in Matplotlib - beste (moderne) Art, es zu tun?

Update: ich habe ein full write-up, wie ich es gefunden, dies zu tun auf meinem blog unter http://blog.rtwilson.com/producing-polar-contour-plots-with-matplotlib/ - Sie möchten möglicherweise überprüfen Sie es zuerst.

Ich versuche, ein polar-plot contour plot in matplotlib. Ich habe gefunden, verschiedene Ressourcen auf dem internet, (a) ich kann nicht scheinen, um meinen code zu arbeiten, und (b) viele der Ressourcen scheinen ziemlich alt, und ich Frage mich, ob es gibt ein besserer Weg jetzt. Zum Beispiel, http://www.mail-archive.com/[email protected]/msg01953.html deutet darauf hin, dass etwas getan werden kann, um Dinge zu verbessern bald, und das war im Jahr 2006!

Ich würde gerne in der Lage sein, um Handlung ordnungsgemäße polar Kontur-plots - wie pcolor können Sie tun, für seine Art des Grundstücks (siehe auskommentierten Abschnitt unten), aber ich kann nicht scheinen zu finden, irgendeine Möglichkeit, das zu tun, so bin ich der Konvertierung in kartesische Koordinaten erste.

Sowieso, ich habe den code, der folgt:

from pylab import *
import numpy as np

azimuths = np.arange(0, 360, 10)
zeniths = np.arange(0, 70, 10)
values = []

for azimuth in azimuths:
  for zenith in zeniths:
    print "%i %i" % (azimuth, zenith)
    # Run some sort of model and get some output
    # We'll just use rand for this example
    values.append(rand())

theta = np.radians(azimuths)

values = np.array(values)
values = values.reshape(len(zeniths), len(azimuths))

# This (from http://old.nabble.com/2D-polar-surface-plot-td28896848.html)
# works fine
##############
# Create a polar axes
# ax = subplot(111, projection='polar')
# pcolor plot onto it
# c = ax.pcolor(theta, zeniths, values)
# show()

r, t = np.meshgrid(zeniths, azimuths)

x = r*np.cos(t)
y = r*np.sin(t)

contour(x, y, values)

Wenn ich Laufe, bekomme ich eine Fehlermeldung TypeError: Inputs x and y must be 1D or 2D.. Ich bin mir nicht sicher, warum ich diese bekommen, da x und y beide sind 2D. Mache ich etwas falsch?

Es scheint auch ziemlich klobig zu sein, dass meine Werte wieder aus meinem Modell in eine Liste und dann Umformen. Gibt es einen besseren Weg, dies zu tun?

InformationsquelleAutor der Frage robintw | 2012-01-30

Schreibe einen Kommentar