我试图使用matplotlib在垂直剖面中绘制两个水平风分量u和v。接下来,我想将风倒钩绘制在相同的高度,以便两个图共享y轴。我想使用sharey-option,这样我就可以使用z的值更容易地控制ylimits。
到目前为止,我做到了这一点:
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
u = np.array([1,2,3,5,7,7,7,7])
v = np.array([-1,-1,-1,1,3,3,3,3])
z = np.array([2,10,50,100,200,300,400,500])
fig,ax = plt.subplots(figsize=[15,8],ncols=2,sharey=True)
ax[0].plot(u,z,label='U-component')
ax[0].plot(v,z,label='V-component')
ax[0].axvline(0,color='k')
ax[0].legend(loc=4)
Xq,Yq = np.meshgrid(1,np.arange(0,u.shape[0]))
ax[1].barbs(Xq,Yq,u,v)
plt.show()
给出了以下情节:
正如你所看到的,倒钩函数将风倒钩绘制在数组的索引上,但是我想将它映射到我的z数组(就像我对u和v数组所做的那样)。看起来应该是这样的:
在这里,我只是关闭了sharey-option以显示我想拥有的内容。但正如我所提到的,使用此选项,我无法使用z值设置倒钩图的ylimits。
任何人都可以帮我完成这项工作吗?
我希望自己明确表示,如果没有,请帮助我改进我的问题。代码应该作为一个最小的工作示例。
提前致谢
菲利普
答案 0 :(得分:0)
不确定我是否理解正确,但如果我这样做,那么您应该尝试将meshgrid行更改为:
Xq,Yq = np.meshgrid(1, z)
将倒钩原点设置为(1,z)坐标。