как пометить ось х более 8 точек в полярной Pyplot - PullRequest
1 голос
/ 08 октября 2019

Я хочу отметить свой график как 24 часа, и мне нужно отмечать каждый час. Я попробовал следующий код, но сюжет делится только на 8 и помечается только до 7.

theta = np.arange(0, 360 + 360 / 144, 360 / 144) * np.pi / 180
fig1 = plt.figure()
ax1 = fig1.add_axes([0.1, 0.1, 0.8, 0.8], polar=True)
ax1.set_ylim(0, 4000)
ax1.set_yticks(device_dict[name])
ax1.set_xticklabels(range(24))
ax1.plot(theta, inter_data)

как мне сделать так, чтобы все 24

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Вы можете сделать что-то вроде:

import numpy as np
import matplotlib.pyplot as plt


theta = np.arange(0, 360 + 360 / 144, 360 / 144) * np.pi / 180
fig1 = plt.figure()
ax1 = fig1.add_axes([0.1, 0.1, 0.8, 0.8], polar=True)
ax1.set_xticks(np.pi/12. * np.linspace(0, 24, 24, endpoint=False))
ax1.set_xticklabels([0] + list(range(1, 24))[::-1])
ax1.set_theta_zero_location('N')
plt.show()

Чтобы получить следующее: polar-plot

1 голос
/ 08 октября 2019

Вы можете установить все от 0 до 2 * np.pi, например:

fig1 = plt.figure()
ax1 = fig1.add_axes([0.1, 0.1, 0.8, 0.8], polar=True)   
ax1.set_xlim((0,2*np.pi))
tick_array=np.arange(0,2*np.pi+2*np.pi/24,2*np.pi/24)
label_array=np.arange(1,25)
ax1.set_xticks(tick_array)
ax1.set_xticklabels(label_array)

Это то, что вы имели в виду?

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