This function enables graphical visualization of a matrix of compostional data. In the output plot, each vertical bar represents a single vector; the height of each color in the bar corresponds to the abundance of each category in that vector. Because this function produces a ggplot object, its output can be modified using standard ggplot2 syntax.
Usageplot_relabund(
relab_matrix,
group = NULL,
time = NULL,
w = NULL,
K = NULL,
arrange = FALSE
)
Arguments
A matrix or data frame with rows containing non-negative entries that sum to 1. Each row represents a sample, each column represents a category, and each entry represents the abundance of that category in the sample. If relab_matrix
contains any metadata, it must be on the left-hand side of the matrix, the right K
entries of each row must sum to 1, and K
must be specified. Otherwise, all entries of each row must sum to 1.
Optional; a string specifying the name of the column that describes which group each row (sample) belongs to. Use if matrices
is a single matrix containing multiple groups of samples you wish to compare.
Optional; a string specifying the name of the column that describes the sampling time for each row. Include if you wish to weight FAVA by the distance between samples.
Optional; a vector of length I
with non-negative entries that sum to 1. Entry w[i]
represents the weight placed on row i
in the computation of the mean abundance of each category across rows. The default value is w = rep(1/nrow(relab_matrix), nrow(relab_matrix))
.
Optional; an integer specifying the number of categories in the data. Default is K=ncol(relab_matrix)
.
Optional; controls horizontal ordering of samples and vertical ordering of categories. If arrange = TRUE
or arrange = "both"
, samples are ordered by the categories of greatest abundance and categories are ordered in decreasing abundance. If arrange = "vertical"
, sample order is unchanged but categories are ordered in decreasing abundance. If arrange = "horizontal"
, samples are ordered by the most abundant categories, but category order is unchanged. If arrange
is missing or arrange = FALSE
, neither order is changed.
A ggplot object containing a bar plot visualization of the relative abundance matrix.
Examples
# Make an example matrix of compositional data
# Each row is an individual. Rows sum to 1.
population_A = matrix(c(
.5, .3, .2,
.4, .2, .4,
.5, .4, .1,
.6, .1, .3,
.2, 0, .8
),
nrow = 5,
byrow = TRUE
)
plot_relabund(relab_matrix = population_A,
K = 3, # How many categories per vector?
arrange = FALSE
)
plot_relabund(relab_matrix = population_A,
K = 3, # How many categories per vector?
arrange = "horizontal"
)
plot_relabund(relab_matrix = population_A,
K = 3, # How many categories per vector?
arrange = "vertical"
)
plot_relabund(relab_matrix = population_A,
K = 3, # How many categories per vector?
arrange = TRUE # could also be "both"
)
# You can modify the plot as you would any ggplot2 object
plot_relabund(relab_matrix = population_A,
K = 3, # How many categories per vector?
arrange = TRUE
) +
# Below are example, optional modifications to the default plot
ggplot2::ggtitle("Population A") +
ggplot2::scale_fill_brewer("Blues") +
ggplot2::scale_color_brewer("Blues") +
ggplot2::xlab("Individuals")
# Note that both scale_fill and scale_color are needed to change the color of the bars.
# Plot a dataset which has 2 populations
population_B = matrix(c(
.9, 0, .1,
.6, .4, 0,
.7, 0, .3,
.3, .4, .3,
.5, .3, .2
),
nrow = 5,
byrow = TRUE
)
populations_AB = cbind(data.frame(c("A", "A", "A", "A", "A",
"B", "B", "B", "B", "B")),
rbind(population_A, population_B))
colnames(populations_AB) = c("population", "category_1", "category_2", "category_3")
plot_relabund(relab_matrix = populations_AB, group = "population")
plot_relabund(relab_matrix = populations_AB, group = "population", arrange = "vertical")
plot_relabund(relab_matrix = populations_AB, group = "population", arrange = "horizontal")
plot_relabund(relab_matrix = populations_AB, group = "population", arrange = "both")
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4