diff --git a/pygmt/tests/test_grdview.py b/pygmt/tests/test_grdview.py
index 65af6e6eef3..f9166b57b90 100644
--- a/pygmt/tests/test_grdview.py
+++ b/pygmt/tests/test_grdview.py
@@ -3,53 +3,64 @@
 """
 import pytest
 
-from .. import Figure, which
-from ..datasets import load_earth_relief
+from .. import Figure, grdcut, which
 from ..exceptions import GMTInvalidInput
-from ..helpers import data_kind
+from ..helpers import GMTTempFile, data_kind
+from ..helpers.testing import check_figures_equal
 
 
-@pytest.fixture(scope="module", name="grid")
-def fixture_grid():
-    "Load the grid data from the sample earth_relief file"
-    return load_earth_relief(registration="gridline").sel(
-        lat=slice(-49, -42), lon=slice(-118, -107)
-    )
+@pytest.fixture(scope="module", name="region")
+def fixture_region():
+    "Test region as lonmin, lonmax, latmin, latmax"
+    return (-116, -109, -47, -44)
 
 
-@pytest.mark.xfail(
-    reason="Baseline image generated using Cartesian instead of Geographic coordinates"
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_grid_dataarray(grid):
+@pytest.fixture(scope="module", name="gridfile")
+def fixture_gridfile(region):
+    """
+    Load the NetCDF grid file from the sample earth_relief file
+    """
+    with GMTTempFile(suffix=".nc") as tmpfile:
+        grdcut(grid="@earth_relief_01d_g", region=region, outgrid=tmpfile.name)
+        yield tmpfile.name
+
+
+@pytest.fixture(scope="module", name="xrgrid")
+def fixture_xrgrid(region):
+    """
+    Load the xarray.DataArray grid from the sample earth_relief file
+    """
+    return grdcut(grid="@earth_relief_01d_g", region=region)
+
+
+@check_figures_equal()
+def test_grdview_grid_dataarray(gridfile, xrgrid):
     """
     Run grdview by passing in a grid as an xarray.DataArray.
     """
-    fig = Figure()
-    fig.grdview(grid=grid)
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    fig_ref.grdview(grid=gridfile)
+    fig_test.grdview(grid=xrgrid)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
 @pytest.mark.mpl_image_compare
-def test_grdview_grid_file_with_region_subset():
+def test_grdview_grid_file_with_region_subset(region):
     """
     Run grdview by passing in a grid filename, and cropping it to a region.
     """
     gridfile = which("@earth_relief_01d_g", download="a")
 
     fig = Figure()
-    fig.grdview(grid=gridfile, region=[-116, -109, -47, -44])
+    fig.grdview(grid=gridfile, region=region)
     return fig
 
 
-def test_grdview_wrong_kind_of_grid(grid):
+def test_grdview_wrong_kind_of_grid(xrgrid):
     """
     Run grdview using grid input that is not an xarray.DataArray or file.
     """
-    dataset = grid.to_dataset()  # convert xarray.DataArray to xarray.Dataset
+    dataset = xrgrid.to_dataset()  # convert xarray.DataArray to xarray.Dataset
     assert data_kind(dataset) == "matrix"
 
     fig = Figure()
@@ -57,208 +68,193 @@ def test_grdview_wrong_kind_of_grid(grid):
         fig.grdview(grid=dataset)
 
 
-@pytest.mark.xfail(
-    reason="Baseline image generated using Cartesian instead of Geographic coordinates"
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_with_perspective(grid):
+@check_figures_equal()
+def test_grdview_with_perspective(gridfile, xrgrid):
     """
     Run grdview by passing in a grid and setting a perspective viewpoint with
     an azimuth from the SouthEast and an elevation angle 15 degrees from the
     z-plane.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, perspective=[135, 15])
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    fig_ref.grdview(grid=gridfile, perspective=[135, 15])
+    fig_test.grdview(grid=xrgrid, perspective=[135, 15])
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_with_perspective_and_zscale(grid):
+@check_figures_equal()
+def test_grdview_with_perspective_and_zscale(gridfile, xrgrid):
     """
     Run grdview by passing in a grid and setting a perspective viewpoint with
     an azimuth from the SouthWest and an elevation angle 30 degrees from the
     z-plane, plus a z-axis scaling factor of 0.005.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, perspective=[225, 30], zscale=0.005)
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(perspective=[225, 30], zscale=0.005)
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_with_perspective_and_zsize(grid):
+@check_figures_equal()
+def test_grdview_with_perspective_and_zsize(gridfile, xrgrid):
     """
     Run grdview by passing in a grid and setting a perspective viewpoint with
     an azimuth from the SouthWest and an elevation angle 30 degrees from the
     z-plane, plus a z-axis size of 10cm.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, perspective=[225, 30], zsize="10c")
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(perspective=[225, 30], zsize="10c")
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_with_cmap_for_image_plot(grid):
+@check_figures_equal()
+def test_grdview_with_cmap_for_image_plot(gridfile, xrgrid):
     """
     Run grdview by passing in a grid and setting a colormap for producing an
     image plot.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, cmap="oleron", surftype="i")
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(cmap="oleron", surftype="i")
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_with_cmap_for_surface_monochrome_plot(grid):
+@check_figures_equal()
+def test_grdview_with_cmap_for_surface_monochrome_plot(gridfile, xrgrid):
     """
     Run grdview by passing in a grid and setting a colormap for producing a
     surface monochrome plot.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, cmap="oleron", surftype="s+m")
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(cmap="oleron", surftype="s+m")
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_with_cmap_for_perspective_surface_plot(grid):
+@check_figures_equal()
+def test_grdview_with_cmap_for_perspective_surface_plot(gridfile, xrgrid):
     """
     Run grdview by passing in a grid and setting a colormap for producing a
     surface plot with a 3D perspective viewpoint.
     """
