Python绘图合并2个绘图

2024-05-15 01:39:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过组合下面显示的这两个图,在等高线图上绘制matplotlib中的流线,但首先显示我的代码:

ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines(lw=1)
clevs = np.linspace(-3., 3., 13)
cnplot = plt.contourf(lon,lat,anomspeed,clevs,add_labels=True,cmap='jet')
cbar = plt.colorbar(cnplot)
cbar.set_label('Standard Deviations')
plt.title('~50m Wind Speed Anomaly {} 2020'.format(calendar.month_name[currm-1]))
diffu = (uwndc - uwnd);  diffv = (vwndc - vwnd)
lonn, latt = np.meshgrid(lon, lat)
plt.streamplot(lonn[0,:], latt[:,0], diffu, diffv, density=(3.5,3.5), 
color='k',linewidth=0.4,arrowsize=0.6)#x,y 1D and u,v are 2D

enter image description here

当我尝试运行下面显示的代码时,我遇到了这个错误(显示了完整的回溯),但我不理解“ravel”错误。我想这与匹配坐标或两个图之间的关联有关。。?谢谢你的帮助

Traceback (most recent call last):

File "C:\Users\U321103\.spyder- 
py3\MonthlyReport_mapsNCEP_contour_monthly_wspdv2.py", line 85, in <module>
plt.streamplot(lonn[0,:], latt[:,0], diffu, diffv, density=(3.5,3.5), 
color='k',linewidth=0.4,arrowsize=0.6)

File "C:\Users\U321103\AppData\Local\Continuum\anaconda3\envs\Maps\lib\site- 
packages\matplotlib\pyplot.py", line 2906, in streamplot
if data is not None else {}))

File "C:\Users\U321103\AppData\Local\Continuum\anaconda3\envs\Maps\lib\site- 
packages\cartopy\mpl\geoaxes.py", line 1897, in streamplot
target_extent=target_extent)

File "C:\Users\U321103\AppData\Local\Continuum\anaconda3\envs\Maps\lib\site- 
packages\cartopy\vector_transform.py", line 146, in vector_scalar_to_grid
return _interpolate_to_grid(nx, ny, x, y, u, v, *scalars, **kwargs)

File "C:\Users\U321103\AppData\Local\Continuum\anaconda3\envs\Maps\lib\site- 
packages\cartopy\vector_transform.py", line 67, in _interpolate_to_grid
s_grid_tuple += (griddata(points, s.ravel(), (x_grid, y_grid),

AttributeError: 'Variable' object has no attribute 'ravel'

enter image description here


Tags: inpylocallinepltusersappdatagrid
1条回答
网友
1楼 · 发布于 2024-05-15 01:39:04

我想解决这个问题,我找到了一个类似问题的答案,帮助我绘制流线和等高线。看看here

简而言之,不是:

plt.streamplot(lonn[0,:], latt[:,0], diffu, diffv, density=(3.5,3.5), color='k',linewidth=0.4,arrowsize=0.6)

你会用

plt.streamplot(lonn[0,:], latt[:,0], np.array(diffu), np.array(diffv), density=(3.5,3.5), color='k',linewidth=0.4,arrowsize=0.6)

使用np.array()为我解决了这个问题

致以最良好的祝愿

马修斯

相关问题 更多 >

    热门问题