Given a data frame with the results of (multiple) runs of (multiple) different multi-objective optimization algorithms on (multiple) problem instances, the function generates ggplot scatter-plots of the obtained Pareto-front approximations.

plot_scatter2d(
  df,
  obj.cols = c("y1", "y2"),
  shape = "algorithm",
  colour = NULL,
  size = NULL,
  bubble = FALSE,
  highlight.algos = NULL,
  offset.highlighted = 0,
  title = NULL,
  subtitle = NULL,
  facet.type = "wrap",
  facet.args = list()
)

Arguments

df

[data.frame]
Data frame with columns at least those given via parameter obj.cols, “problem” and “algorithm”.

obj.cols

[character(>= 2)]
Column names of the objective function values. Default is c("y1", "y2").

shape

[character(1)]
Name of column that shall be used to define the point's shape. Default is “algorithm”.

colour

[character(1)]
Name of column that shall be used to define the point's colour Default is NULL, i.e., coloring is deactivated.

size

[character(1)]
Name of column that shall be used to define the point's size. Default is NULL, i.e., sizing is deactivated. Useful to visualize a third objective (bubble-chart; see argument bubble).

bubble

[logical(1)]
Plot bubble-chart? I.e., is colour used to highlight another objective? Default is FALSE.

highlight.algos

[character(1)]
Name of algorithm to highlight exclusively. Useful to highlight, e.g., the true Pareto-optimal front (if known) or some reference set. Default is NULL, i.e., unknown.

offset.highlighted

[numeric(1)]
Numeric offset used to shift set (see highlight.algos) which should be highlighted. Even though this produces objective vectors, it may be used to make visible reference sets which otherwise would be hidden by overlap of multiple other approximation sets.

title

[character(1)]
Plot title.

subtitle

[character(1)]
Plot subtitle.

facet.type

[character(1)]
Which faceting method to use? Pass “wrap” for facet_wrap or “grid” for facet_grid. Default is “wrap”.

facet.args

[list]
Named list of arguments passed down to facet_wrap or facet_grid respectively (depends on facet.type). E.g., nrow to change layout. Default is the empty list. In this case, data is grouped by problem.

Value

A ggplot object.

References

[1] T. Tušar and B. Filipič, "Visualization of Pareto Front Approximations in Evolutionary Multiobjective Optimization: A Critical Review and the Prosection Method," in IEEE Transactions on Evolutionary Computation, vol. 19, no. 2, pp. 225-245, April 2015, doi: 10.1109/TEVC.2014.2313407.

See also

Other multi-objective visualizations: plot_eaf_diff(), plot_eaf(), plot_heatmap(), plot_pcp(), plot_radar(), plot_scatter3d()