Я пытаюсь построить данные по часовой стрелке с использованием matplotlib в Python в стиле this answer. Я заметил странное поведение при построении моих данных; точки данных имели правильное значение y, но не отображались с правильными значениями x, то есть раз. Сначала я подумал, что мои данные ошибочны, но после воссоздания моей проблемы со следующим рабочим примером я пришел к выводу, что ошибка должна быть где-то в другом месте.Python полярный часовой график с matplotlib
import numpy as np
import matplotlib.pyplot as plt
ax = plt.subplot(111, polar=True)
equals = np.linspace(0, 360, 24, endpoint=False) #np.arange(24)
ones = np.ones(24)
ax.scatter(equals, ones)
# Set the circumference labels
ax.set_xticks(np.linspace(0, 2*np.pi, 24, endpoint=False))
ax.set_xticklabels(range(24))
# Make the labels go clockwise
ax.set_theta_direction(-1)
# Place 0 at the top
ax.set_theta_offset(np.pi/2.0)
plt.show()
Это приводит к следующему сюжету:
я ожидал бы, что значения х точек выстраиваться с часами, принимая во внимание определение equals
. В настоящее время он определяется как угол, но я также попытался определить его как час. Почему это не так, и как я могу получить мои данные в соответствии с соответствующим временем?
Спасибо, это решило мою проблему! Для тех, кто заинтересован, чтобы преобразовать время от 24-часового до лучистого, просто умножьте время на 15, чтобы получить степень, а затем преобразовать его в радианы (хотя, безусловно, есть более прямолинейное решение). 'lambda t: np.deg2rad (t * 15)' – Alarik