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)