首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在NorthPolarStereo投影中添加更多的经纬线

如何在NorthPolarStereo投影中添加更多的经纬线
EN

Stack Overflow用户
提问于 2020-05-13 23:04:05
回答 2查看 480关注 0票数 0

我正在尝试增加在Python语言的NorthPolarStereo投影上出现经度线的间隔。我试着增加/定义ticks/lim (对于x和y坐标),但返回了一个错误:“有多个元素的数组的真值是不明确的。请使用a.any()或a.all()”。我还尝试改变了范围的界限。我找到了一篇关于使用底图的文章,但我不认为我需要使用它。我在投影中使用的基本代码的链接是here。代码片段如下:

代码语言:javascript
运行
复制
# Generate axes, using Cartopy, drawing coastlines, and adding features
fig=plt.figure(figsize=(10,10))

projection = ccrs.NorthPolarStereo()
ax = plt.axes(projection=projection)
ax.coastlines(linewidths=0.5)


ax.add_feature(cfeature.LAND, facecolor='lightgray')
ax.set_extent([-180,180,90,0],ccrs.PlateCarree())
gl = ax.gridlines(crs=ccrs.PlateCarree(),linestyle="--", linewidth=1, color='k', alpha=0.5)


theta = np.linspace(0, 2*np.pi, 100)
center, radius = [0.5, 0.5], 0.5
verts = np.vstack([np.sin(theta), np.cos(theta)]).T
circle = mpath.Path(verts * radius + center)

ax.set_xticks([180,150,120,90,60,30])
ax.set_boundary(circle, transform=ax.transAxes)
p=wrap_U.plot.contour(ax=ax,vmin=-8,vmax=16, transform=ccrs.PlateCarree(),
                        levels = 7, linewidths=0.5, cmap='k')

ax.clabel(p, np.arange(-8,16,8),fmt='%d', inline=1, fontsize=14)


gvutil.set_titles_and_labels(ax, 
                                 lefttitle="Zonal Wind", righttitle="m/s")

  #This line leads to truth value error  
gvutil.set_axes_limits_and_ticks(ax, xticks=np.linspace(-180, 180), xticklabels=['180S', '90S', '0', '90N', '180N'],
                                        ylim=ax.get_ylim()[::-1], yticks=U)



# Show the plot
plt.show()

我确实设置了一个自定义的anaconda环境,所以如果需要更多的信息,我也可以链接到哪里可以找到这个环境。

EN

Stack Overflow用户

发布于 2020-05-17 03:00:35

看起来您正在尝试设置一组不匹配的xtick和xticklabels

代码语言:javascript
运行
复制
gvutil.set_axes_limits_and_ticks(ax, xticks=np.linspace(-180, 180), xticklabels=['180S', '90S', '0', '90N', '180N'],
                                        ylim=ax.get_ylim()[::-1], yticks=U)

您的代码生成50xticks的np.linspace(-180,180) ( numpy linspace的默认值)

但只有5个标签xticklabels=['180S', '90S', '0', '90N', '180N']

作为另一种选择,我建议现在尝试xticks=np.linspace(-180,180,5)或删除特定的xticklabel

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61778059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档