Полярная гистограмма - без ошибок, но не имеет смысла - PullRequest
1 голос
/ 10 июля 2019

Я не получаю никаких ошибок, но гистограмма не имеет смысла.Бары не центрированы вообще.Вот оно:

![https://i.imgur.com/CYAWqOM.png] 1

Некоторое время назад я делал что-то подобное, но гистограмма была почти полной.С тех пор стало еще хуже.Вот оно:
![https://i.imgur.com/LEkRz27.png] 2

Я пытался поиграть с «width», «bottom» и «align», но этоничего не решил.

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

Theta = np.linspace(0.0, 2.0*np.pi, 12)
Dim = [2.31330, 2.32173, 2.32841, 2.32068, 2.31452, 2.30792, 2.31313, 2.31847, 2.31910, 2.31516, 2.30617, 2.30408]
width = (2*np.pi) / 13

ax1 = plt.subplot(111, polar=True)
bars = ax1.bar(Theta, Dim, color='b', width=width, bottom = 0.0, edgecolor = 'k', align = 'edge')
ax1.set_ylim(2.31000, 2.33000)
ax1.set_yticks(np.linspace(2.31000, 2.33000, 5))
ax1.set_rlabel_position(180)
ax1.set_theta_zero_location("N")
ax1.set_theta_direction(-1)

plt.show()

По сути, мне просто нужно, чтобы столбики встречались в 0.0 и выглядели как столбцы, а не это.Что бы это ни было.

1 Ответ

1 голос
/ 10 июля 2019

График не начинается с 0, но столбцы будут; поэтому они отрезаны. Вы можете позволить барам начинаться с середины графика, установив аргумент bar s bottom.

import matplotlib.pyplot as plt
import numpy as np

Theta = np.linspace(0.0, 2.0*np.pi, 12)
Dim = np.array([2.31330, 2.32173, 2.32841, 2.32068, 2.31452, 2.30792, 2.31313, 
                2.31847, 2.31910, 2.31516, 2.30617, 2.30408])
width = (2*np.pi) / 13
origin = 2.31

ax1 = plt.subplot(111, polar=True)

bars = ax1.bar(Theta, Dim-origin, color='b', width=width, bottom = origin, 
               edgecolor = 'k', align = 'edge')
ax1.set_ylim(origin, 2.33000)
ax1.set_yticks(np.linspace(2.31000, 2.33000, 5))
ax1.set_rlabel_position(180)
ax1.set_theta_zero_location("N")
ax1.set_theta_direction(-1)

plt.show()

enter image description here

...