View source: R/plot_functions.R
ggvenn_pq | R Documentation |
phyloseq-class
object using
ggVennDiagram::ggVennDiagram
functionNote that you can use ggplot2 function to customize the plot
for ex. + scale_fill_distiller(palette = "BuPu", direction = 1)
and + scale_x_continuous(expand = expansion(mult = 0.5))
. See
examples.
ggvenn_pq(
physeq = NULL,
fact = NULL,
min_nb_seq = 0,
taxonomic_rank = NULL,
split_by = NULL,
add_nb_samples = TRUE,
add_nb_seq = FALSE,
rarefy_before_merging = FALSE,
rarefy_after_merging = FALSE,
return_data_for_venn = FALSE,
...
)
physeq |
(required): a |
fact |
(required): Name of the factor to cluster samples by modalities.
Need to be in |
min_nb_seq |
minimum number of sequences by OTUs by samples to take into count this OTUs in this sample. For example, if min_nb_seq=2,each value of 2 or less in the OTU table will not count in the venn diagram |
taxonomic_rank |
Name (or number) of a taxonomic rank to count. If set to Null (the default) the number of OTUs is counted. |
split_by |
Split into multiple plot using variable split_by.
The name of a variable must be present in |
add_nb_samples |
(logical, default TRUE) Add the number of samples to levels names |
add_nb_seq |
(logical, default FALSE) Add the number of sequences to levels names |
rarefy_before_merging |
Rarefy each sample before merging by the
modalities of args |
rarefy_after_merging |
Rarefy each sample after merging by the
modalities of args |
return_data_for_venn |
(logical, default FALSE) If TRUE, the plot is not returned, but the resulting dataframe to plot with ggVennDiagram package is returned. |
... |
Other arguments for the |
A ggplot
2 plot representing Venn diagram of
modalities of the argument factor
or if split_by is set a list
of plots.
Adrien Taudière
upset_pq()
if (requireNamespace("ggVennDiagram")) {
ggvenn_pq(data_fungi, fact = "Height")
}
if (requireNamespace("ggVennDiagram")) {
ggvenn_pq(data_fungi, fact = "Height") +
ggplot2::scale_fill_distiller(palette = "BuPu", direction = 1)
pl <- ggvenn_pq(data_fungi, fact = "Height", split_by = "Time")
for (i in seq_along(pl)) {
p <- pl[[i]] +
scale_fill_distiller(palette = "BuPu", direction = 1) +
theme(plot.title = element_text(hjust = 0.5, size = 22))
print(p)
}
data_fungi2 <- subset_samples(data_fungi, data_fungi@sam_data$Tree_name == "A10-005" |
data_fungi@sam_data$Height %in% c("Low", "High"))
ggvenn_pq(data_fungi2, fact = "Height")
ggvenn_pq(data_fungi, fact = "Height", add_nb_seq = TRUE, set_size = 4)
ggvenn_pq(data_fungi, fact = "Height", rarefy_before_merging = TRUE)
ggvenn_pq(data_fungi, fact = "Height", rarefy_after_merging = TRUE) +
scale_x_continuous(expand = expansion(mult = 0.5))
# For more flexibility, you can save the dataset for more precise construction
# with ggplot2 and ggVennDiagramm
# (https://gaospecial.github.io/ggVennDiagram/articles/fully-customed.html)
res_venn <- ggvenn_pq(data_fungi, fact = "Height", return_data_for_venn = TRUE)
ggplot() +
# 1. region count layer
geom_polygon(aes(X, Y, group = id, fill = name),
data = ggVennDiagram::venn_regionedge(res_venn)
) +
# 2. set edge layer
geom_path(aes(X, Y, color = id, group = id),
data = ggVennDiagram::venn_setedge(res_venn),
show.legend = FALSE, linewidth = 3
) +
# 3. set label layer
geom_text(aes(X, Y, label = name),
data = ggVennDiagram::venn_setlabel(res_venn)
) +
# 4. region label layer
geom_label(
aes(X, Y, label = paste0(
count, " (",
scales::percent(count / sum(count), accuracy = 2), ")"
)),
data = ggVennDiagram::venn_regionlabel(res_venn)
) +
theme_void()
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.