如何使我的角度数据以度数形式出现?
How to make the data of my angles appear in a degree form?
我正在用 python 模拟射弹运动,有一件事我需要帮助。当我使用 plt.legend()
显示与每条线对应的角度时(在我的图表的右上角),它们以弧度形式出现。如何将它们转换为角度形式,例如 30 degree
、60 degree
等?
图表:
import numpy as np
import matplotlib.pyplot as plt
import math
#theta=pi/3
V=38.5 #speed
t=np.arange(0,19,0.1)
angle = math.pi/12
angle_list=[]
while angle < math.pi/2:
x=V*np.cos(angle)*t
y=V*np.sin(angle)*t+(0.5*-9.8*t**2)
plt.ylim([0,80])
plt.xlim([0,170])
print(x,y)
plt.plot(x,y)
angle_list.append(angle)
angle+=math.pi/12
plt.xlabel("range")
plt.ylabel("height")
plt.title('Projectile Motion With Multiple Angles')
plt.legend(angle_list)
plt.show()
您可以使用np.rad2deg
或自己做乘法:
angle_list.append(np.rad2deg(angle))
或
angle_list.append(angle * 180.0 / np.pi)
np.rad2deg
等同于 np.degrees
.
您可以通过将角度作为格式化字符串添加到图例来格式化角度。例如,由于您的角度都是 15 度的倍数,因此您不需要任何小数位:
angle_list.append(rf'{np.rad2deg(angle):.0f}$\degree$')
结果:
我正在用 python 模拟射弹运动,有一件事我需要帮助。当我使用 plt.legend()
显示与每条线对应的角度时(在我的图表的右上角),它们以弧度形式出现。如何将它们转换为角度形式,例如 30 degree
、60 degree
等?
图表:
import numpy as np
import matplotlib.pyplot as plt
import math
#theta=pi/3
V=38.5 #speed
t=np.arange(0,19,0.1)
angle = math.pi/12
angle_list=[]
while angle < math.pi/2:
x=V*np.cos(angle)*t
y=V*np.sin(angle)*t+(0.5*-9.8*t**2)
plt.ylim([0,80])
plt.xlim([0,170])
print(x,y)
plt.plot(x,y)
angle_list.append(angle)
angle+=math.pi/12
plt.xlabel("range")
plt.ylabel("height")
plt.title('Projectile Motion With Multiple Angles')
plt.legend(angle_list)
plt.show()
您可以使用np.rad2deg
或自己做乘法:
angle_list.append(np.rad2deg(angle))
或
angle_list.append(angle * 180.0 / np.pi)
np.rad2deg
等同于 np.degrees
.
您可以通过将角度作为格式化字符串添加到图例来格式化角度。例如,由于您的角度都是 15 度的倍数,因此您不需要任何小数位:
angle_list.append(rf'{np.rad2deg(angle):.0f}$\degree$')
结果: