我有一个以度为单位的值列表。值可以在0到360度之间。
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()
答案 0 :(得分:0)
允许numpy.array()
将字符串转换为浮点数:
values = ['150', '140', '120', '130', '130']
a = np.array(values, dtype=float)
或者,更加简洁
a = np.array(['150', '140', '120', '130', '130'], float)
P.s。:您需要为range
指定np.histogram()
参数:
hist, bins = np.histogram(a,range=(0, 360), bins=36)