| Type: | Package | 
| Title: | Pie, Donut and Rose Pie Plots | 
| Version: | 0.2.5 | 
| Maintainer: | Yabing Song <songyb0519@gmail.com> | 
| Description: | Create pie, donut and rose pie plot with 'ggplot2'. | 
| URL: | https://github.com/showteeth/ggpie | 
| License: | MIT + file LICENSE | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.1.1 | 
| Imports: | dplyr, grDevices, RColorBrewer, scales, tibble, ggnewscale, ggplot2, ggrepel, magrittr, rlang, utils, stringr | 
| Suggests: | rmarkdown, cowplot, prettydoc, knitr | 
| VignetteBuilder: | knitr | 
| NeedsCompilation: | no | 
| Packaged: | 2022-11-15 16:03:37 UTC; syb | 
| Author: | Yabing Song [aut, cre] | 
| Repository: | CRAN | 
| Date/Publication: | 2022-11-16 07:40:06 UTC | 
Create donut plot.
Description
Create donut plot.
Usage
ggdonut(
  data,
  group_key = NULL,
  count_type = c("count", "full"),
  fill_color = NULL,
  label_info = c("count", "ratio", "all"),
  label_split = "[[:space:]]+",
  label_len = 40,
  label_color = "black",
  label_type = c("circle", "horizon", "none"),
  label_pos = c("in", "out"),
  label_gap = 0.05,
  label_threshold = NULL,
  label_size = 4,
  border_color = "black",
  border_size = 1,
  r0 = 1,
  r1 = 3,
  donut.label = TRUE,
  donut.label.size = 4,
  donut.label.color = "red",
  nudge_x = 1,
  nudge_y = 1
)
Arguments
data | 
 Data frame contains full data or summarized data.  | 
group_key | 
 Column used to summarize the data. Default: NULL.  | 
count_type | 
 Data frame type, chosen from "count" and "full". "count" means summarized data and "full" means full data. Default: count.  | 
fill_color | 
 Colors used. Default: NULL (conduct automatic selection).  | 
label_info | 
 Label information type, chosen from count, ratio and all (count and ratio). Default: count.  | 
label_split | 
 Pattern used to split the label, support regular expression. Default: space.  | 
label_len | 
 The length of label text. Used when   | 
label_color | 
 Color of the label. Default: black.  | 
label_type | 
 Label style, chosen from circle, horizon and none (no label). Default: circle.  | 
label_pos | 
 Label position, chosen from in and out. Default: in.  | 
label_gap | 
 Gap between label and pie plot, used when   | 
label_threshold | 
 Threshold of the ratio to determine label position (in/out pie). Default: NULL.  | 
label_size | 
 Size of the label. Default: 4.  | 
border_color | 
 Border color. Default: black.  | 
border_size | 
 Border thickness. Default: 1.  | 
r0 | 
 The radius of inner blank circle. Default: 1.  | 
r1 | 
 The radius of outer circle. Default: 3.  | 
donut.label | 
 Logical value, whether to show total number in the center of the plot. Default: TRUE.  | 
donut.label.size | 
 The label size of center label. Default: 4.  | 
donut.label.color | 
 The color of center label. Default: red.  | 
nudge_x | 
 Parameter of   | 
nudge_y | 
 Parameter of   | 
Value
A ggplot2 object.
Examples
library(ggpie)
library(ggplot2)
data(diamonds)
# circle label and out of pie
ggdonut(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "circle",
  label_size = 4, label_pos = "out"
)
# circle label and in pie plot, with no split
ggdonut(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "circle", label_split = NULL,
  label_size = 4, label_pos = "in"
)
# horizon label and in pie plot, with no split
ggdonut(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon", label_split = NULL,
  label_size = 4, label_pos = "in"
)
# horizon label and in pie plot
ggdonut(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon",
  label_size = 4, label_pos = "in"
)
# horizon label and out of pie plot, with no split
ggdonut(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon", label_split = NULL,
  label_size = 4, label_pos = "out"
)
# horizon label and out of pie plot
ggdonut(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon",
  label_size = 4, label_pos = "out"
)
# with label threshold
ggdonut(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon", label_split = NULL,
  label_size = 4, label_pos = "in", label_threshold = 10
)
ggdonut(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon",
  label_size = 4, label_pos = "in", label_threshold = 10
)
Create nested pie plot.
Description
Create nested pie plot.
Usage
ggnestedpie(
  data,
  group_key = NULL,
  count_type = c("count", "full"),
  r0 = 0.5,
  r1 = 1.5,
  r2 = 2.5,
  inner_thick = 1,
  outer_thick = 1,
  inner_fill_color = NULL,
  inner_label = TRUE,
  inner_label_info = c("count", "ratio", "all"),
  inner_label_color = "black",
  inner_label_split = "[[:space:]]+",
  inner_label_len = 40,
  inner_label_threshold = NULL,
  inner_label_size = 4,
  outer_fill_color = NULL,
  outer_label_type = c("circle", "horizon", "none"),
  outer_label_pos = c("in", "out"),
  outer_label_info = c("count", "ratio", "all"),
  outer_label_split = "[[:space:]]+",
  outer_label_len = 40,
  outer_label_color = "black",
  outer_label_gap = 0.05,
  outer_label_threshold = NULL,
  outer_label_size = 4,
  border_color = "black",
  border_size = 1,
  outer_nudge_x = 1,
  outer_nudge_y = 1
)
Arguments
data | 
 Data frame contains full data or summarized data.  | 
