如何解决如何在 3D 球体上正确绘制 2D 数组
我有一个在球坐标中定义的函数,半径恒定。 (即二维数组)
omega1,dx = np.linspace(0,np.pi,100,retstep=True)
psi1,dpsi = np.linspace(0,2 * np.pi,retstep=True)
omega,psi = np.meshgrid(omega1,psi1)
torus = PHI(21.5,omega,psi)
我的目标是在球体上正确绘制。本来想用plotly的,但是因为电脑太新或者内部问题,不能用,出现以下错误
错误:root:无法创建 GLX 上下文。正在中止。
无论如何,我按照以下示例选择了 Cartopy 库:Plotting cylindrical map data over a 3D sphere in Python。
这是我的代码:
plt.figure(figsize=(3,3))
ax = plt.axes(projection=ccrs.Orthographic(0,0))
ax.gridlines(crs=ccrs.PlateCarree(),linestyle='dotted',draw_labels=True,linewidth=2,color='gray',alpha=0.5)
gl=ax.imshow(torus,origin="upper",extent=(-180,180,-90,90),transform=ccrs.PlateCarree())
gl.xlocator = mticker.FixedLocator([-180,-45,45,180])
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
gl.xlabel_style = {'size': 15,'color': 'gray'}
gl.xlabel_style = {'color': 'red','weight': 'bold'}
plt.show()
我得到了这张图片。
但是,我有几个问题即使在阅读 Cartopy 说明后也无法解决。你能帮我澄清一下吗。 首先,我如何确定我的图像的纬度和经度符合所需的纬度和经度?我想它在范围参数中,但如果我按照我的行空间并放置:
extent=(0,360,180)
我再也受不了了。我的第二个问题是如何检查指示了哪些标签。例如,在我的图像上显示了纬度,但是例如如何获得经度? 我觉得很难理解这种情节的传说是如何运作的。
当然,如果你有其他图书馆来获得这种东西,我很感兴趣。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。