我无法在cartopy中绘制全长网格线,而只能绘制快捷方式。让我们来看一个例子:

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER

fig = plt.figure(figsize=(8,6))
ax = plt.subplot(111, projection=ccrs.Mercator())
ax.coastlines()
ax.set_extent([119, 125, 38, 42], crs=ccrs.PlateCarree())

gl = ax.gridlines(ccrs.PlateCarree(), xlocs=[121, 123],
                  ylocs=[39.5, 40.5], linestyle='--',
                  color='r', alpha=1, draw_labels=True)
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
plt.show()


结果图如下所示:
python - 为什么网格线在Cartopy GeoAxes中是快捷方式?-LMLPHP

我想我会得到从左(或下)到右(或上)刺的网格线。但是正如您所看到的,网格线被短切为矩形。


如何获得“全长”网格线?
通过color='r', alpha=1,为什么不能获得red, un-transparent网格线?

最佳答案

Q1。如何获得“全长”网格线?

声明xlocsylocs的范围以超出显示限制。

Q2。通过color ='r',alpha = 1,为什么我不能获得红色的不透明网格线?

默认线宽太细,无法显示真实颜色。根据需要声明较粗的线宽值。

完整的工作代码:

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER

fig = plt.figure(figsize=(8,6))
ax = plt.subplot(111, projection=ccrs.Mercator())
ax.coastlines()
ax.set_extent([119, 125, 38, 42], crs=ccrs.PlateCarree())

gl = ax.gridlines(ccrs.PlateCarree(), \
                  xlocs=[100, 121, 123, 130],  \
                  ylocs=[20, 39.5, 40.5, 60], \
                  linestyle='--',
                  color='r', alpha=1, linewidth=1, draw_labels=True)
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
plt.show()


结果图:

python - 为什么网格线在Cartopy GeoAxes中是快捷方式?-LMLPHP

关于python - 为什么网格线在Cartopy GeoAxes中是快捷方式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47181194/

10-12 18:01