【问题标题】:Rotate theta=0 on matplotlib polar plot在 matplotlib 极坐标图上旋转 theta=0
【发布时间】:2014-11-13 10:22:32
【问题描述】:

我有以下示例代码:

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

...产生如下内容:

...但我想将 theta=0 设置为“西方”。所以像:

任何想法如何使用 matplotlib 做到这一点(我在 powerpoint 中制作了下面的图片)?

【问题讨论】:

  • 附注:numpy 提供方便的角度转换功能:data_theta_rad = np.radians(data_theta)

标签: python matplotlib plot


【解决方案1】:

简单使用:

ax.set_theta_zero_location("W")

更多信息在 matplotlib 的 documentation 中。

【讨论】:

  • 我得到:AttributeError: 'PolarAxesSubplot' 对象没有属性 'set_theta_zero_location'...可能我的模块不是最新的???
  • 您使用的是什么版本的 matplotlib?您可能需要更新,我使用的是 1.3.1,它工作正常。
  • 我有点不好意思说,但我不知道如何找到这个
【解决方案2】:

更灵活的方式:

ax.set_theta_offset(pi)

你可以任意旋转轴,把pi换成你想要的角度即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    相关资源
    最近更新 更多