Почему мой аргумент степени ведет себя странно? - PullRequest
1 голос
/ 12 марта 2019

Итак, этот код, который я запускаю

#Pass Sonar
import numpy as np
import matplotlib.pyplot as plt

#Entering Data 

# angles of all the passes
theta = [45]

heights = [5]
# length of all the passes


# Getting axes handles/objects
ax1 = plt.subplot(111, polar=True)

# Plot
bars = ax1.bar(theta, heights,
           color='xkcd:orangered',
           #color=plt.cm.jet(heights),
           width=0.1,
           #width=heights,
           bottom=0.0,
           edgecolor='k',
           alpha=0.5,
           label='All Passes>2 mts')
##Main tweaks
# Radius limits
ax1.set_ylim(0, 7.0)
# Radius ticks
ax1.set_yticks(np.linspace(0, 7.0, 8))
# Radius tick position in degrees
ax1.set_rlabel_position(315)
#Angle ticks
ax1.set_xticks(np.linspace(0, 2.0*np.pi, 9)[:-1])


#Additional tweaks
plt.grid(True)
plt.legend()
plt.title("Pass Sonar: Mesut Özil v/s Leicester City - 22.10.2018")

plt.show()

Итак, я использовал 45 в качестве параметра степени, но полоса печатается при 58 градусах?Ввод 90 дает ставит планку на 115-й.Я попытался использовать linspace, и проблема не устранена.Параметр степени в градусах или это что-то еще (радианы)?Если это не проблема, что я делаю не так?That's roughly 57-58 degrees

1 Ответ

2 голосов
/ 12 марта 2019

Вы должны передать углы в радианах.Кроме того, ваш рост составляет всего 5 градусов, что составляет 0,087 радиан.Затем вы устанавливаете свои y-пределы от 0 до 7 радиан.Такая низкая высота не видна в этом масштабе.Поэтому вам нужно либо удалить ax1.set_ylim(0, 7.0) и использовать меньший верхний предел y, например, 0,1.

import numpy as np
import matplotlib.pyplot as plt
import math

# angles of all the passes
theta = [math.radians(45)]

heights = [math.radians(5)]
# length of all the passes

# Getting axes handles/objects
ax1 = plt.subplot(111, polar=True)

# Plot
bars = ax1.bar(theta, heights,
           color='xkcd:orangered',
           #color=plt.cm.jet(heights),
           width=0.1,
           #width=heights,
           bottom=0.0,
           edgecolor='k',
           alpha=0.5,
           label='All Passes>2 mts')
##Main tweaks
# Radius limits
ax1.set_ylim(0, 0.1)
ax1.set_rlabel_position(315)
#Angle ticks
ax1.set_xticks(np.linspace(0, 2.0*np.pi, 9)[:-1])

enter image description here

...