Python Matplotlib倒钩作为时间与高度的函数-未知错误
我有16个不同高度的风速/风向数据。该数据每隔1分钟记录一次。我正在尝试创建一个二维图表,其高度水平在y轴上,时间水平在x轴上Python Matplotlib倒钩作为时间与高度的函数-未知错误,python,numpy,matplotlib,numpy-ufunc,Python,Numpy,Matplotlib,Numpy Ufunc,我有16个不同高度的风速/风向数据。该数据每隔1分钟记录一次。我正在尝试创建一个二维图表,其高度水平在y轴上,时间水平在x轴上 00:00, ws_10feet, wd_10feet, ws_20feet, wd_20feet,....ws_160feet,wd_160feet 00:01, ws_10feet, wd_10feet, ws_20feet, wd_20feet,....ws_160feet,wd_160feet 00:02, ws_10feet, wd_10feet, ws_2
00:00, ws_10feet, wd_10feet, ws_20feet, wd_20feet,....ws_160feet,wd_160feet
00:01, ws_10feet, wd_10feet, ws_20feet, wd_20feet,....ws_160feet,wd_160feet
00:02, ws_10feet, wd_10feet, ws_20feet, wd_20feet,....ws_160feet,wd_160feet
...
23:58, ws_10feet, wd_10feet, ws_20feet, wd_20feet,....ws_160feet,wd_160feet
23:59, ws_10feet, wd_10feet, ws_20feet, wd_20feet,....ws_160feet,wd_160feet
根据这些数据,我将风速和风向分为2(1440,16)个阵列,一个用于u分量,一个用于v分量。我还有time\u list
,它只是一个包含1440个元素的列表,我的level\u heights
是一个包含16个元素的一维数组
将它们放在一起以绘制:
...
ax.barbs([time_list,level_heights],u,v)
...
我得到以下错误:
TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
我不知道发生了什么,也不知道如何解决。如果您真的想显示所有1440次,您将有1440 x 16个数据点,因此传递给
ax.barbs()
的所有变量都应该有这些维度
编辑:
我使用ax.barbs()
中提到的这个快捷方式来处理示例数据:
X,Y:[…]如果未给出,将根据U和V的尺寸生成统一的整数网格
将numpy导入为np
将matplotlib.pyplot作为plt导入
标高高度=[720700]
u=np.数组([[36.10376018,-3.65789061],[35.96327862,-45.10811509])
v=np.数组([[36.58522244,-51.57043568],[36.44286749,-24.64179281]]
图,ax=plt.子批次()
斧头倒钩(u,v)
ax.set_xticks([0,1])
ax.set_xticklabel(['start','1分钟])
ax.set_-yticks([0,1])
ax.设置标签(水平高度);
您可能希望颠倒
标高高度的顺序
以使绘图更自然。但我只绘制了16个标高的风,我的数据仅为每个标高1分钟的风。两者之间什么都没有。如何将其扩展到长度为1440的列表?@Jonathon在没有看到数据的情况下无法确定,但您可能可以用获得时间列表
的相同方式进行操作?我已更新了我的问题,以包括我实际数据源的示例。@Jonathon谢谢,这帮助我理解了问题。我已经编辑了我的答案。你能把函数调用中实际使用的变量的小数据样本复制粘贴到你的问题中吗?例如,时间列表[:2]
,水平高度[:2]
,u[:2,:2]
和v[:2,:2]
。