Scaling map annotations from metres to kilometes

I’m working with Cartesian coordinates and some of the coordinates can get into pretty large numbers so I would like to scale them from metres to kilometres (i.e. divide by a 1000). I did think about rescaling my data’s coordinates, but it gets tedious with many layers, and it’s really just the plot annotations that I need to scale.

Current:

fig = pygmt.Figure()
fig.basemap(region=[100000, 500000, 600000, 900000], projection="X7c", frame=True)
fig.show()

Desired:

Actually had a look at the map frame options in gmt — GMT 6.5.0 documentation but couldn’t work out how to do it, or if it’s actually possible. Anyone who can point me in the right direction?

I don’t think it’s possible with the -B option, but you can have a “fake” frame:

fig = pygmt.Figure()
# plot the "fake" frame with a region 100/500/600/900
fig.basemap(region=[100, 500, 600, 900], projection="X7c", frame=True)
# plot real data in the real region
fig.plot(region=[100000, 500000, 600000, 900000], data=data, style="c0.2c")
fig.show()

Ah cool, I knew there must be a way! Thanks!