在 python 中绘制方位角(圆周度数)与时间(距中心的距离)的圆形图

Making a circular plot of azimuth (degrees on circumfrance) vs time (distance from centre) in python

使用python,我想根据方位角(度)绘制一系列时间(例如秒),以便方位角显示在顶部的圆周周围(North/0Deg/360Deg) , 时间是从中心到圆周测量的。我附上了我的目标草图。

我的数据存储为 numpy 数组。例如下图(大致对应图):

time = np.array([4 ,5 ,6, 7, 10])
print(time)
[ 4 5 6 7 10]

azi = np.array([70 ,100 ,120, 150, 170])
print(azi)
[ 70 100 120 150 170]

要绘制圆圈,请使用极坐标图。角度应转换为弧度。使用set_theta_zero_location,起点可以移动(默认在右边)。 set_theta_direction(-1) 使角度顺时针旋转。

import numpy as np
import matplotlib.pyplot as plt

time = np.array([4 ,5 ,6, 7, 10])
azi = np.array([70 ,100 ,120, 150, 170])

ax = plt.subplot(111, projection='polar')
ax.plot(azi*np.pi/180, time, color='black', marker='D', markerfacecolor='limegreen')
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1) # clockwise
ax.grid(True)

# ax.set_ylabel('Time', color='crimson')
ax.tick_params(axis='y', colors='crimson')

plt.show()