How to create directional map rose in a Cartesian coordinate system?


I have a plot in Cartesian coordinate system, and I would like to add a rotated directional rose to depict North direction, which doesn’t seem to work, see below?

gmt begin test png
gmt basemap -R0/10/0/10 -JX5c/5c -BWSne -Baf
gmt basemap -TdjTL+w1.5c+l,,,N
gmt end

I guess such symbol must be stored some where in GMT, and I was wondering if there is a way to manually add this symbol, rotated, onto the plot?

There is no north in Cartesian coordinates. Your x may be time and your y may be weight for all I and GMT knows.

Thank you @pwessel!

I see that there is no “North” in Cartesian, but since this is a rotated domain, I would still like to show readers the “North” after the rotation.

Is it possible that we can fetch the GMT rose and put it rotated on the plot? Otherwise, we have to create a rose symbol or drape an external figure as the directional rose?

Thanks again!

You could add a perspective view.

For example with :
gmt basemap -TdjTL+w1.5c+l,,,N -p135/90

I get

Thank you! Very impressive solution!

Yet somehow I cannot see the rose if I simply use your script:

gmt begin test png
gmt basemap -R0/10/0/10 -JX5c/5c -BWSne -Baf
gmt basemap -TdjTL+w1.5c+l,,,N -p135/90
gmt end

It just gives me the frame itself:

Am I missing anything else? Could you elaborate a bit your script? Thanks!

Weird. I used that script.

Now I used this and I get the rose within the frame:

gmt begin test png
gmt basemap -R0/10/0/10 -JX5c/5c -BWSne -Baf
gmt basemap -TdjMC+w1.5c+l,,,N -p135/90
gmt end

I don’t understand it…
I copied your script and still got a frame only.

My GMT was 6.1.1, installed with Anaconda. Perhaps a version issue?

I am using 6.2 dev version.

It is a new feature in GMT dev version. See how to draw a rose in cartesian projection · Issue #714 · GenericMappingTools/pygmt ( and Allow north-arrow for Cartesian plots since we allow scale bars by PaulWessel · Pull Request #4535 · GenericMappingTools/gmt (

1 Like

Cool, thank you!
Hope to see 6.2 release soon!