Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a gallery example showing the usage of text symbols #1522

Merged
merged 15 commits into from
Sep 22, 2021
43 changes: 43 additions & 0 deletions examples/gallery/symbols/text_symbols.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
r"""
Text symbols
------------
The :meth:`pygmt.Figure.plot` method allows to plot text symbols. Text is
normally placed with the :meth:`pygmt.Figure.text` method but there are times
we wish to treat a character of even a string as plottable symbol.
michaelgrund marked this conversation as resolved.
Show resolved Hide resolved
A text symbol can be drawn by passing **l**\ *size*\ **+t**\ *string* to
the ``style`` parameter where *size* defines the size of the text symbol
(note: the size is only approximate; no individual scaling is done for
different characters) and *string* can be a letter or a text string
(less than 256 characters). Optionally, you can append **+f**\ *font* to
select a particular font [Default is FONT_ANNOT_PRIMARY] as well as
michaelgrund marked this conversation as resolved.
Show resolved Hide resolved
**+j**\ *justify* to change the justification [Default is CM]. Outline
and fill color of the text symbols can be customized via the ``pen``
and ``color`` parameters, respectively.

For all supported octal codes and fonts see the GMT cookbook
https://docs.generic-mapping-tools.org/latest/cookbook/octal-codes.html and
https://docs.generic-mapping-tools.org/latest/cookbook/postscript-fonts.html.
michaelgrund marked this conversation as resolved.
Show resolved Hide resolved
"""

import pygmt

fig = pygmt.Figure()

fig.basemap(region=[0, 8, 0, 3], projection="X12c/4c", frame=True)

pen = "1.5p"
# plot an uppercase "A" of size 3.5c, color fill is set to "dodgerblue3"
fig.plot(x=1, y=1.5, style="l3.5c+tA", color="dodgerblue3", pen=pen)
# plot an "asterisk" of size 3.5c, color fill is set to "red3"
fig.plot(x=2.5, y=1, style="l3.5c+t*", color="red3", pen=pen)
# plot an uppercase "Z" of size 3.5c and use the "Courier-Bold" font,
# color fill is set to "seagreen"
fig.plot(x=4, y=1.5, style="l3.5c+tZ+fCourier-Bold", color="seagreen", pen=pen)
# plot a lowercase "s" of size 3.5c and use the "Times-Italic" font,
# color fill is set to "gold"
fig.plot(x=5.5, y=1.5, style="l3.5c+ts+fTimes-Italic", color="gold", pen=pen)
# plot the pi symbol (\160 is octal code for pi) of size 3.5c, for this use
# the "Symbol" font, color fill is set to "magenta4"
fig.plot(x=7, y=1.5, style="l3.5c+t\160+fSymbol", color="magenta4", pen=pen)

fig.show()