View source: R/ggphase_diagram.R
| ggphase_diagram | R Documentation |
Generates a ggplot showing volumetrically accurate representations of the solid, liquid, and gaseous phases in a sand-clay mixture. Options to label the phases with or without their volume fractions.
ggphase_diagram( sand_pct, clay_pct, G_sa, G_c, dry_density, water_content, sand_color = "#c2b280", clay_color = "#643F30", alpha_level = 1/4, ambient_temp_c = 22, labels = TRUE, values = TRUE, base_family = NULL, return_data = TRUE )
sand_pct |
percent sand by dry mass in the mixture |
clay_pct |
percent clay (i.e. fine-grained soil) by dry mass in the mixture |
G_sa |
specific gravity of sandy soil |
G_c |
specific gravity of clay soil |
dry_density |
dry bulk density in g/cm^3 |
water_content |
gravimetric water content |
sand_color |
quoted string containing color name or hex code |
clay_color |
quoted string containing color name or hex code |
alpha_level |
alpha value for the shaded box areas |
ambient_temp_c |
temperature used to compute water volume |
labels |
show the identity of each phase? |
values |
show the percent volume occupied by each phase? |
base_family |
character, passed to various text-drawing arguments |
return_data |
logical, whether to also return a data frame |
list containing a ggplot object and a tibble of the phase volumes. If return_data = FALSE, the second list element is NULL
# make a diagram for each of the 5 samples in a Proctor test # note the
# subtle changes in the solid phases volume and the more severe change in
# water-filled pore space
library(magrittr)
compaction_data <- soiltestr::example_proctor_data %>%
soiltestr::add_physical_properties()
standard_data <-
dplyr::filter(compaction_data, compaction_effort == "standard")
args <- standard_data %>%
dplyr::select(ambient_temp_c, water_content, dry_density) %>%
dplyr::mutate(
sand_pct = 0.6,
clay_pct = 0.4,
G_sa = 2.67,
G_c = 2.78,
labels = TRUE,
values = FALSE
)
plots <- purrr::pmap(args, ggphase_diagram)
patchwork::wrap_plots(plots, nrow = 1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.