group_key | 
 Column used to summarize the data. Default: NULL.  | 
count_type | 
 Data frame type, chosen from "count" and "full". "count" means summarized data and "full" means full data. Default: count.  | 
r0 | 
 The radius of inner blank circle. Default: 0.5 (donut plot). When set to 0, inner plot is pie.  | 
r1 | 
 The radius of inner pie plot. Default: 1.5.  | 
r2 | 
 The radius of outer pie plot. Default: 2.5.  | 
inner_thick | 
 The width of inner pie plot. Default: 1.  | 
outer_thick | 
 The width of outer pie plot. Default: 1.  | 
inner_fill_color | 
 Colors used for inner pie plot. Default: NULL (conduct automatic selection).  | 
inner_label | 
 Logical value, whether to show label on inner pie label. Default: TRUE.  | 
inner_label_info | 
 Label information type of inner pie plot, chosen from count, ratio and all (count and ratio). Default: count.  | 
inner_label_color | 
 Color of the label on inner pie. Default: black.  | 
inner_label_split | 
 Pattern used to split the label of inner pie, support regular expression. Default: space.  | 
inner_label_len | 
 Label text length of inner pie. Used when   | 
inner_label_threshold | 
 Threshold of the ratio to determine label or not on inner pie. Default: NULL.  | 
inner_label_size | 
 Size of the label on inner pie. Default: 4.  | 
outer_fill_color | 
 Colors used for outer pie plot. Default: NULL (conduct automatic selection).  | 
outer_label_type | 
 Label style of outer pie plot, chosen from circle, horizon and none (no label). Default: circle.  | 
outer_label_pos | 
 Label position of outer pie, chosen from in and out. Default: in.  | 
outer_label_info | 
 Label information type of outer pie plot, chosen from count, ratio and all (count and ratio). Default: count.  | 
outer_label_split | 
 Pattern used to split the label of outer pie, support regular expression. Default: space.  | 
outer_label_len | 
 Label text length of outer pie. Used when   | 
outer_label_color | 
 Color of the label on outer pie. Default: black.  | 
outer_label_gap | 
 Gap between label and outer pie plot, used when   | 
outer_label_threshold | 
 Threshold of the ratio to determine label position (in/out pie). Default: NULL.  | 
outer_label_size | 
 Size of the label on outer pie. Default: 4.  | 
border_color | 
 Border color. Default: black.  | 
border_size | 
 Border thickness. Default: 1.  | 
outer_nudge_x | 
 Parameter of   | 
outer_nudge_y | 
 Parameter of   | 
Value
A ggplot2 object.
Examples
library(ggpie)
library(ggplot2)
data(diamonds)
# inner circle label, outer circle label and in pie plot
ggnestedpie(
  data = diamonds, group_key = c("cut", "color"), count_type = "full",
  inner_label_info = "all", inner_label_split = NULL,
  outer_label_type = "circle", outer_label_pos = "in", outer_label_info = "all"
)
# inner circle label, outer circle label and in pie plot, remove fraction below 1 of inner pie
ggnestedpie(
  data = diamonds, group_key = c("cut", "color"), count_type = "full",
  inner_label_info = "all", inner_label_split = NULL,
  inner_label_threshold = 1, inner_label_size = 3,
  outer_label_type = "circle", outer_label_pos = "in", outer_label_info = "all"
)
# inner circle label, outer circle label and out of pie plot
ggnestedpie(
  data = diamonds, group_key = c("cut", "color"), count_type = "full",
  inner_label_info = "all", inner_label_split = NULL,
  outer_label_type = "circle", outer_label_pos = "out", outer_label_info = "all"
)
# inner circle label and no split, outer horizon label and out of pie plot,
# remove fraction below 1 of inner pie
ggnestedpie(
  data = diamonds, group_key = c("cut", "color"), count_type = "full",
  inner_label_info = "all", inner_label_split = NULL,
  inner_label_threshold = 1, inner_label_size = 3,
  outer_label_type = "horizon", outer_label_pos = "out", outer_label_info = "all"
)
# inner circle label and no split, outer horizon label and in pie plot,
# remove fraction below 1 of inner pie,
# adjust fraction below 10 to out of pie of outer pie plot.
ggnestedpie(
  data = diamonds, group_key = c("cut", "color"), count_type = "full",
  inner_label_info = "all", inner_label_split = NULL,
  inner_label_threshold = 1, inner_label_size = 3,
  outer_label_type = "horizon", outer_label_pos = "in",
  outer_label_info = "all", outer_label_threshold = 10
)
# create blank between inner and outer pie
ggnestedpie(
  data = diamonds, group_key = c("cut", "color"), count_type = "full", r0 = 0.5, r1 = 1.5, r2 = 2.6,
  inner_label_info = "all", inner_label_split = NULL,
  inner_label_threshold = 1, inner_label_size = 3,
  outer_label_type = "horizon", outer_label_pos = "in",
  outer_label_info = "all", outer_label_threshold = 10
)
Create Pie plot.
Description
Create Pie plot.
Usage
ggpie(
  data,
  group_key = NULL,
  count_type = c("count", "full"),
  fill_color = NULL,
  label_info = c("count", "ratio", "all"),
  label_split = "[[:space:]]+",
  label_len = 40,
  label_color = "black",
  label_type = c("circle", "horizon", "none"),
  label_pos = c("in", "out"),
  label_gap = 0.05,
  label_threshold = NULL,
  label_size = 4,
  border_color = "black",
  border_size = 1,
  nudge_x = 1,
  nudge_y = 1
)
Arguments
data | 
 Data frame contains full data or summarized data.  | 
