Создание кругового графика азимута (градусы по окружности) в зависимости от времени (расстояние от центра) в python - PullRequest
0 голосов
/ 31 марта 2020

Используя python, я хотел бы построить ряд времен (например, секунд) против азимута (градусов), чтобы азимут отображался по окружности (с севером / 0 град. / 360 град.) Вверху, а время измеряется от центра к окружности. Я включил набросок того, к чему стремлюсь.

Мои данные хранятся в виде массивов 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]

p

1 Ответ

1 голос
/ 31 марта 2020

Чтобы построить по кругу, используйте полярный график. Углы должны быть переведены в радианы. При set_theta_zero_location начальная точка может быть перемещена (по умолчанию справа). set_theta_direction(-1) образует углы go по часовой стрелке.

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()

resulting plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...