Python 极坐标图农业标签

Python 极坐标图农业标签,python,matplotlib,Python,Matplotlib,我试图用下面的脚本画一个极坐标图。我想让农业标签的角度和网格线对齐。(如图所示) 我已经根据汤姆的回答修改了密码。绘图左半部分的标签似乎是颠倒的 from pylab import * fig = figure() rc('grid', color='r', linewidth=0.5, linestyle='-') data1 = loadtxt("1.dat") ax = plt.subplot(111,polar=True) x= data1[:,0] y= data1[:,1] plt.

我试图用下面的脚本画一个极坐标图。我想让农业标签的角度和网格线对齐。(如图所示)

我已经根据汤姆的回答修改了密码。绘图左半部分的标签似乎是颠倒的

from pylab import *
fig = figure()
rc('grid', color='r', linewidth=0.5, linestyle='-')
data1 = loadtxt("1.dat")
ax = plt.subplot(111,polar=True)
x= data1[:,0]
y= data1[:,1]
plt.scatter(x,y, s=0.1,color='r' )
gl, gt = ax.set_rgrids(range(10,81,10))
for l in gl: l.set_ls('') 
(lines,labels)=thetagrids( range(0,360,18), ("AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH", "II", "KK", "LL","MM","NN","OO","PP","QQ","RR","SS","TT","UU","VV"))
for label,angle in zip(labels,range(0,360,18)):
    label.set_rotation(90-angle)
    ax.set_theta_offset(np.pi/2.0)
    ax.set_theta_direction(-1)
    ax.set_yticklabels([])
    show()

设置标签后,可以设置标签的角度。您需要将其设置为
90角度
。如果保留从标签中返回的
标签
,则可以在标签上循环并使用
标签。设置旋转

(lines,labels) = thetagrids( range(0,360,18), ("XXXXX","YYYYY","ZZZZ","PPPP"))

for label,angle in zip(labels,range(0,360,18)):
    label.set_rotation(90-angle)

编辑

至于你的问题。如果角度大于180,则可以使用
270角度
。比如:

for label,angle in zip(labels,range(0,360,18)):
    if angle <= 180:
         label.set_rotation(90-angle)
    else:
         label.set_rotation(270-angle)

这个建议非常有效。但是,我想为标签添加填充。我尝试了紧密布局()但没有成功..请参阅我的编辑,它解决了您编辑的问题谢谢tom!对于其他条件,270角效果更好。
(lines,labels)=thetagrids(range(0,360,18), 
                          ("AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH", "II", "KK", "LL","MM","NN","OO","PP","QQ","RR","SS","TT","UU","VV"),
                          frac=1.2)