R: Create (spatial) resampling plot objects.

createSpatialResamplingPlots {mlr} | R Documentation

## Create (spatial) resampling plot objects.

### Description

Visualize partitioning of resample objects with spatial information.

### Usage

    createSpatialResamplingPlots(
      task = NULL,
      resample = NULL,
      crs = NULL,
      datum = 4326,
      repetitions = 1,
      color.train = "#0072B5",
      color.test = "#E18727",
      point.size = 0.5,
      axis.text.size = 14,
      x.axis.breaks = waiver(),
      y.axis.breaks = waiver()
    )

### Arguments

`task` | Task Task object.
`resample` | ResampleResult or named `list` with (multiple) ResampleResult As returned by resample.
`crs` | integer Coordinate reference system (EPSG code number) for the supplied coordinates in the `Task`.
`datum` | integer Coordinate reference system which should be used in the resulting map.
`repetitions` | integer Number of repetitions.
`color.train` | character Color for train set.
`color.test` | character Color for test set.
`point.size` | integer Point size.
`axis.text.size` | integer Font size of axis labels.
`x.axis.breaks` | numeric Custom x axis breaks
`y.axis.breaks` | numeric Custom y axis breaks

### Details

If a named list is given to `resample`, names will appear in the title of each fold. If multiple inputs are given to `resample`, these must be named.

This function makes a hard cut at five columns of the resulting gridded plot. This means if the `resample` object consists of `folds > 5`, these folds will be put into the new row.

For file saving, we recommend to use cowplot::save_plot.

When viewing the resulting plot in RStudio, margins may appear to be different than they really are. Make sure to save the file to disk and inspect the image.

When modifying axis breaks, negative values need to be used if the area is located in either the western or southern hemisphere. Use positive values for the northern and eastern hemisphere.

### Value

(list of `2L` containing (1) multiple 'gg“ objects and (2) their corresponding labels.

### CRS

The crs has to be suitable for the coordinates stored in the `Task`. For example, if the coordinates are UTM, `crs` should be set to a UTM projection. Due to a limited axis space in the resulting grid (especially on the x-axis), the data will by default projected into a lat/lon projection, specifically EPSG 4326. If other projections are desired for the resulting map, please set argument `datum` accordingly. This argument will be passed onto ggplot2::coord_sf.

### Author(s)

Patrick Schratz

### See Also

Other plot: `plotBMRBoxplots()`, `plotBMRRanksAsBarChart()`, `plotBMRSummary()`, `plotCalibration()`, `plotCritDifferences()`, `plotLearningCurve()`, `plotPartialDependence()`, `plotROCCurves()`, `plotResiduals()`, `plotThreshVsPerf()`

### Examples

    rdesc = makeResampleDesc("SpRepCV", folds = 5, reps = 4)
    r = resample(makeLearner("classif.qda"), spatial.task, rdesc)

    ## -------------------------------------------------------------
    ## single unnamed resample input with 5 folds and 2 repetitions
    ## -------------------------------------------------------------

    plots = createSpatialResamplingPlots(spatial.task, r, crs = 32717,
      repetitions = 2, x.axis.breaks = c(-79.065, -79.085),
      y.axis.breaks = c(-3.970, -4))
    cowplot::plot_grid(plotlist = plots[["Plots"]], ncol = 5, nrow = 2,
      labels = plots[["Labels"]])

    ## --------------------------------------------------------------------------
    ## single named resample input with 5 folds and 1 repetition and 32717 datum
    ## --------------------------------------------------------------------------

    plots = createSpatialResamplingPlots(spatial.task, list("Resamp" = r),
      crs = 32717, datum = 32717, repetitions = 1)
    cowplot::plot_grid(plotlist = plots[["Plots"]], ncol = 5, nrow = 1,
      labels = plots[["Labels"]])

    ## -------------------------------------------------------------
    ## multiple named resample inputs with 5 folds and 1 repetition
    ## -------------------------------------------------------------

    rdesc1 = makeResampleDesc("SpRepCV", folds = 5, reps = 4)
    r1 = resample(makeLearner("classif.qda"), spatial.task, rdesc1)
    rdesc2 = makeResampleDesc("RepCV", folds = 5, reps = 4)
    r2 = resample(makeLearner("classif.qda"), spatial.task, rdesc2)

    plots = createSpatialResamplingPlots(spatial.task,
      list("SpRepCV" = r1, "RepCV" = r2), crs = 32717, repetitions = 1,
      x.axis.breaks = c(-79.055, -79.085), y.axis.breaks = c(-3.975, -4))
    cowplot::plot_grid(plotlist = plots[["Plots"]], ncol = 5, nrow = 2,
      labels = plots[["Labels"]])

    ## -------------------------------------------------------------------------------------
    ## Complex arrangements of multiple named resample inputs with 5 folds and 1 repetition
    ## -------------------------------------------------------------------------------------

    p1 = plot_grid(plist[["Plots"]][[1]], plist[["Plots"]][[2]],
      plist[["Plots"]][[3]], ncol = 3, nrow = 1, labels = plist[["Labels"]][1:3],
      label_size = 18)
    p12 = plot_grid(plist[["Plots"]][[4]], plist[["Plots"]][[5]], ncol = 2,
      nrow = 1, labels = plist[["Labels"]][4:5], label_size = 18)

    p2 = plot_grid(plist[["Plots"]][[6]], plist[["Plots"]][[7]],
      plist[["Plots"]][[8]], ncol = 3, nrow = 1, labels = plist[["Labels"]][6:8],
      label_size = 18)
    p22 = plot_grid(plist[["Plots"]][[9]], plist[["Plots"]][[10]], ncol = 2,
      nrow = 1, labels = plist[["Labels"]][9:10], label_size = 18)

    cowplot::plot_grid(p1, p12, p2, p22, ncol = 1)

[Package mlr version 2.17.1 Index]