2014-11-13 12 views
12

Ich habe den folgenden Beispielcode:Drehen theta = 0 auf matplotlib Polarplot

import numpy as np 
import matplotlib.pyplot as plt 
import random 

data_theta = range(10,171,10) 

data_theta_rad = [] 
for i in data_theta: 
    data_theta_rad.append(float(i)*np.pi/180.0) 

data_r = random.sample(range(70, 90), 17) 

print data_theta 
print data_r 

ax = plt.subplot(111, polar=True) 
ax.plot(data_theta_rad, data_r, color='r', linewidth=3) 
ax.set_rmax(95) 
# ax.set_rmin(70.0) 
ax.grid(True) 

ax.set_title("Example", va='bottom') 
plt.show() 

..., die so etwas wie dies erzeugt: enter image description here

... aber ich möchte Theta einstellen = 0 zum "Westen". So etwas wie:

enter image description here

Irgendwelche Ideen, wie dies mit matplotlib zu tun (ich habe das Bild unten in Powerpoint)?

+2

Eine kleine Randnotiz: 'numpy' bietet praktische Funktionen für Winkelumrechnungen:' data_theta_rad = np.radians (data_theta) ' – hitzg

Antwort

13

einfach verwenden:

ax.set_theta_zero_location("W") 

Mehr Informationen im documentation von matplotlib.

+0

i erhalten: Attribute: 'PolarAxesSubplot' Objekt hat kein Attribut 'set_theta_zero_location' ... vielleicht mein Modul ist nicht auf dem neuesten Stand? – HotDogCannon

+0

Welche Version von Matplotlib verwenden Sie? Sie müssen möglicherweise aktualisieren, ich benutze 1.3.1 und es funktioniert gut. – hitzg

+0

Ich bin ein wenig peinlich zu sagen, aber ich weiß nicht, wie man das heraus findet – HotDogCannon

6

Eine flexiblere Art und Weise:

ax.set_theta_offset(pi)

Sie willkürlich die Achse drehen kann, ersetzen Sie einfach pi mit dem gewünschten Winkel.