从值列表绘制极坐标图

时间:2014-03-14 10:46:16

标签: python string list plot

我有一个以度为单位的值列表。值可以在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()

1 个答案:

答案 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)