Python 从值列表打印极坐标图
我有一个以度为单位的值列表。这些值可以在0到360度之间Python 从值列表打印极坐标图,python,string,list,plot,Python,String,List,Plot,我有一个以度为单位的值列表。这些值可以在0到360度之间 values = ['150', '140', '120', '130', '130'...] 每个值都是一个字符串 我想在极坐标图中绘制数值,以显示不同的风向。我在绘图时遇到问题,因为我发现值是字符串。是否必须将列表中的每个值转换为浮点值,或者是否可以使用值作为字符串进行打印 我试图按照这个例子,但这是一个数组。我想用一个带有字符串值的列表: import numpy as np import matplotlib.pyplot as
values = ['150', '140', '120', '130', '130'...]
每个值都是一个字符串
我想在极坐标图中绘制数值,以显示不同的风向。我在绘图时遇到问题,因为我发现值是字符串。是否必须将列表中的每个值转换为浮点值,或者是否可以使用值作为字符串进行打印
我试图按照这个例子,但这是一个数组。我想用一个带有字符串值的列表:
import numpy as np
import matplotlib.pyplot as plt
a = np.array([10,10,0,0,0,68,90,90,248,240,360])
theta = np.linspace(0.0,2*np.pi, 36, endpoint=False)
arad = a*np.pi/180
hist, bins = np.histogram(a,bins=36)
ax = plt.subplot(111,polar = True)
bars = ax.bar(theta, hist)
for r, bar in zip(hist, bars):
bar.set_facecolor(plt.cm.jet(r/10.))
bar.set_alpha(0.5)
plt.show()
允许您将字符串转换为浮点数:
values = ['150', '140', '120', '130', '130']
a = np.array(values, dtype=float)
或者,更简洁地说
a = np.array(['150', '140', '120', '130', '130'], float)
注意:您需要为
np.histogram()
指定一个范围
参数:
将值强制转换为浮动是否存在问题?是的,必须使值浮动;您希望matplotlib如何解释字符串?您可以使用
map(float,values)
轻松转换。
hist, bins = np.histogram(a,range=(0, 360), bins=36)