Python 根据u、v分量绘制风速和风向图
我试图绘制风速和风向,但有一个错误代码一直告诉我“序列太大;不能大于32”。以下是我使用的代码:Python 根据u、v分量绘制风速和风向图,python,pandas,matplotlib,jupyter-notebook,Python,Pandas,Matplotlib,Jupyter Notebook,我试图绘制风速和风向,但有一个错误代码一直告诉我“序列太大;不能大于32”。以下是我使用的代码: N = 500 ws = np.array(u) wd = np.array(v) df = pd.DataFrame({'direction': [ws], 'speed': [wd]}) df direction speed 0 [[-7.87291, -8.19969, -8.41213, -8.42775, -8.4... [[-3.68055, -4.07912, -4.0
N = 500
ws = np.array(u)
wd = np.array(v)
df = pd.DataFrame({'direction': [ws], 'speed': [wd]})
df
direction speed
0 [[-7.87291, -8.19969, -8.41213, -8.42775, -8.4... [[-3.68055, -4.07912, -4.07992, -3.55594, -3.2...
from windrose import plot_windrose
N = 500
ws = np.random.random(u) * 6
wd = np.random.random(v) * 360
df = pd.DataFrame({'speed': ws, 'direction': wd})
plot_windrose(df, kind='contour', bins=np.arange(0.01,8,1), cmap=cm.hot, lw=3)
ValueError Traceback (most recent call last)
<ipython-input-78-dfb188ec377a> in <module>()
1 from windrose import plot_windrose
2 N = 500
3 ws = np.random.random(u) * 6
4 wd = np.random.random(v) * 360
5 df = pd.DataFrame({'speed': ws, 'direction': wd})
mtrand.pyx in mtrand.RandomState.random_sample (numpy\random\mtrand\mtrand.c:10396)()
mtrand.pyx in mtrand.cont0_array (numpy\random\mtrand\mtrand.c:1865)()
ValueError: sequence too large; cannot be greater than 32
N=500
ws=np.array(u)
wd=np.数组(v)
df=pd.DataFrame({'direction':[ws],'speed':[wd]})
df
方向速度
0 [[-7.87291, -8.19969, -8.41213, -8.42775, -8.4... [[-3.68055, -4.07912, -4.07992, -3.55594, -3.2...
来自windrose进口地块\u windrose
N=500
ws=np.随机。随机(u)*6
wd=np.随机.随机(v)*360
df=pd.DataFrame({'speed':ws,'direction':wd})
风玫瑰图(df,kind='contour',bins=np.arange(0.01,8,1),cmap=cm.hot,lw=3)
ValueError回溯(最近一次调用上次)
在()
1来自windrose进口地块\u windrose
2 N=500
3 ws=np.随机。随机(u)*6
4 wd=np.随机。随机(v)*360
5 df=pd.DataFrame({'speed':ws,'direction':wd})
mtrand.RandomState.random_样本中的mtrand.pyx(numpy\random\mtrand\mtrand.c:10396)()
mtrand.cont0_数组中的mtrand.pyx(numpy\random\mtrand\mtrand.c:1865)()
ValueError:序列太大;不能大于32
如何修复此问题并绘制U和V?谢谢。要绘制风U,V,请使用倒钩和箭袋。查看以下代码:
import matplotlib.pylab as plt
import numpy as np
x = np.linspace(-5, 5, 5)
X, Y = np.meshgrid(x, x)
d = np.arctan(Y ** 2. - .25 * Y - X)
U, V = 5 * np.cos(d), np.sin(d)
# barbs plot
ax1 = plt.subplot(1, 2, 1)
ax1.barbs(X, Y, U, V)
#quiver plot
ax2 = plt.subplot(1, 2, 2)
qui = ax2.quiver(X, Y, U, V)
plt.quiverkey(qui, 0.9, 1.05, 1, '1 m/s',labelpos='E',fontproperties={'weight': 'bold'})
plt.show()