Visualizing the change of a numeric value over the progression of a categorical variable.
Usage
LinePlot(
data,
x,
y = NULL,
group_by = NULL,
group_by_sep = "_",
split_by = NULL,
split_by_sep = "_",
fill_point_by_x_if_no_group = TRUE,
color_line_by_x_if_no_group = TRUE,
add_bg = FALSE,
bg_palette = "stripe",
bg_palcolor = NULL,
bg_alpha = 0.2,
add_errorbars = FALSE,
errorbar_width = 0.1,
errorbar_alpha = 1,
errorbar_color = "grey30",
errorbar_linewidth = 0.75,
errorbar_min = NULL,
errorbar_max = NULL,
errorbar_sd = NULL,
pt_alpha = 1,
pt_size = 5,
line_type = "solid",
line_width = 1,
line_alpha = 0.8,
theme = "theme_this",
theme_args = list(),
palette = "Paired",
palcolor = NULL,
x_text_angle = 0,
aspect.ratio = 1,
legend.position = "right",
legend.direction = "vertical",
facet_by = NULL,
facet_scales = "fixed",
combine = TRUE,
nrow = NULL,
ncol = NULL,
byrow = TRUE,
facet_nrow = NULL,
facet_ncol = NULL,
facet_byrow = TRUE,
facet_args = list(),
title = NULL,
subtitle = NULL,
xlab = NULL,
ylab = NULL,
keep_empty = FALSE,
seed = 8525,
...
)
Arguments
- data
A data frame.
- x
A character string specifying the column name of the data frame to plot for the x-axis.
- y
A character string specifying the column name of the data frame to plot for the y-axis.
- group_by
Columns to group the data for plotting For those plotting functions that do not support multiple groups, They will be concatenated into one column, using
group_by_sep
as the separator- group_by_sep
A character string specifying the separator to use when concatenating multiple columns.
- split_by
The column(s) to split data by and plot separately.
- split_by_sep
The separator for multiple split_by columns. See
split_by
- fill_point_by_x_if_no_group
A logical value indicating whether to color the points by the x-axis values when there is no group_by column.
- color_line_by_x_if_no_group
A logical value indicating whether to color the lines by the x-axis values
- add_bg
A logical value indicating whether to add a background to the plot.
- bg_palette
The palette to use for the background.
- bg_palcolor
The color to use for the background.
- bg_alpha
The alpha value of the background.
- add_errorbars
A logical value indicating whether to add error bars to the plot.
- errorbar_width
The width of the error bars.
- errorbar_alpha
The alpha value of the error bars.
- errorbar_color
The color to use for the error bars. If "line", the error bars will be colored the same as the lines.
- errorbar_linewidth
The line width of the error bars.
- errorbar_min
The column in the data frame containing the lower bound of the error bars.
- errorbar_max
The column in the data frame containing the upper bound of the error bars.
- errorbar_sd
The column in the data frame containing the standard deviation of the error bars. If errorbar_min and errorbar_max are not provided, this column will be used to calculate the error bars. errorbar_min = y - errorbar_sd, errorbar_max = y + errorbar_sd. If errorbar_min and errorbar_max are provided, this column will be ignored.
- pt_alpha
The alpha value of the points.
- pt_size
The size of the points.
- line_type
The type of line to draw.
- line_width
The width of the line.
- line_alpha
The alpha value of the line.
- theme
A character string or a theme class (i.e. ggplot2::theme_classic) specifying the theme to use. Default is "theme_this".
- theme_args
A list of arguments to pass to the theme function.
- palette
A character string specifying the palette to use. A named list or vector can be used to specify the palettes for different
split_by
values.- palcolor
A character string specifying the color to use in the palette. A named list can be used to specify the colors for different
split_by
values. If some values are missing, the values from the palette will be used (palcolor will be NULL for those values).- x_text_angle
A numeric value specifying the angle of the x-axis text.
- aspect.ratio
A numeric value specifying the aspect ratio of the plot.
- legend.position
A character string specifying the position of the legend. if
waiver()
, for single groups, the legend will be "none", otherwise "right".- legend.direction
A character string specifying the direction of the legend.
- facet_by
A character string specifying the column name of the data frame to facet the plot. Otherwise, the data will be split by
split_by
and generate multiple plots and combine them into one usingpatchwork::wrap_plots
- facet_scales
Whether to scale the axes of facets. Default is "fixed" Other options are "free", "free_x", "free_y". See
ggplot2::facet_wrap
- combine
Whether to combine the plots into one when facet is FALSE. Default is TRUE.
- nrow
A numeric value specifying the number of rows in the facet.
- ncol
A numeric value specifying the number of columns in the facet.
- byrow
A logical value indicating whether to fill the plots by row.
- facet_nrow
A numeric value specifying the number of rows in the facet. When facet_by is a single column and facet_wrap is used.
- facet_ncol
A numeric value specifying the number of columns in the facet. When facet_by is a single column and facet_wrap is used.
- facet_byrow
A logical value indicating whether to fill the plots by row. Default is TRUE.
- facet_args
A list of arguments to pass to
ggplot2::facet_wrap()
orggplot2::facet_grid()
. when there is no group_by column.- title
A character string specifying the title of the plot. A function can be used to generate the title based on the default title. This is useful when split_by is used and the title needs to be dynamic.
- subtitle
A character string specifying the subtitle of the plot.
- xlab
A character string specifying the x-axis label.
- ylab
A character string specifying the y-axis label.
- keep_empty
A logical value indicating whether to keep empty groups. If FALSE, empty groups will be removed.
- seed
The random seed to use. Default is 8525.
- ...
Additional arguments.
Examples
data <- data.frame(
x = factor(c("A", "B", "C", "D", "A", "B", "C", "D"), levels = LETTERS[1:6]),
y = c(10, 8, 16, 4, 6, 12, 14, 2),
group = c("G1", "G1", "G1", "G1", "G2", "G2", "G2", "G2"),
facet = c("F1", "F1", "F2", "F2", "F3", "F3", "F4", "F4")
)
LinePlot(data, x = "x", y = "y")
LinePlot(data, x = "x", y = "y", group_by = "group")
LinePlot(data, x = "x", y = "y", group_by = "group", add_bg = TRUE)
LinePlot(data, x = "x", y = "y", group_by = "group", facet_by = "facet")
LinePlot(data, x = "x", y = "y", group_by = "group", split_by = "facet")
LinePlot(data, x = "x", y = "y", split_by = "group",
palcolor = list(G1 = c("red", "blue"), G2 = c("green", "black")))