group_key | 
 Column used to summarize the data. Default: NULL.  | 
count_type | 
 Data frame type, chosen from "count" and "full". "count" means summarized data and "full" means full data. Default: count.  | 
fill_color | 
 Colors used. Default: NULL (conduct automatic selection).  | 
label_info | 
 Label information type, chosen from count, ratio and all (count and ratio). Default: count.  | 
label_split | 
 Pattern used to split the label, support regular expression. Default: space.  | 
label_len | 
 The length of label text. Used when   | 
label_color | 
 Color of the label. Default: black.  | 
label_type | 
 Label style, chosen from circle, horizon and none (no label). Default: circle.  | 
label_pos | 
 Label position, chosen from in and out. Default: in.  | 
label_gap | 
 Gap between label and pie plot, used when   | 
label_threshold | 
 Threshold of the ratio to determine label position (in/out pie). Default: NULL.  | 
label_size | 
 Size of the label. Default: 4.  | 
border_color | 
 Border color. Default: black.  | 
border_size | 
 Border thickness. Default: 1.  | 
nudge_x | 
 Parameter of   | 
nudge_y | 
 Parameter of   | 
Value
A ggplot2 object.
Examples
library(ggpie)
library(ggplot2)
data(diamonds)
# with no label
ggpie(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "none"
)
# circle label and out of pie
ggpie(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "circle",
  label_size = 4, label_pos = "out"
)
# circle label and in pie plot, with no split
ggpie(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "circle", label_split = NULL,
  label_size = 4, label_pos = "in"
)
# horizon label and in pie plot, with no split
ggpie(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon", label_split = NULL,
  label_size = 4, label_pos = "in"
)
# horizon label and in pie plot, split with space
ggpie(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon",
  label_size = 4, label_pos = "in"
)
# horizon label and out pie plot, with no split
ggpie(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon", label_split = NULL,
  label_size = 4, label_pos = "out"
)
# with label threshold
ggpie(
  data = diamonds, group_key = "cut", count_type = "full",
  label_info = "all", label_type = "horizon", label_split = NULL,
  label_size = 4, label_pos = "in", label_threshold = 10
)
Create 3D pie plot.
Description
Create 3D pie plot.
Usage
ggpie3D(
  data,
  group_key = NULL,
  count_type = c("count", "full"),
  fill_color = NULL,
  start_degrees = 0,
  tilt_degrees = -20,
  height = 0.1,
  darken = 0.15,
  camera_eye = c(0, 3, 5),
  camera_look_at = c(0, 0, 0),
  show_label = TRUE,
  label_info = c("count", "ratio", "all"),
  label_split = "[[:space:]]+",
  label_len = 40,
  label_size = 4
)
Arguments
data | 
 Data frame contains full data or summarized data.  | 
group_key | 
 Column used to summarize the data. Default: NULL.  | 
count_type | 
 Data frame type, chosen from "count" and "full". "count" means summarized data and "full" means full data. Default: count.  | 
fill_color | 
 Colors used. Default: NULL (conduct automatic selection).  | 
start_degrees | 
 starting angle for first pie slice (in degrees). Default: 0.  | 
tilt_degrees | 
 angle by which to tilt the pie towards the camera (in degrees). Default: 0.  | 
height | 
 height of the pie. Default: 0.1.  | 
darken | 
 Shadow degree. Default: 0.15.  | 
