Nothing
## -----------------------------------------------------------------------------
# Load data:
data("baskets_fruits_weights", package = "mFD")
# Display the table:
knitr::kable(as.data.frame(baskets_fruits_weights[1:6, 1:6]),
centering = TRUE,
caption = "Species x assemblages matrix based on the **fruits** dataset")
## -----------------------------------------------------------------------------
# Load data:
data("fruits_traits", package = "mFD")
# Remove fuzzy traits in this tutorial:
fruits_traits <- fruits_traits[ , -c(6:8)]
# Display the table:
knitr::kable(head(fruits_traits),
caption = "Species x traits data frame")
## -----------------------------------------------------------------------------
# Load data:
data("fruits_traits_cat", package = "mFD")
# Remove fuzzy traits in this tutorial:
fruits_traits_cat <- fruits_traits_cat[-c(6:8), ]
# Thus remove the "fuzzy_name" column:
fruits_traits_cat <- fruits_traits_cat[ , -3]
# Display the table:
knitr::kable(head(fruits_traits_cat),
caption = "Traits types based on **fruits & baskets** dataset")
## ----results = "hide"---------------------------------------------------------
sp_dist_fruits <- mFD::funct.dist(
sp_tr = fruits_traits,
tr_cat = fruits_traits_cat,
metric = "gower",
scale_euclid = "scale_center",
ordinal_var = "classic",
weight_type = "equal",
stop_if_NA = TRUE)
## ----results = "hide", message = FALSE----------------------------------------
# Quality of functional spaces:
fspaces_quality_fruits <- mFD::quality.fspaces(
sp_dist = sp_dist_fruits,
maxdim_pcoa = 10,
deviation_weighting = "absolute",
fdist_scaling = FALSE,
fdendro = "average")
# retrieve species (fruits) coordinates in the 4D space (see General tutorial):
sp_faxes_coord_fruits <- fspaces_quality_fruits$"details_fspaces"$"sp_pc_coord"
## ----results = "hide", message = FALSE----------------------------------------
alpha_fd_indices_fruits <- mFD::alpha.fd.multidim(
sp_faxes_coord = sp_faxes_coord_fruits[ , c("PC1", "PC2", "PC3", "PC4")],
asb_sp_w = baskets_fruits_weights,
ind_vect = c("fric"),
scaling = TRUE,
check_input = TRUE,
details_returned = TRUE)
## -----------------------------------------------------------------------------
# Compute the range of functional axes:
range_sp_coord <- range(sp_faxes_coord_fruits)
# Based on the range of species coordinates values, compute a nice range ...
# ... for functional axes:
range_faxes <- range_sp_coord +
c(-1, 1) * (range_sp_coord[2] - range_sp_coord[1]) * 0.05
range_faxes
## ----fig.height = 3, fig.width = 5, fig.align = "center"----------------------
# get species coordinates along the two studied axes:
sp_faxes_coord_xy <- sp_faxes_coord_fruits[, c("PC1", "PC2")]
# Plot background with grey backrgound:
plot_k <- mFD::background.plot(range_faxes = range_faxes,
faxes_nm = c("PC1", "PC2"),
color_bg = "grey95")
plot_k
## -----------------------------------------------------------------------------
# Retrieve vertices coordinates along the two studied functional axes:
vert <- mFD::vertices(sp_faxes_coord = sp_faxes_coord_xy,
order_2D = FALSE,
check_input = TRUE)
## ----fig.height = 3, fig.width = 5, fig.align = "center"----------------------
plot_sp_vert <- mFD::pool.plot(ggplot_bg = plot_k,
sp_coord2D = sp_faxes_coord_xy,
vertices_nD = vert,
plot_pool = TRUE,
color_pool = "black",
fill_pool = NA,
alpha_ch = 0.8,
color_ch = NA,
fill_ch = "white",
shape_pool = 3,
size_pool = 0.8,
shape_vert = 16,
size_vert = 1,
color_vert = "green",
fill_vert = "green")
plot_sp_vert
## ----fig.height = 3, fig.width = 5, fig.align = "center"----------------------
plot_k <- mFD::pool.plot(ggplot_bg = plot_k,
sp_coord2D = sp_faxes_coord_xy,
vertices_nD = vert,
plot_pool = FALSE,
color_pool = NA,
fill_pool = NA,
alpha_ch = 0.8,
color_ch = "white",
fill_ch = "white",
shape_pool = NA,
size_pool = NA,
shape_vert = NA,
size_vert = NA,
color_vert = NA,
fill_vert = NA)
plot_k
## -----------------------------------------------------------------------------
# basket_1:
## filter species from basket_1:
sp_filter_basket1 <- mFD::sp.filter(asb_nm = c("basket_1"),
sp_faxes_coord = sp_faxes_coord_xy,
asb_sp_w = baskets_fruits_weights)
## get species coordinates (basket_1):
sp_faxes_coord_basket1 <- sp_filter_basket1$`species coordinates`
# basket_6:
## filter species from basket_6:
sp_filter_basket6 <- mFD::sp.filter(asb_nm = c("basket_6"),
sp_faxes_coord = sp_faxes_coord_xy,
asb_sp_w = baskets_fruits_weights)
## get species coordinates (basket_6):
sp_faxes_coord_basket6 <- sp_filter_basket6$`species coordinates`
# basket_10:
## filter species from basket_10:
sp_filter_basket10 <- mFD::sp.filter(asb_nm = c("basket_10"),
sp_faxes_coord = sp_faxes_coord_xy,
asb_sp_w = baskets_fruits_weights)
## get species coordinates (basket_10):
sp_faxes_coord_basket10 <- sp_filter_basket10$`species coordinates`
## -----------------------------------------------------------------------------
sp_faxes_coord_basket1
## -----------------------------------------------------------------------------
# basket_1:
vert_nm_basket1 <- mFD::vertices(sp_faxes_coord = sp_faxes_coord_basket1,
order_2D = TRUE,
check_input = TRUE)
# basket_6:
vert_nm_basket6 <- mFD::vertices(sp_faxes_coord = sp_faxes_coord_basket6,
order_2D = TRUE,
check_input = TRUE)
# basket_10:
vert_nm_basket10 <- mFD::vertices(sp_faxes_coord = sp_faxes_coord_basket10,
order_2D = TRUE,
check_input = TRUE)
## ----fig.height = 3, fig.width = 5, fig.align = "center"----------------------
plot_try <- mFD::fric.plot(ggplot_bg = plot_k,
asb_sp_coord2D = list("basket_1" = sp_faxes_coord_basket1,
"basket_6" = sp_faxes_coord_basket6,
"basket_10" = sp_faxes_coord_basket10),
asb_vertices_nD = list("basket_1" = vert_nm_basket1,
"basket_6" = vert_nm_basket6,
"basket_10" = vert_nm_basket10),
plot_sp = FALSE,
color_ch = NA,
fill_ch = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
alpha_ch = c("basket_1" = 0.4,
"basket_6" = 0.4,
"basket_10" = 0.4),
shape_sp = NA,
size_sp = NA,
color_sp = NA,
fill_sp = NA,
shape_vert = NA,
size_vert = NA,
color_vert = NA,
fill_vert = NA)
plot_try
## ----fig.height = 3, fig.width = 5, fig.align = "center"----------------------
plot_try <- mFD::fric.plot(ggplot_bg = plot_k,
asb_sp_coord2D = list("basket_1" = sp_faxes_coord_basket1,
"basket_6" = sp_faxes_coord_basket6,
"basket_10" = sp_faxes_coord_basket10),
asb_vertices_nD = list("basket_1" = vert_nm_basket1,
"basket_6" = vert_nm_basket6,
"basket_10" = vert_nm_basket10),
plot_sp = FALSE,
color_ch = c("basket_1" = "#7a0177",
"basket_6" = "#c51b8a",
"basket_10" = "#fa9fb5"),
fill_ch = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
alpha_ch = c("basket_1" = 0.4,
"basket_6" = 0.4,
"basket_10" = 0.4),
shape_sp = NA,
size_sp = NA,
color_sp = NA,
fill_sp = NA,
shape_vert = NA,
size_vert = NA,
color_vert = NA,
fill_vert = NA)
plot_try
## ----fig.height = 3, fig.width = 5, fig.align = "center"----------------------
plot_try <- mFD::fric.plot(ggplot_bg = plot_k,
asb_sp_coord2D = list("basket_1" = sp_faxes_coord_basket1,
"basket_6" = sp_faxes_coord_basket6,
"basket_10" = sp_faxes_coord_basket10),
asb_vertices_nD = list("basket_1" = vert_nm_basket1,
"basket_6" = vert_nm_basket6,
"basket_10" = vert_nm_basket10),
plot_sp = TRUE,
color_ch = NA,
fill_ch = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
alpha_ch = c("basket_1" = 0.4,
"basket_6" = 0.4,
"basket_10" = 0.4),
shape_sp = c("basket_1" = 21,
"basket_6" = 22,
"basket_10" = 24),
size_sp = c("basket_1" = 2,
"basket_6" = 2,
"basket_10" = 2),
color_sp = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
fill_sp = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
shape_vert = c("basket_1" = 21,
"basket_6" = 22,
"basket_10" = 24),
size_vert = c("basket_1" = 2,
"basket_6" = 2,
"basket_10" = 2),
color_vert = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
fill_vert = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"))
plot_try
## ----fig.height = 3, fig.width = 5, fig.align = "center"----------------------
plot_try <- mFD::fric.plot(ggplot_bg = plot_k,
asb_sp_coord2D = list("basket_1" = sp_faxes_coord_basket1,
"basket_6" = sp_faxes_coord_basket6,
"basket_10" = sp_faxes_coord_basket10),
asb_vertices_nD = list("basket_1" = vert_nm_basket1,
"basket_6" = vert_nm_basket6,
"basket_10" = vert_nm_basket10),
plot_sp = TRUE,
color_ch = NA,
fill_ch = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
alpha_ch = c("basket_1" = 0.4,
"basket_6" = 0.4,
"basket_10" = 0.4),
shape_sp = c("basket_1" = 21,
"basket_6" = 22,
"basket_10" = 24),
size_sp = c("basket_1" = 2,
"basket_6" = 2,
"basket_10" = 2),
color_sp = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
fill_sp = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
shape_vert = c("basket_1" = 21,
"basket_6" = 22,
"basket_10" = 24),
size_vert = c("basket_1" = 2,
"basket_6" = 2,
"basket_10" = 2),
color_vert = c("basket_1" = "#7a0177",
"basket_6" = "#c51b8a",
"basket_10" = "#fa9fb5"),
fill_vert = c("basket_1" = "#7a0177",
"basket_6" = "#c51b8a",
"basket_10" = "#fa9fb5"))
plot_try
## -----------------------------------------------------------------------------
####### Preliminary steps:
## Compute the range of functional axes:
range_sp_coord <- range(sp_faxes_coord_fruits)
## Based on the range of species coordinates values, compute a nice range ...
## ... for functional axes:
range_faxes <- range_sp_coord +
c(-1, 1) * (range_sp_coord[2] - range_sp_coord[1]) * 0.05
####### Create a list that will contains plots for each combination of axis:
plot_FRic <- list()
####### Compute all the combiantion we can get and the number of plots
axes_plot <- utils::combn(c("PC1", "PC2", "PC3", "PC4"), 2)
plot_nb <- ncol(axes_plot)
######## Loop on all pairs of axes:
# for each combinaison of two axis:
for (k in (1:plot_nb)) {
# get names of axes to plot:
xy_k <- axes_plot[1:2, k]
####### Steps previously showed
# a - Background:
# get species coordinates along the two studied axes:
sp_faxes_coord_xy <- sp_faxes_coord_fruits[, xy_k]
# Plot background with grey backrgound:
plot_k <- mFD::background.plot(range_faxes = range_faxes,
faxes_nm = c(xy_k[1], xy_k[2]),
color_bg = "grey95")
# b - Global convex-hull:
# Retrieve vertices coordinates along the two studied functional axes:
vert <- mFD::vertices(sp_faxes_coord = sp_faxes_coord_xy,
order_2D = FALSE,
check_input = TRUE)
plot_k <- mFD::pool.plot(ggplot_bg = plot_k,
sp_coord2D = sp_faxes_coord_xy,
vertices_nD = vert,
plot_pool = FALSE,
color_pool = NA,
fill_pool = NA,
alpha_ch = 0.8,
color_ch = "white",
fill_ch = "white",
shape_pool = NA,
size_pool = NA,
shape_vert = NA,
size_vert = NA,
color_vert = NA,
fill_vert = NA)
# c - Assemblages convex-hulls and species:
# Step 1: Species coordinates:
# basket_1:
## filter species from basket_1:
sp_filter_basket1 <- mFD::sp.filter(asb_nm = c("basket_1"),
sp_faxes_coord = sp_faxes_coord_xy,
asb_sp_w = baskets_fruits_weights)
## get species coordinates (basket_1):
sp_faxes_coord_basket1 <- sp_filter_basket1$`species coordinates`
# basket_6:
## filter species from basket_6:
sp_filter_basket6 <- mFD::sp.filter(asb_nm = c("basket_6"),
sp_faxes_coord = sp_faxes_coord_xy,
asb_sp_w = baskets_fruits_weights)
## get species coordinates (basket_6):
sp_faxes_coord_basket6 <- sp_filter_basket6$`species coordinates`
# basket_10:
## filter species from basket_10:
sp_filter_basket10 <- mFD::sp.filter(asb_nm = c("basket_10"),
sp_faxes_coord = sp_faxes_coord_xy,
asb_sp_w = baskets_fruits_weights)
## get species coordinates (basket_10):
sp_faxes_coord_basket10 <- sp_filter_basket10$`species coordinates`
# Step 1 follow-up Vertices names:
# basket_1:
vert_nm_basket1 <- mFD::vertices(sp_faxes_coord = sp_faxes_coord_basket1,
order_2D = TRUE,
check_input = TRUE)
# basket_6:
vert_nm_basket6 <- mFD::vertices(sp_faxes_coord = sp_faxes_coord_basket6,
order_2D = TRUE,
check_input = TRUE)
# basket_10:
vert_nm_basket10 <- mFD::vertices(sp_faxes_coord = sp_faxes_coord_basket10,
order_2D = TRUE,
check_input = TRUE)
# Step 2: plot convex-hulls and species of studied assemblages:
plot_k <- mFD::fric.plot(ggplot_bg = plot_k,
asb_sp_coord2D = list("basket_1" = sp_faxes_coord_basket1,
"basket_6" = sp_faxes_coord_basket6,
"basket_10" = sp_faxes_coord_basket10),
asb_vertices_nD = list("basket_1" = vert_nm_basket1,
"basket_6" = vert_nm_basket6,
"basket_10" = vert_nm_basket10),
plot_sp = TRUE,
color_ch = NA,
fill_ch = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
alpha_ch = c("basket_1" = 0.4,
"basket_6" = 0.4,
"basket_10" = 0.4),
shape_sp = c("basket_1" = 21,
"basket_6" = 22,
"basket_10" = 24),
size_sp = c("basket_1" = 2,
"basket_6" = 2,
"basket_10" = 2),
color_sp = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
fill_sp = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
shape_vert = c("basket_1" = 21,
"basket_6" = 22,
"basket_10" = 24),
size_vert = c("basket_1" = 2,
"basket_6" = 2,
"basket_10" = 2),
color_vert = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"),
fill_vert = c("basket_1" = "#1c9099",
"basket_6" = "#67a9cf",
"basket_10" = "#d0d1e6"))
####### Save the plot on the plot list:
plot_FRic[[k]] <- plot_k
}
## ----fig.height = 3, fig.width = 5, fig.align = "center"----------------------
plot_FRic
## ----fig.height = 6, fig.width = 8, fig.align = "center"----------------------
patchwork_FRic <- (plot_FRic[[1]] + patchwork::plot_spacer() + patchwork::plot_spacer() +
plot_FRic[[2]] + plot_FRic[[4]] + patchwork::plot_spacer() +
plot_FRic[[3]] + plot_FRic[[5]] + plot_FRic[[6]]) +
patchwork::plot_layout(byrow = TRUE, heights = rep(1, 3),
widths = rep(1, 3), ncol = 3, nrow = 3,
guides = "collect")
patchwork_FRic
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.