geom-scatterpie: geom_scatterpie

geom_scatterpieR Documentation

geom_scatterpie

Description

scatter pie plot

Usage

geom_scatterpie(
  mapping = NULL,
  data = NULL,
  cols,
  pie_scale = 1,
  sorted_by_radius = FALSE,
  legend_name = "type",
  long_format = FALSE,
  label_radius = NULL,
  label_show_ratio = TRUE,
  label_threshold = 0,
  donut_radius = NULL,
  bg_circle_radius = NULL,
  ...
)

geom_scatterpie2(
  mapping = NULL,
  data,
  cols,
  pie_scale = 1,
  sorted_by_radius = FALSE,
  legend_name = "type",
  long_format = FALSE,
  label_radius = NULL,
  label_show_ratio = TRUE,
  label_threshold = 0,
  donut_radius = NULL,
  bg_circle_radius = NULL,
  ...
)

Arguments

mapping

aes mapping

data

data

cols

cols the pie data

pie_scale

amount to scale the pie size if there is no radius mapping exists

sorted_by_radius

whether plotting large pie first

legend_name

name of fill legend

long_format

logical whether use long format of input data

label_radius

numeric the radius of label position (relative the radius of pie), default is NULL, when it is provided, the ratio or value label will be displayed.

label_show_ratio

logical only work when label_radius is not NULL, default is TRUE, meaning the ratio of label will be displayed.

label_threshold

numeric the threshold is to control display the label, the ratio of slice pie smaller than the threshold will not be displayed. default is 0.

donut_radius

numeric the radius of donut chart (relative the radius of circle), default is NULL. it should be between 0 and 1, if it is provided, the donut chart will be displayed instead of pie chart.

bg_circle_radius

numeric the radius of background circle, default is FALSE, we suggest setting it to between 1 and 1.5 .

...

additional parameters

Value

layer

Author(s)

Guangchuang Yu

Examples

library(ggplot2)
d <- data.frame(x=rnorm(5), y=rnorm(5))
d$A <- abs(rnorm(5, sd=1))
d$B <- abs(rnorm(5, sd=2))
d$C <- abs(rnorm(5, sd=3))

ggplot() + 
geom_scatterpie(
  aes(x=x, y=y), data=d, cols=c("A", "B", "C")
) + 
coord_fixed()

ggplot() + 
geom_scatterpie(
  aes(x=x, y=y), data = d, cols=c("A", "B", "C"), 
  label_radius=1.05
) + 
coord_fixed()

d <- tidyr::gather(d, key="letters", value="value", -x:-y)
ggplot() + geom_scatterpie(aes(x=x, y=y), data=d, cols="letters", long_format=TRUE) + coord_fixed()
p1 <- ggplot() + 
      geom_scatterpie(
        mapping = aes(x=x, y=y), data=d, cols="letters", 
        long_format=TRUE, 
        donut_radius=.5
      ) + 
      coord_fixed()
p1
p2 <- ggplot() + 
      geom_scatterpie(
        mapping = aes(x=x, y=y), data=d, cols="letters", 
        long_format=TRUE, 
        donut_radius = .5, 
        bg_circle_radius = 1.2
      ) + 
      coord_fixed()
p2
d |> dplyr::select(c(x, y)) |> dplyr::distinct() |> dplyr::mutate(Cell=c('A','A','B','C','B')) -> d2
d |> dplyr::left_join(d2) -> d3
d3$r_size <- c(2, 3, 4, 5, 6) * .01

head(d3)
p3 <- ggplot() +
     geom_scatterpie(data = d3, mapping = aes(x=x, y=y, r = r_size, color=Cell), cols="letters",
                     long_format=TRUE, donut_radius=.5, color = NA, linewidth=2,
                      bg_circle_radius=1.2) + coord_fixed()
p3

p4 <- ggplot() +
      geom_scatterpie(data = d3,
                      mapping = aes(x, y = y, r = r_size),
                      cols = 'letters',
                      long_format = TRUE,
                      label_radius = 1.1,
                      label_show_ratio = FALSE,
                      label_threshold = 0.06,
                      fontsize = 3
      ) +
      coord_fixed()
p4

scatterpie documentation built on Sept. 11, 2024, 5:58 p.m.