隐藏径向刻度标签matplotlib

时间:2016-11-28 20:28:07

标签: python matplotlib plot

我正在尝试使用此代码绘制极坐标图:

import numpy as np
import matplotlib.pylab as plt
def power(angle, l, lam):
    return 1/(lam) * ((np.cos(np.pi*l*np.cos(angle)/lam) - np.cos(np.pi*l/lam))/np.sin(angle))**2
fig = plt.figure(1)
ax = fig.add_subplot(111, projection='polar')
theta = np.linspace(0.001, 2*np.pi, 100)
P1 = power(theta, 1, 5)
ax.plot(theta, P1, color='r', linewidth=3)
plt.savefig('1.png')

我得到了这个情节:

enter image description here

我想改变两件事。第一个也是更重要的一个是隐藏径向刻度标签(我只想展示绘图的一般形式)。

如果可能,如何选择垂直轴对应0°?

感谢您的帮助。

2 个答案:

答案 0 :(得分:7)

您可以使用set_yticklabels()删除径向刻度线,使用set_theta_zero_location()更改零位置:

fig = plt.figure(1)
ax = fig.add_subplot(111, projection='polar')
ax.plot(theta, P1, color='r', linewidth=3)
ax.set_yticklabels([])
ax.set_theta_zero_location('N')
plt.show()

您可能还想更改方位角轴的方向:

ax.set_theta_direction(-1)

答案 1 :(得分:1)

您可以使用ax.set_theta_zero_location('N')设置theta零位置。

要修改r刻度标签,您可以执行类似

的操作
for r_label in ax.get_yticklabels():
    r_label.set_text('')

如果您想完全删除它们,请执行ax.set_yticklabels([])

the PolarAxes documentation可以找到更多方法。