# Controlling Plot Aesthetics

Controlling plot aesthetics is straightforward in `dabestr`. A key feature of `dabestr` is the ability for users to freely customize various components of a `dabestr` estimation plot, allowing for the creation of an optimal-looking plot.

## Getting started

At this point, it is assumed that you have already obtained the effectsize object named `dabest_effectsize_obj`. To add and customize specific plot components, include them as arguments in the `dabest_plot()` function.

    dabest_plot(
      dabest_effectsize_obj,
      float_contrast = TRUE,
      plot_component = "adjustment_value"
    )

## Adjusting Text

All text elements in the estimation plot can be modified. This includes the value, the size and even the removal of the text elements completely.

### Size

The following parameters are responsible for adjusting the size of the text elements.

- `swarm_x_text`: Numeric value determining the font size of the x-axis of the swarm plot. The default value is 11.
- `swarm_y_text`: Numeric value determining the font size of the y-axis of the swarm plot. The default value is 15.
- `contrast_x_text`: Numeric value determining the font size of the x-axis of the contrast plot. The default value is 11.
- `contrast_y_text`:Numeric value determining the font size of the y-axis of the contrast plot. The default value is 15.

Check how the size has been changed in this example:

    dabest_plot(
      dabest_twogroup_obj.mean_diff,
      float_contrast = TRUE,
      swarm_x_text = 30,
      swarm_y_text = 1,
      contrast_x_text = 30,
      contrast_y_text = 5
    )

### Content

The following parameters are responsible for adjusting the content of the text elements.

- `swarm_label`: string value for the label of the y-axis in the swarm plot. This is the default “value” or “proportion of success” for proportion plots.
- `contrast_label`: string value for the label of the y-axis in the contrast plot. This is the default “effect size” based on the effect sizes as given in `effect_size()`.
- `delta2_label`: string value for the label of the y-axis in the swarm plot. The default value is NULL.

    dabest_plot(
      dabest_twogroup_obj.mean_diff,
      float_contrast = TRUE,
      swarm_label = "I love estimation statistics.",
      contrast_label = "I love it more than you do!"
    )

## Adjusting Visual Elements

Visual elements in `dabestr` refer to the shapes, lines, symbols or other visual representations that convey data and relationship in a plot. Many of these elements can be adjusted in `dabestr`.

### Markers

The following parameters are responsible for adjusting the properties of various markers in the plot.

- `raw_marker_size`: Numeric value determining the size of the points used in the swarm plot. The default value is 1.5.
- `raw_marker_alpha`: Numeric value determining the transparency of the points in the swarm plot. The default value is 1.
- `raw_bar_width`: Numeric value determining the width of the bar in the Sankey diagram. The default value is 0.3.
- `raw_marker_spread`: The distance between the points if it is a swarm plot. The default value is 2.
- `raw_marker_side_shift`: The horizontal distance that the swarm plot points are moved in the direction of the `asymmetric_side`. The default value is 0.
- `tufte_size`: Numeric value determining the size of the tufte line in the swarm plot. The default value is 0.8.
- `es_marker_size`: Numeric value determining the size of the points used in the delta plot. The default value is 0.5.
- `es_line_size`: Numeric value determining the size of the ci line in the delta plot. The default value is 0.8.

    A <- dabest_plot(dabest_twogroup_obj.mean_diff,
      float_contrast = TRUE,
      swarm_label = "", contrast_label = "",
      raw_marker_size = 1, raw_marker_alpha = 1
    )
    B <- dabest_plot(dabest_twogroup_obj.mean_diff,
      float_contrast = TRUE,
      swarm_label = "", contrast_label = "",
      raw_marker_size = 2, raw_marker_alpha = 0.5
    )

    cowplot::plot_grid(
      plotlist = list(A, B),
      nrow = 1,
      ncol = 2,
      labels = "AUTO"
    )

### Axes

The following parameters are responsible for adjusting the y-axis limits for both the raw data and contrast axes of the plot. By modifying the range, it creates the effect of zooming in or out of the plot.

- `swarm_ylim`: Vector containing the y-limits for the swarm plot. The default value is NULL.
- `contrast_ylim`: Vector containing the y-limits for the delta plot. The default value is NULL.
- `delta2_ylim`: Vector containing the y-limits for the delta-delta plot. The default value is NULL.

If your effect size is qualitatively inverted (i.e., a smaller value indicates a better outcome), you can invert the vector passed to `contrast_ylim.`

    dabest_plot(dabest_multigroup_obj.mean_diff,
      float_contrast = FALSE,
      contrast_label = "More negative is better!",
      swarm_ylim = c(1, 5), contrast_ylim = c(0.7, -1.2)
    )

### Palettes

The following parameters are responsible for adjusting the plot palettes of the plot.

- `custom_palette`: string to set the colour palette. The default value is “d3”. The following palettes are also available: npg, aaas, nejm, lancet, jama, jco, ucscgb, d3, locuszoom, igv, cosmic, uchicago, brewer, ordinal and viridis_d.

    npg <- dabest_plot(dabest_unpaired_props.mean_diff,
      swarm_label = "", contrast_label = "",
      custom_palette = "npg"
    )
    nejm <- dabest_plot(dabest_unpaired_props.mean_diff,
      swarm_label = "", contrast_label = "",
      custom_palette = "nejm"
    )
    jama <- dabest_plot(dabest_unpaired_props.mean_diff,
      swarm_label = "", contrast_label = "",
      custom_palette = "jama"
    )
    locuszoom <- dabest_plot(dabest_unpaired_props.mean_diff,
      swarm_label = "", contrast_label = "",
      custom_palette = "locuszoom"
    )

    cowplot::plot_grid(
      plotlist = list(npg, nejm, jama, locuszoom),
      nrow = 2,
      ncol = 2
    )

### Misc

- `sankey`: this is a boolean value determining if the flows between the bar charts will be plotted. The default value is TRUE.

    dabest_plot(dabest_paired_props.mean_diff, sankey = FALSE, raw_bar_width = 0.15)

- `flow`: this is a boolean value determining whether the bars will be plotted in pairs. The default value is TRUE.

    dabest_plot(dabest_paired_props.mean_diff, flow = FALSE, raw_bar_width = 0.15)

- `asymmetric_side`: this is a string value that controls at which side the swarm points are shown. Accepted values are: “right” or “left”. The default one is “right”.

    right <- dabest_plot(dabest_twogroup_obj.mean_diff,
      float_contrast = FALSE,
      swarm_label = "", contrast_label = "",
      asymmetric_side = "right"
    )
    left <- dabest_plot(dabest_twogroup_obj.mean_diff,
      float_contrast = FALSE,
      swarm_label = "", contrast_label = "",
      asymmetric_side = "left"
    )

    cowplot::plot_grid(
      plotlist = list(right, left),
      nrow = 1,
      ncol = 2
    )

- `show_delta2`: this is a boolean value determining if the delta-delta plot is shown. The default value is FALSE.
- `show_mini_meta`: this is a boolean value determining if the weighted average plot is shown. When `FALSE`, the resulting graph would be identical to a multiple two-groups plot. The default value is FALSE.
- `show_zero_dot`: this is a boolean value determining if there is a dot on the zero line of the effect size for the control-control group. The default value is TRUE.
- `show_baseline_ec`: this is a boolean value determining whether the baseline curve is shown. The default value is FALSE.

    dabest_plot(dabest_multigroup_obj.mean_diff,
      float_contrast = FALSE,
      show_baseline_ec = TRUE
    )