Create a stacked mosaic diagram, where the species formed in the first layer become the basis species for the species formed in the second layer. The species in each layer are usually minerals with different metals; any bimetallic species are added to the second layer.
UTF-8
bases: basis species to be changed for each layer (commonly S-bearing aqueous species)
species1: species (minerals and/or aqueous species) with metal 1
species2: species with metal 2
species12: bimetallic species
names: character, species names (or chemical formulas) for labeling fields
col: line color
col.names: text color
fill: field color
dx: label x-offset
dy: label y-offset
srt: label rotation
lwd: line width
lty: line type
loga_aq: numeric, activity of aqueous species
plot.it: make plots?
...: arguments for mosaic and affinity
Details
stack_mosaic creates a stacked mosaic diagram following steps that are described in detail in the vignette . Briefly, the first layer of the diagram is made by speciating the species in bases across the diagram to form the first set of species in species1. Then, both basesandspecies1 (the stable species at each point on the diagram) are used to form the second set of species, including those in both species2andspecies12.
Note that basis has aqueous S species in the examples provided, and species1 consists of minerals and/or aqueous species with a single metal (e.g. Fe). species2 has minerals and/or aqueous species with a second metal (e.g. Cu), and species12 has bimetallic minerals. For mixed diagrams (where species1 or species2 has both minerals and aqueous species), use loga_aq to set the logarithms of activities of aqueous species. Here, only a single value of loga_aq is needed, unlike in mosaic, where a value for each set of basis species is required.
The plot parameters col, col.names, fill, dx, dy, srt, lwd, and lty should be length-3 lists (not vectors). The values of elements 1--3 of the list are recycled to the number of species in species1, species2, and species12, respectively.
For fill, the default is to use no fill except for species12, where the fill color is taken from col.names with added transparency. The default definition of fill is list(NA, NA, add.alpha(col.names[3], "50")).
Warning
The bimetallic species in species12 are shown as part of the second layer, although their formation is sensitive to the presence of stable species in the first layer. It follows that changing the order of layers (i.e., swapping species1 and species2) can affect the depiction of mineral assemblages that have species12. It is likely that only one of the alternatives is thermodynamically correct, but currently there is no check to determine which one it is.
Returns
A list of length two containing the output of each of the diagram calls use to make the diagram.
Examples
# Define temperature (degrees C), pressure (bar), pH and logfO2 rangesT <-200P <-"Psat"res <-200pH <- c(0,14, res)O2 <- c(-48,-33, res)# Define system: Fe-Cu-O-S-Cl# NOTE: the basis species must include the first species listed# in each of bases, species1, and species2 belowbasis(c("pyrite","Cu","Cl-","H2S","H2O","oxygen","H+"))basis("H2S",-2)# Calculate solution composition for 1 mol/kg NaClNaCl <- NaCl(T = T, P = P, m_tot =1)basis("Cl-", log10(NaCl$m_Cl))# Define arguments for stack_mosaic: Speciate aqueous sulfurbases <- c("H2S","HS-","HSO4-","SO4-2")# Calculate stabilities of Fe-bearing minerals firstspecies1 <- c("pyrite","pyrrhotite","magnetite","hematite")# Calculate stabilities of Cu-bearing and FeCu-bearing minerals secondspecies2 <- c("copper","cuprite","tenorite","chalcocite","covellite")species12 <- c("chalcopyrite","bornite")# Use abbreviations for Fe-bearing minerals and formulas for Cu-bearing mineralsnames1 <- c("Py","Po","Mag","Hem")names2 <- info(info(species2))$formula
names12 <- info(info(species12))$formula
names <- list(names1, names2, names12)# Adjust x-position for one species (chalcocite, Cu2S)dx <- list(c(0,0,0,0), c(0,0,0,1,0), c(0,0))# Use thick dashed lines for the bimetallic specieslwd <- list(1,1,2)lty <- list(1,1,2)# Make the diagramstack_mosaic(bases, species1, species2, species12, names = names, dx = dx, lwd = lwd, lty = lty, pH = pH, O2 = O2, T = T, P = P, IS = NaCl$IS)# Add legend and titlelTP <- lex(lTP(T, P))db <- describe.basis(c(3:4))legend("topright", c(lTP, db), bg ="white")title("Fe-Cu-S-O-H-Cl", font.main =1)