diff --git a/examples/gallery/line/linestyles.py b/examples/gallery/line/linestyles.py index d0a1f1daa52..3b4a3d348cf 100644 --- a/examples/gallery/line/linestyles.py +++ b/examples/gallery/line/linestyles.py @@ -20,23 +20,36 @@ import numpy as np import pygmt -# Generate a sample line for plotting -x = np.linspace(0, 10, 500) -y = np.sin(x) +# Generate a two-point line for plotting +x = np.array([0, 7]) +y = np.array([9, 9]) fig = pygmt.Figure() -fig.basemap(region=[0, 10, -3, 3], projection="X15c/8c", frame=["xaf", "yaf", "WSrt"]) +fig.basemap(region=[0, 10, 0, 10], projection="X15c/8c", frame='+t"Line Styles"') # Plot the line using the default line style fig.plot(x=x, y=y) - -# Plot the lines using different line styles -fig.plot(x=x, y=y + 1.5, pen="1p,red,-") -fig.plot(x=x, y=y + 1.0, pen="2p,blue,.") -fig.plot(x=x, y=y + 0.5, pen="1p,red,-.") - -fig.plot(x=x, y=y - 0.5, pen="2p,blue,..-") -fig.plot(x=x, y=y - 1.0, pen="3p,tomato,--.") -fig.plot(x=x, y=y - 1.5, pen="3p,tomato,4_2:2p") +fig.text(x=x[-1], y=y[-1], text="solid (default)", justify="ML", offset="0.2c/0c") + +# Plot the line using different line styles +for linestyle in [ + "1p,red,-", # dashed line + "1p,blue,.", # dotted line + "1p,lightblue,-.", # dash-dotted line + "2p,blue,..-", # dot-dot-dashed line + "2p,tomato,--.", # dash-dash-dotted line + "2p,tomato,4_2:2p", # A pattern of 4-point-long line segment and 2-point-gap between segment +]: + y -= 1 # Move the current line down + fig.plot(x=x, y=y, pen=linestyle) + fig.text(x=x[-1], y=y[-1], text=linestyle, justify="ML", offset="0.2c/0c") + +# Plot the line like a railway track (black/white). +# The trick here is plotting the same line twice but with different line styles +y -= 1 # move the current line down +fig.plot(x=x, y=y, pen="5p,black") +fig.plot(x=x, y=y, pen="4p,white,20p_20p") +fig.text(x=x[-1], y=y[-1], text="5p,black", justify="ML", offset="0.2c/0.2c") +fig.text(x=x[-1], y=y[-1], text="4p,white,20p_20p", justify="ML", offset="0.2c/-0.2c") fig.show()