diff --git a/INSTALL.rst b/INSTALL.rst
index 702aa2f92..27714093f 100644
--- a/INSTALL.rst
+++ b/INSTALL.rst
@@ -24,7 +24,7 @@ or clone the repository and run ``pip install -e .`` inside
the ``ultraplot`` folder.
ultraplot's only hard dependency is `matplotlib `__.
-The *soft* dependencies are `cartopy `__,
+The *soft* dependencies are `cartopy `__,
`basemap `__,
`xarray `__, and `pandas `__.
See the documentation for details.
diff --git a/docs/conf.py b/docs/conf.py
index 93c3c6aa3..e26d68230 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -229,7 +229,7 @@ def __getattr__(self, name):
"numpy": ("https://numpy.org/doc/stable/", None),
"scipy": ("https://docs.scipy.org/doc/scipy/", None),
"xarray": ("https://docs.xarray.dev/en/stable/", None),
- "cartopy": ("https://scitools.org.uk/cartopy/docs/latest/", None),
+ "cartopy": ("https://cartopy.readthedocs.io/stable/", None),
"basemap": ("https://matplotlib.org/basemap/stable/", None),
"pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None),
"pint": ("https://pint.readthedocs.io/en/stable/", None),
diff --git a/docs/external-links.rst b/docs/external-links.rst
index f152678a3..f95894554 100644
--- a/docs/external-links.rst
+++ b/docs/external-links.rst
@@ -22,7 +22,7 @@ dependencies of UltraPlot, or are distributed with UltraPlot:
* `pint `__ - A package for tracking and
converting between physical units during mathematical operations and when
plotting in matplotlib axes.
-* `cartopy `__ - A package for
+* `cartopy `__ - A package for
plotting geographic and geophysical data in matplotlib. Includes a suite of
different map projections.
* `basemap `__ - The original cartographic
diff --git a/docs/projections.py b/docs/projections.py
index 0f297bb28..7a139cadd 100644
--- a/docs/projections.py
+++ b/docs/projections.py
@@ -17,7 +17,7 @@
#
# .. _polar: https://matplotlib.org/3.1.0/gallery/pie_and_polar_charts/polar_demo.html
#
-# .. _cartopy: https://scitools.org.uk/cartopy/docs/latest/
+# .. _cartopy: https://cartopy.readthedocs.io/stable/
#
# .. _basemap: https://matplotlib.org/basemap/index.html
#
@@ -205,7 +205,7 @@
# to :func:`~ultraplot.axes.GeoAxes.format`.
# * By default, UltraPlot gives circular boundaries to polar cartopy and basemap
# projections like :class:`~cartopy.crs.NorthPolarStereo` (see `this example
-# `__
+# `__
# from the cartopy website). To disable this feature, set :rcraw:`geo.round` to
# ``False`` or pass ``round=False` to :func:`~ultraplot.axes.GeoAxes.format`. Please note
# that older versions of cartopy cannot add gridlines to maps bounded by circles.
@@ -510,7 +510,7 @@
# Included projections
# --------------------
#
-# The available `cartopy `__
+# The available `cartopy `__
# and `basemap `__ projections are
# plotted below. The full table of projection names with links to the relevant
# `PROJ `__ documentation is found :ref:`here `.
diff --git a/docs/usage.rst b/docs/usage.rst
index 133a7f9d0..77e921ce9 100644
--- a/docs/usage.rst
+++ b/docs/usage.rst
@@ -1,4 +1,4 @@
-.. _cartopy: https://scitools.org.uk/cartopy/docs/latest/
+.. _cartopy: https://cartopy.readthedocs.io/stable/
.. _basemap: https://matplotlib.org/basemap/index.html
diff --git a/docs/why.rst b/docs/why.rst
index 67dd216cd..dbcfd1dfb 100644
--- a/docs/why.rst
+++ b/docs/why.rst
@@ -1,4 +1,4 @@
-.. _cartopy: https://scitools.org.uk/cartopy/docs/latest/
+.. _cartopy: https://cartopy.readthedocs.io/stable/
.. _basemap: https://matplotlib.org/basemap/index.html
diff --git a/ultraplot/axes/geo.py b/ultraplot/axes/geo.py
index 65113f75d..ab95a661e 100644
--- a/ultraplot/axes/geo.py
+++ b/ultraplot/axes/geo.py
@@ -1151,7 +1151,7 @@ def _add_gridline_labels(self, ax, gl, padding=8):
"""
This function is intended for the Basemap backend
and mirrors the label placement behavior of Cartopy.
- See: https://scitools.org.uk/cartopy/docs/v0.16/_modules/cartopy/mpl/gridliner.html#Gridliner
+ See: https://cartopy.readthedocs.io/stable/reference/generated/cartopy.mpl.gridliner.Gridliner.html
"""
sides = dict()
for which, formatter in zip("xy", gl):
@@ -1341,7 +1341,7 @@ def _get_circle_path(N=100):
Return a circle `~matplotlib.path.Path` used as the outline for polar
stereographic, azimuthal equidistant, Lambert conformal, and gnomonic
projections. This was developed from `this cartopy example \
- `__.
+ `__.
"""
theta = np.linspace(0, 2 * np.pi, N)
center, radius = [0.5, 0.5], 0.5