绘制底图边框

底图的边框、标签、刻度等样式均由 pygmt.Figure 类的 frame 选项控制。

注解

可结合《绘制底图》和《basemap 模块》学习。

import pygmt
Copy to clipboard

绘制底图

默认情况下,PyGMT 不会在绘图时自动添加边框。例如,使用墨卡托投影来绘制世界海岸线时:

fig = pygmt.Figure()
fig.coast(shorelines="1/0.5p", region=[-180, 180, -60, 60], projection="M16c")
fig.show()
Copy to clipboard
plot 03 basemap

Out:

<IPython.core.display.Image object>
Copy to clipboard

可以通过 pygmt.Figure.basemap() 方法的 frame="f" 选项添加默认边框:

fig = pygmt.Figure()
fig.coast(shorelines="1/0.5p", region=[-180, 180, -60, 60], projection="M16c")
fig.basemap(frame="f")
fig.show()
Copy to clipboard
plot 03 basemap

Out:

<IPython.core.display.Image object>
Copy to clipboard

刻度线和网格线

添加 frame=True 或者 frame="a" 选项后 PyGMT 会根据绘图区范围自动确定刻度线标注方式:

fig = pygmt.Figure()
fig.coast(shorelines="1/0.5p", region=[-180, 180, -60, 60], projection="M16c")
fig.basemap(frame="a")
fig.show()
Copy to clipboard
plot 03 basemap

Out:

<IPython.core.display.Image object>
Copy to clipboard

修改 frame="ag" 后可自动添加网格线:

fig = pygmt.Figure()
fig.coast(shorelines="1/0.5p", region=[-180, 180, -60, 60], projection="M16c")
fig.basemap(frame="ag")
fig.show()
Copy to clipboard
plot 03 basemap

Out:

<IPython.core.display.Image object>
Copy to clipboard

标题

可以通过把 +ttitle 传递给 frame 选项来设置图片标题。如下所示,可以使用列表将多个参数同时传递给 frame 选项:

fig = pygmt.Figure()
# 使用 region="IS" 绘制 Iceland 区域 (ISO country code)
fig.coast(shorelines="1/0.5p", region="IS", projection="M16c")
fig.basemap(frame=["a", "+tIceland"])
fig.show()
Copy to clipboard
plot 03 basemap

Out:

<IPython.core.display.Image object>
Copy to clipboard

当标题内容存在空格时,可以采用单、双引号相结合的方式传递参数,如下所示:

fig = pygmt.Figure()
# 使用 region="TT" 指定 Trinidad 和 Tobago 区域
fig.coast(shorelines="1/0.5p", region="TT", projection="M16c")
fig.basemap(frame=["a", '+t"Trinidad and Tobago"'])
fig.show()
Copy to clipboard
plot 03 basemap

Out:

<IPython.core.display.Image object>
Copy to clipboard

轴标签

坐标轴的 X 轴标签由 x+llabel 控制,Y 轴标签由 y+llabel 控制。如果轴名称大写,则同时绘制该轴的刻度线和标签,反之,当轴名称小写时,仅绘制轴和刻度线。

GMT 不能为地理投影设置轴标签!

fig = pygmt.Figure()
fig.basemap(
    region=[0, 10, 0, 20],
    projection="X6c/8c",
    frame=["WSne", "xa+lx-axis", "yf+ly-axis"],
)
fig.show()
Copy to clipboard
plot 03 basemap

Out:

<IPython.core.display.Image object>
Copy to clipboard

Total running time of the script: ( 0 minutes 5.145 seconds)

Gallery generated by Sphinx-Gallery