Cartopy极坐标图轴标签

2 投票
1 回答
1171 浏览
提问于 2025-04-21 01:17

现在有没有办法在Cartopy的极坐标图上添加坐标轴标签呢?我注意到,使用ax.gridlines(draw_labels=True)这个功能只支持PlateCarree和Mercator这两种投影方式。

另外,ax.set_xticks这个功能只允许在一种矩形坐标系统和另一种矩形坐标系统之间进行转换。

这里有一些代码,用来比较Basemap和Cartopy。我在想有没有人找到解决办法,可以在极坐标图上添加标签。

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from mpl_toolkits.basemap import Basemap
import numpy as np

ax1 = plt.subplot(211)
m_north = Basemap(projection='nplaea',boundinglat=60,lon_0=0,ax=ax1)
m_north.drawcoastlines()
m_north.drawparallels(np.arange(-80.,81.,10.),labels=[1,0,0,0])
m_north.drawmeridians(np.arange(-180.,181.,30.),labels=[0,0,0,1])

ax2 = plt.subplot(212,projection=ccrs.NorthPolarStereo())
ax2.set_extent([0, 360, 60, 90], crs=ccrs.PlateCarree())
xticks = range(-180, 181, 60)
yticks = range(60, 90, 10)
ax2.set_xticks(xticks, crs=ccrs.NorthPolarStereo())
ax2.set_yticks(yticks, crs=ccrs.NorthPolarStereo())
ax2.coastlines()
ax2.gridlines()
plt.show()

1 个回答

2

不,遗憾的是,目前还没有对此的支持。到目前为止,只编写了最简单和最常见的形式,因为一般情况实在是太复杂了。比如,关于极坐标图……(1)在某些地方,网格线会交汇,所以可能只需要标记某些特定的网格线;(2)有些网格线(比如经线)可能完全在图表区域内部。

现在,这个问题真的只是在等待有人来解决。

撰写回答