python中画极坐标图——以GNSS卫星空天图为例
这个代码主要是我同门写的,我在这里整理一下。
import math import matplotlib.pyplot as plt ax = plt.subplot(111, projection='polar') # projection='polar'-->设为极坐标 ax.set_theta_direction(-1) #设置极坐标方向:-1->顺时针;1->逆时针 ax.set_theta_zero_location('N') #设置极角初始值位置(默认是东-->右侧) ax.yaxis.set_label_position('right') ax.tick_params('y', labelleft=False) #不显示极径刻度值 ax.grid(linestyle = '--') #设置线型 labels = ['N', '45°', 'E', '135°', 'S', '225°', 'W', '315°'] ax.set_thetagrids(range(0, 360, 45), labels, fontweight='semibold') #设置极角显示的刻度值
# SATAZ:卫星的方位角, SATEL:卫星的高度角 c = ax.scatter(SATAZ,SATEL, marker=".",alpha=0.75) #用来画散点图,marker-->控制点的形状, alpha-->控制透明度(0-1) SATAZ = [0,0,0,0,0,0] #卫星的空天图和极径方向正好相反,所以刻度值是自己画的 SATEL = [0,15,30,45,60,75] SATID = ['90', '75', '60', '45', '30', '15'] for i in range(0, 6): ax.text(SATAZ[i], SATEL[i], SATID[i]) #画极径刻度值(方法有点low) ax.set_rticks(range(0, 105, 15)) #极坐标标签显示范围 plt.show()