camera_eye | 
 location of camera eye. Default: c(0, 3, 5).  | 
camera_look_at | 
 at what point is the camera looking. Default: c(0, 0, 0).  | 
show_label | 
 Logical value, whether to show label or not. Default: TRUE.  | 
label_info | 
 Label information type, chosen from count, ratio and all (count and ratio). Default: count.  | 
label_split | 
 Pattern used to split the label, support regular expression. Default: space.  | 
label_len | 
 The length of label text. Used when   | 
label_size | 
 Size of the label. Default: 4.  | 
Value
A ggplot2 object.
Examples
library(ggpie)
library(ggplot2)
data(diamonds)
ggpie3D(data = diamonds, group_key = "cut", count_type = "full", tilt_degrees = -10)
ggpie3D(
  data = mtcars, group_key = "cyl", count_type = "full",
  tilt_degrees = -10, start_degrees = 0
)
data <- data.frame(group = letters[1:5], count = c(1, 2, 3, 1, 1), stringsAsFactors = FALSE)
ggpie3D(data = data, start_degrees = 0, label_split = NULL)
Create rose pie plot.
Description
Create rose pie plot.
Usage
ggrosepie(
  data,
  group_key = NULL,
  count_type = c("count", "full"),
  fill_color = NULL,
  label_info = c("count", "ratio", "all"),
  label_split = NULL,
  label_len = 40,
  label_color = "black",
  sort = TRUE,
  show_tick = TRUE,
  tick_break = NULL,
  show_label = TRUE,
  label_sep = "|",
  label_gap = 0.05,
  label_size = 4,
  donut_frac = 0.1,
  donut_label = TRUE,
  donut_label_size = 4,
  donut_label_color = "red",
  border_color = "black",
  border_size = 1
)
Arguments
data | 
 Data frame contains full data or summarized data.  | 
group_key | 
 Column used to summarize the data, one or two are acceptable. Default: NULL.  | 
count_type | 
 Data frame type, chosen from "count" and "full". "count" means summarized data and "full" means full data. Default: count.  | 
fill_color | 
 Colors used. When length of   | 
label_info | 
 Label information type, chosen from count, ratio and all (count and ratio). Default: count.  | 
label_split | 
 Pattern used to split the label, support regular expression. Default: NULL.  | 
label_len | 
 The length of label text. Used when   | 
label_color | 
 Color of the label. When length of   | 
sort | 
 Logical value, whether to order the plot by counts. Default: TRUE.  | 
show_tick | 
 Logical value, whether to show the tick. Default: TRUE.  | 
tick_break | 
 The break of tick. Default: NULL (conduct automatic selection).  | 
show_label | 
 Logical value, whether to show the label. Default: TRUE.  | 
label_sep | 
 The separator between group and count info. Default: |.  | 
label_gap | 
 The gap between label and plot. Default: 0.05 (count + 0.05*count).  | 
label_size | 
 The size of label. Default: 4.  | 
donut_frac | 
 The fraction of donut. Default: 0.1 (0.1*max(count)).  | 
donut_label | 
 Logical value, whether to show total number in the center of the plot. Default: TRUE.  | 
donut_label_size | 
 The label size of center label. Default: 4.  | 
donut_label_color | 
 The color of center label. Default: red.  | 
border_color | 
 Border color. Default: black.  | 
border_size | 
 Border thickness. Default: 1.  | 
Value
A ggplot2 object.
Examples
library(ggpie)
library(ggplot2)
data(diamonds)
# do not show tick
ggrosepie(diamonds,
  group_key = "color", count_type = "full", label_info = "all",
  show_tick = FALSE, donut_frac = 0.3, donut_label_size = 3
)
# show tick and with automatic selection
ggrosepie(diamonds,
  group_key = "color", count_type = "full", label_info = "all",
  donut_frac = 0.3, donut_label_size = 3
)
# show tick and with specific break
ggrosepie(diamonds,
  group_key = "color", count_type = "full", label_info = "all",
  tick_break = c(3000, 5000, 7000, 11000), donut_frac = 0.3, donut_label_size = 3
)
# two group variable, and do not show tick
ggrosepie(diamonds,
  group_key = c("color", "clarity"),
  count_type = "full", label_info = "all",
  show_tick = FALSE, donut_frac = 0.3, donut_label_size = 3
)
# two group variable, show tick and with automatic selection
ggrosepie(diamonds,
  group_key = c("color", "clarity"),
  count_type = "full", label_info = "all",
  donut_frac = 0.3, donut_label_size = 3
)
# two group variable, show tick and with specific break
ggrosepie(diamonds,
  group_key = c("color", "clarity"),
  count_type = "full", label_info = "all",
  tick_break = c(3000, 5000, 7000, 11000), donut_frac = 0.3, donut_label_size = 3
)