-    fig = Figure()
-    fig.grdview(
-        grid=grid, cmap="oleron", surftype="s", perspective=[225, 30], zscale=0.005
-    )
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(cmap="oleron", surftype="s", perspective=[225, 30], zscale=0.005)
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_on_a_plane(grid):
+@check_figures_equal()
+def test_grdview_on_a_plane(gridfile, xrgrid):
     """
     Run grdview by passing in a grid and plotting it on a z-plane, while
     setting a 3D perspective viewpoint.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, plane=-4000, perspective=[225, 30], zscale=0.005)
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(plane=-4000, perspective=[225, 30], zscale=0.005)
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_on_a_plane_with_colored_frontal_facade(grid):
+@check_figures_equal()
+def test_grdview_on_a_plane_with_colored_frontal_facade(gridfile, xrgrid):
     """
     Run grdview by passing in a grid and plotting it on a z-plane whose frontal
     facade is colored gray, while setting a 3D perspective viewpoint.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, plane="-4000+ggray", perspective=[225, 30], zscale=0.005)
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(plane="-4000+ggray", perspective=[225, 30], zscale=0.005)
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_with_perspective_and_zaxis_frame(grid):
+@check_figures_equal()
+def test_grdview_with_perspective_and_zaxis_frame(gridfile, xrgrid, region):
     """
     Run grdview by passing in a grid and plotting an annotated vertical
-    z-axis frame.
+    z-axis frame on a Transverse Mercator (T) projection.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, perspective=[225, 30], zscale=0.005, frame="zaf")
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    projection = f"T{(region[0]+region[1])/2}/{abs((region[2]+region[3])/2)}"
+    kwargs = dict(
+        projection=projection,
+        perspective=[225, 30],
+        zscale=0.005,
+        frame=["xaf", "yaf", "zaf"],
+    )
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_surface_plot_styled_with_contourpen(grid):
+@check_figures_equal()
+def test_grdview_surface_plot_styled_with_contourpen(gridfile, xrgrid):
     """
     Run grdview by passing in a grid with styled contour lines plotted on top
     of a surface plot.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, cmap="relief", surftype="s", contourpen="0.5p,black,dash")
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(cmap="relief", surftype="s", contourpen="0.5p,black,dash")
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_surface_mesh_plot_styled_with_meshpen(grid):
+@check_figures_equal()
+def test_grdview_surface_mesh_plot_styled_with_meshpen(gridfile, xrgrid):
     """
     Run grdview by passing in a grid with styled mesh lines plotted on top of a
     surface mesh plot.
     """
-    fig = Figure()
-    fig.grdview(grid=grid, cmap="relief", surftype="sm", meshpen="0.5p,black,dash")
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(cmap="relief", surftype="sm", meshpen="0.5p,black,dash")
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_on_a_plane_styled_with_facadepen(grid):
+@check_figures_equal()
+def test_grdview_on_a_plane_styled_with_facadepen(gridfile, xrgrid):
     """
     Run grdview by passing in a grid and plotting it on a z-plane with styled
     lines for the frontal facade.
     """
-    fig = Figure()
-    fig.grdview(
-        grid=grid,
-        plane=-4000,
-        perspective=[225, 30],
-        zscale=0.005,
-        facadepen="0.5p,blue,dash",
+    fig_ref, fig_test = Figure(), Figure()
+    kwargs = dict(
+        plane=-4000, perspective=[225, 30], zscale=0.005, facadepen="0.5p,blue,dash"
     )
-    return fig
+    fig_ref.grdview(grid=gridfile, **kwargs)
+    fig_test.grdview(grid=xrgrid, **kwargs)
+    return fig_ref, fig_test
 
 
-@pytest.mark.xfail(
-    reason="Baseline image not updated to use earth relief grid in GMT 6.1.0",
-)
-@pytest.mark.mpl_image_compare
-def test_grdview_drapegrid_dataarray(grid):
+@check_figures_equal()
+def test_grdview_drapegrid_dataarray(gridfile, xrgrid):
     """
     Run grdview by passing in both a grid and drapegrid as an xarray.DataArray,
     setting a colormap for producing an image plot.
     """
-    drapegrid = 1.1 * grid
+    drapegrid = 1.1 * xrgrid
 
-    fig = Figure()
-    fig.grdview(grid=grid, drapegrid=drapegrid, cmap="oleron", surftype="c")
-    return fig
+    fig_ref, fig_test = Figure(), Figure()
+    fig_ref.grdview(grid=gridfile, drapegrid=drapegrid, cmap="oleron", surftype="c")
+    fig_test.grdview(grid=xrgrid, drapegrid=drapegrid, cmap="oleron", surftype="c")
+    return fig_ref, fig_test
 
 
-def test_grdview_wrong_kind_of_drapegrid(grid):
+def test_grdview_wrong_kind_of_drapegrid(xrgrid):
     """
     Run grdview using drapegrid input that is not an xarray.DataArray or file.
     """
-    dataset = grid.to_dataset()  # convert xarray.DataArray to xarray.Dataset
+    dataset = xrgrid.to_dataset()  # convert xarray.DataArray to xarray.Dataset
     assert data_kind(dataset) == "matrix"
 
     fig = Figure()
     with pytest.raises(GMTInvalidInput):
-        fig.grdview(grid=grid, drapegrid=dataset)
+        fig.grdview(grid=xrgrid, drapegrid=dataset)