【问题标题】:Plot wind speed and direction from u, v components从 u, v 分量绘制风速和风向
【发布时间】:2016-10-03 19:32:39
【问题描述】:

我正在尝试绘制风速和风向,但有一个错误代码一直告诉我“序列太大;不能大于 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.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

如何解决这个问题并绘制 U 和 V?谢谢。

【问题讨论】:

    标签: python pandas matplotlib jupyter-notebook


    【解决方案1】:

    要绘制风 U、V 使用 barbsquiver。看下面的代码:

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 2021-11-25
      • 1970-01-01
      • 2015-11-27
      • 2019-03-24
      相关资源
      最近更新 更多