如何在Windrose.py?

时间:2016-06-10 14:44:39

标签: python matplotlib qgis

我发现this模块效果很好,我喜欢输出。 我试图改变随机输入的值,这里:

ws = random(500)*6
wd = random(500)*360

this reference我们了解到

  

此示例使用风速和方向的随机数值(ws和wd变量)。在这种情况下,这些变量从数据库或直接从文本文件加载实数值(1-D数组)(请参阅matplotlib.pylab接口中的“load”工具)。

通过我的代码,我创建了两个列表:

angles = [v1, v2, v3...] # values that replace wd
length = [v1, v2, v3...] # values that replace ws

这些是我迄今为止尝试过的方法:

wd=np.array(angles)
wx=np.array(length)

wd=np.asarray(angles)
...
wd=np.fromiter(angles)
...
All give the error : TypeError: 'list' object is not callable

确定我确实有数组:

a = np.array(angles)
print type(a)
<type 'numpy.ndarray'>
print a.ndim
1

我还尝试直接替换线程here.中的值,结果相同(列表不可调用) 所以我用给定的数组替换random(),但Qgis仍然返回一个&#39;列表&#39;错误。
我错过了什么?

1 个答案:

答案 0 :(得分:1)

尝试此示例并检查列表angleslength中的值,它们必须是浮点数或整数:

from windrose import WindroseAxes
from matplotlib import pyplot as plt
import matplotlib.cm as cm
from numpy.random import random
from numpy import arange, array

angles = [10.,20,40.,100.]
length = [1.,2.,3.,10]

ws = array(length)
wd = array(angles)

fig = plt.figure(figsize=(8, 8), dpi=80, facecolor='w', edgecolor='w')
rect = [0.1, 0.1, 0.8, 0.8]
ax = WindroseAxes(fig, rect, axisbg='w')
fig.add_axes(ax)

ax.bar(wd, ws, normed=True, opening=0.8, edgecolor='white')
plt.show()

enter image description here