Improve the gallery example for line styles
@@ -20,23 +20,36 @@ For more advanced *pen* attributes, see the GMT cookbook
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()
