Python中绘制带指向角度的天线坐标三角形标记
实现带波束指向的天线三角形标记(Matplotlib)
你需要为每个天线绘制独立的三角形标记,且三角形头部指向对应的波束角度,可以通过Matplotlib的scatter函数结合旋转参数实现,具体步骤如下:
原始数据
import pandas as pd df = pd.DataFrame({ 'Antenna': ['A', 'B', 'C', 'D'], 'Latitude': [19.25, 19.25, 19.29, 19.29], 'Longitude': [7.21, 7.21, 7.29, 7.29], 'Angle': [170, 350, 240, 300] })
修正后的实现代码
import matplotlib.pyplot as plt fig, ax = plt.subplots(figsize=(8, 6)) # 遍历每条天线数据,绘制带方向的三角形 for _, row in df.iterrows(): # 核心:通过rotation参数调整三角形指向,适配地理方位角 ax.scatter( row['Latitude'], row['Longitude'], marker='^', # 三角形标记 s=200, # 标记大小 rotation=-row['Angle'], # 角度转换:地理顺时针方位角转Matplotlib逆时针旋转 label=row['Antenna'] ) ax.set_xlabel('纬度') ax.set_ylabel('经度') ax.legend(title='天线编号') plt.grid(alpha=0.3) plt.show()
关键说明
- 角度转换:天线波束角度通常是从正北顺时针计算的方位角,而Matplotlib的
rotation参数是让标记逆时针旋转,因此用-row['Angle']来匹配方向。如果你的角度定义不同(比如从x轴正方向逆时针计算),需要调整转换公式。 - 独立标记:通过遍历DataFrame的每一行,为每个天线单独绘制标记,避免同坐标点的标记重叠覆盖。
- 图例优化:每个天线单独标注,更清晰区分不同波束指向。
内容的提问来源于stack exchange,提问作者EngGu
相关产品推荐
相关产品推荐

