python - 为什么网格线在 cartopy GeoAxes 中被缩短?

标签 python cartopy

我无法在 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()

结果图类似于: output of the code

我想我会将网格线从左(或下)脊柱延伸到右(或上)脊柱。但正如您所看到的,网格线被缩短为矩形。

  • 如何获得“全长”网格线?
  • 通过color='r', alpha=1,为什么我无法获得红色、不透明网格线?

最佳答案

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

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

第二季度。通过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()

生成的 map :

enter image description here

关于python - 为什么网格线在 cartopy GeoAxes 中被缩短?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47181194/

相关文章:

python - Telegram 机器人无法在回复键盘后发送消息

python - 在我的图中绘制 Cartopy 中的文本

python - 使用 Python (matplotlib) 的自定义标记

matplotlib - 使用 Cartopy 添加网格线

python - 成功尝试后退出到下一个循环迭代

python - Python 中的重复排列

python - 如何将 Cartopy 与 gridspec 结合使用

python - 在 Python 中组合两个排序列表

python - 比较 Python 中的 3 个列表