2014-11-13 30 views
12

Tôi có đoạn code ví dụ sau:Xoay theta = 0 trên cốt truyện cực matplotlib

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() 

... trong đó sản xuất một cái gì đó như thế này: enter image description here

... nhưng tôi muốn thiết theta = 0 đến 'Tây'. Vì vậy, một cái gì đó như:

enter image description here

ý tưởng Bất kỳ làm thế nào để làm điều này với matplotlib (tôi đã pic dưới đây trong powerpoint)?

+2

Lưu ý nhỏ: 'numpy' cung cấp các chức năng tiện dụng cho các chuyển đổi góc:' data_theta_rad = np.radians (data_theta) ' – hitzg

Trả lời

13

Đơn giản chỉ cần sử dụng:

ax.set_theta_zero_location("W") 

Thông tin thêm trong documentation của matplotlib.

+0

tôi nhận được: AttributeError: đối tượng 'PolarAxesSubplot' không có thuộc tính 'set_theta_zero_location' ... có thể là mô đun của tôi không cập nhật ??? – HotDogCannon

+0

Whats phiên bản của matplotlib bạn đang sử dụng? Bạn có thể phải cập nhật, tôi đang sử dụng 1.3.1 và nó hoạt động tốt. – hitzg

+0

Tôi hơi bối rối khi nói, nhưng tôi không biết làm thế nào để tìm ra điều này – HotDogCannon

6

Một cách linh hoạt hơn:

ax.set_theta_offset(pi)

Bạn có thể xoay trục tùy tiện, chỉ cần thay thế pi với góc mà bạn muốn.

Các vấn đề liên quan