为什么网格线在 cartopy GeoAxes 中被缩短?
Why gridlines is shortcuted in cartopy GeoAxes?
我无法在 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()
结果图应该是这样的:
我想我会得到从左(或底部)到右(或顶部)书脊延伸的网格线。但正如您所见,网格线被截短为矩形。
- 如何获得 "full length" 网格线?
- 到
color='r', alpha=1
,为什么我不能得到 red, un-transparent
网格线?
Q1。如何获得 "full length" 网格线?
声明 xlocs
、ylocs
的范围以超出显示限制。
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()
生成的地图:
我无法在 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()
结果图应该是这样的:
我想我会得到从左(或底部)到右(或顶部)书脊延伸的网格线。但正如您所见,网格线被截短为矩形。
- 如何获得 "full length" 网格线?
- 到
color='r', alpha=1
,为什么我不能得到red, un-transparent
网格线?
Q1。如何获得 "full length" 网格线?
声明 xlocs
、ylocs
的范围以超出显示限制。
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()
生成的地图: