Type: Package
Title: Scales that Focus Specific Levels in your ggplot()
Version: 1.0.1
BugReports: https://github.com/Freguglia/ggfocus/issues
URL: https://github.com/Freguglia/ggfocus
Description: A 'ggplot2' extension that provides tools for automatically creating scales to focus on subgroups of the data plotted without losing other information.
License: GPL-3
Encoding: UTF-8
RoxygenNote: 7.3.2
Depends: R (≥ 4.1.0), ggplot2
Imports: dplyr, rlang, RColorBrewer
Suggests: knitr, rmarkdown, maps, ggrepel, testthat (≥ 3.0.0)
VignetteBuilder: knitr
Config/testthat/edition: 3
NeedsCompilation: no
Packaged: 2025-09-02 20:32:41 UTC; victor
Author: Victor Freguglia [aut, cre]
Maintainer: Victor Freguglia <victorfreguglia@gmail.com>
Repository: CRAN
Date/Publication: 2025-09-02 20:50:19 UTC

Focus scales for 'ggplot' objects

Description

Scale that focus on specific levels.

Usage

scale_alpha_focus(focus_levels, alpha_focus = 1, alpha_other = 0.2)

scale_color_focus(
  focus_levels,
  color_focus = NULL,
  color_other = "gray",
  palette_focus = "Set1"
)

scale_fill_focus(
  focus_levels,
  color_focus = NULL,
  color_other = "gray",
  palette_focus = "Set1"
)

scale_linetype_focus(focus_levels, linetype_focus = 1, linetype_other = 3)

scale_shape_focus(focus_levels, shape_focus = 8, shape_other = 1)

scale_size_focus(focus_levels, size_focus = 3, size_other = 1)

Arguments

focus_levels

character vector with levels to focus on.

alpha_focus

'alpha' value for focused levels. Defaults to 1.

alpha_other

'alpha' value for other levels. Defaults to 0.05.

color_focus

color(s) for focused levels (a single value or a vector with the same length as the number of highlighted levels).

color_other

color for other levels.

palette_focus

If 'color_focus' is not specified, provide a pelette from RColorBrewer to pick colors.

linetype_focus

vector of 'linetype' value(s) for focused levels with length 1 or equal to 'focus_levels'. Defaults to 1.

linetype_other

'linetype' value for other levels. Defaults to 3.

shape_focus

'shape' value for focused levels. Defaults to 8.

shape_other

'shape' value for other levels. Defaults to 1.

size_focus

'size' value for focused levels. Defaults to 3.

size_other

'size' value for other levels. Defaults to 1.

Note

Use RColorBrewer::display.brewer.all() to see the palettes available.

Examples

ggplot(iris, aes(x = Petal.Length, y = Sepal.Length, alpha = Species)) +
 geom_point() +
 scale_alpha_focus(focus_levels = "versicolor")


ggplot(iris, aes(x = Petal.Length, y = Sepal.Length, color = Species)) +
 geom_point() +
 scale_color_focus(focus_levels = "setosa", color_focus = "red")

ggplot(iris, aes(x = Petal.Length, y = Sepal.Length, color = Species)) +
 geom_point() +
 scale_color_focus(focus_levels = c("setosa", "virginica"), color_focus = c("red", "blue"))

ggplot(mtcars, aes(x = wt, y = mpg, color = rownames(mtcars))) +
 geom_point() +
 scale_color_focus(focus_levels = c("Mazda RX4", "Merc 230"), palette_focus = "Set2")

ggplot(iris,aes(x = Petal.Length, group = Species, fill = Species)) +
  geom_histogram() +
  scale_fill_focus(focus_levels = "versicolor", color_focus = "red")

ggplot(iris,aes(x = Petal.Length, y = Sepal.Length, shape = Species)) +
 geom_point() +
 scale_shape_focus(focus_levels = "versicolor")


ggplot(iris,aes(x = Petal.Length, y = Sepal.Length, size = Species)) +
 geom_point() +
 scale_size_focus(focus_levels = "versicolor")