ggballoonplot {ggpubr} | R Documentation |
Ballon plot
Description
Plot a graphical matrix where each cell contains a dot whose size reflects the relative magnitude of the corresponding component. Useful to visualize contingency table formed by two categorical variables.
Usage
ggballoonplot(
data,
x = NULL,
y = NULL,
size = "value",
facet.by = NULL,
size.range = c(1, 10),
shape = 21,
color = "black",
fill = "gray",
show.label = FALSE,
font.label = list(size = 12, color = "black"),
rotate.x.text = TRUE,
ggtheme = theme_minimal(),
...
)
Arguments
data |
a data frame. Can be:
. |
x , y |
the column names specifying, respectively, the first and the second variable forming the contingency table. Required only when the data is a stretched contingency table. |
size |
point size. By default, the points size reflects the relative
magnitude of the value of the corresponding cell ( |
facet.by |
character vector, of length 1 or 2, specifying grouping variables for faceting the plot into multiple panels. Should be in the data. |
size.range |
a numeric vector of length 2 that specifies the minimum and
maximum size of the plotting symbol. Default values are |
shape |
points shape. The default value is 21. Alternaive values include 22, 23, 24, 25. |
color |
point border line color. |
fill |
point fill color. Default is "lightgray". Considered only for points 21 to 25. |
show.label |
logical. If TRUE, show the data cell values as point labels. |
font.label |
a vector of length 3 indicating respectively the size (e.g.: 14), the style (e.g.: "plain", "bold", "italic", "bold.italic") and the color (e.g.: "red") of point labels. For example font.label = c(14, "bold", "red"). To specify only the size and the style, use font.label = c(14, "plain"). |
rotate.x.text |
logica. If TRUE (default), rotate the x axis text. |
ggtheme |
function, ggplot2 theme name. Default value is theme_pubr(). Allowed values include ggplot2 official themes: theme_gray(), theme_bw(), theme_minimal(), theme_classic(), theme_void(), .... |
... |
other arguments passed to the function |
Examples
# Define color palette
my_cols <- c("#0D0887FF", "#6A00A8FF", "#B12A90FF",
"#E16462FF", "#FCA636FF", "#F0F921FF")
# Standard contingency table
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# Read a contingency table: housetasks
# Repartition of 13 housetasks in the couple
data <- read.delim(
system.file("demo-data/housetasks.txt", package = "ggpubr"),
row.names = 1
)
data
# Basic ballon plot
ggballoonplot(data)
# Change color and fill
ggballoonplot(data, color = "#0073C2FF", fill = "#0073C2FF")
# Change color according to the value of table cells
ggballoonplot(data, fill = "value")+
scale_fill_gradientn(colors = my_cols)
# Change the plotting symbol shape
ggballoonplot(data, fill = "value", shape = 23)+
gradient_fill(c("blue", "white", "red"))
# Set points size to 8, but change fill color by values
# Sow labels
ggballoonplot(data, fill = "value", color = "lightgray",
size = 10, show.label = TRUE)+
gradient_fill(c("blue", "white", "red"))
# Streched contingency table
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# Create an Example Data Frame Containing Car x Color data
carnames <- c("bmw","renault","mercedes","seat")
carcolors <- c("red","white","silver","green")
datavals <- round(rnorm(16, mean=100, sd=60),1)
car_data <- data.frame(Car = rep(carnames,4),
Color = rep(carcolors, c(4,4,4,4) ),
Value=datavals )
car_data
ggballoonplot(car_data, x = "Car", y = "Color",
size = "Value", fill = "Value") +
scale_fill_gradientn(colors = my_cols) +
guides(size = FALSE)
# Grouped frequency table
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
data("Titanic")
dframe <- as.data.frame(Titanic)
head(dframe)
ggballoonplot(
dframe, x = "Class", y = "Sex",
size = "Freq", fill = "Freq",
facet.by = c("Survived", "Age"),
ggtheme = theme_bw()
)+
scale_fill_gradientn(colors = my_cols)
# Hair and Eye Color of Statistics Students
data(HairEyeColor)
ggballoonplot( as.data.frame(HairEyeColor),
x = "Hair", y = "Eye", size = "Freq",
ggtheme = theme_gray()) %>%
facet("Sex")