| ModelPlot | R Documentation | 
This function makes contour plots in the simplex mixture space. It also can draw constraint lines and zoom in on pseudo component region.
ModelPlot(model=NULL,user.func = NULL, dimensions = list(x1=NULL,x2=NULL,x3=NULL),
          slice=NULL,lims=rep(0,6), constraints = FALSE,
          constraint.pars = list(lty=2,lwd=2),
          contour = FALSE, contour.pars = list(lwd=0.5,cex.lab=1.3),
          cuts = 10,at = NULL, res=300, pseudo=FALSE, 
          fill=FALSE, color.palette = heat.colors, 
          main=NULL, axislabs=c("Fraction X1","Fraction X2","Fraction X3"),
          axislab.pars = list(),
          axislab.offset=0,
          cornerlabs = c("X1", "X2", "X3"),
          cornerlab.pars = list(),
          grid=TRUE, grid.pars = list(col='darkgrey',lty=3,lwd=0.5),
          colorkey = FALSE,
          labels=TRUE, label.style="align", ...)
model | 
 an lm object, MixModel object, or any other model object that is compatible with the predict function, which is the mixture model to be plotted.  | 
user.func | 
 function supplied by the user that takes as arguments a dataframe called 'grid' and returns the predictions. This argument has been deprecated in favor of the model argument. Typically, this will be a wrapper function for predict() (e.g. predict(model,newdata=grid)). Additional arguments for user.func can be passed using the ellipsis argument for ModelPlot. Overrides model argument if both are specified.  | 
dimensions | 
 list argument that specifies the mixture variables to be plotted on the ternary plot. Values must correspond to variable names from the user-supplied model.  | 
slice | 
 list argument that specifies the value of fixed mixture components.  | 
lims | 
 vector of lower and upper constraints for ternary plot components (TopLower, TopUpper, LeftLower, LeftUpper, RightLower, RightUpper).  | 
constraints | 
 if TRUE constraints found in lims will be added to the graph.  | 
constraint.pars | 
 list of graphical parameters controlling the appearance of the constraint lines.  | 
contour | 
 if TRUE contour lines will be added to the graph.  | 
contour.pars | 
 list of graphical parameters controlling the appearance of the contour lines.  | 
cuts | 
 number of breaks between levels (used for contours if 'at' not specified).  | 
at | 
 list of contour levels (e.g. at=c(1,3,5,10) will draw contours at those heights). Overrides cuts argument.  | 
res | 
 resolution of the grid. Corresponds to number equally spaced values along the baseline of the simplex.  | 
pseudo | 
 if TRUE uses pseudo components to zoom in on constrained region. Will create the smallest equilateral triangle that still contains the whole constrained region.  | 
fill | 
 if TRUE regions between contour lines will be colored.  | 
color.palette | 
 is the color palette to use.  | 
main | 
 character value for main title or list containing character value and graphical parameters (e.g. main=list("main title",cex=2)).  | 
axislabs | 
 character vector of axis labels for ternary components.  | 
axislab.pars | 
 list of graphical parameters controlling the appearance of the axislabels.  | 
axislab.offset | 
 numeric value that creates or eliminates space between the angled axislabels and the tickmarks. Prevents axis labels from overlapping with tickmarks. Typically, absolute value would not exceed 0.05.  | 
cornerlabs | 
 character vector of corner labels for x1, x2 and x3 vertices.  | 
cornerlab.pars | 
 list of graphical parameters controlling the appearance of the axis labels.  | 
grid | 
 logical argument. If true, adds gridlines to the ternary plot.  | 
grid.pars | 
 list of graphical parameters controlling the appearance of the gridlines.  | 
colorkey | 
 logical or list of parameters. See levelplot documentation for more details.  | 
labels | 
 logical argument. If true, labels contour lines.  | 
label.style | 
 controls placement of contour labels. Choose from "mixed","flat", or "align." See panel.levelplot documentation for more details.  | 
... | 
 additional arguments passed to user.func  | 
Cameron Willden ccwillden@gmail.com
1. Cornell, J. A. Experiments with Mixtures: Models and Analysis of Mixture Data, John Wiley & Sons, New York, third edition, 2002.
2. See R Ternary Level Plot Function http://www.siftp.net/index.shtml
3. "John Lawson, Cameron Willden (2016).", "Mixture Experiments in R Using mixexp.", "Journal of Statistical Software, Code Snippets, 72(2), 1-20.", "doi:10.18637/jss.v072.c02"
# Cornell's (2002) Yarn elongation
x1<-c(1,1,.5,.5,.5,0,0,0,0,0,0,0,.5,.5,.5)
x2<-c(0,0,.5,.5,.5,1,1,.5,.5,.5,0,0,0,0,0)
x3<-c(0,0,0,0,0,0,0,.5,.5,.5,1,1,.5,.5,.5)
y<-c(11,12.4,15,14.8,16.1,8.8,10,10,9.7,11.8,16.8,16,17.7,16.4,16.6)
elong<-data.frame(x1,x2,x3,y)
testQ<-lm(y~-1+x1+x2+x3+x1:x2+x1:x3+x2:x3,data=elong)
ModelPlot(model = testQ,dimensions = list(x1="x1",x2="x2",x3="x3"), 
           main="Thread Elongation",constraints=FALSE,contour=TRUE,
           at=c(12, 13, 14, 15, 16, 17),fill=FALSE,
           axislabs=c("X1", "X2", "X3"),
           cornerlabs = c("X1", "X2", "X3"),pseudo=FALSE)
           
# Cornells famous fish patty experiment 
data(fishp)
fishmod2<-MixModel(fishp, "y", mixcomps=c("x1","x2","x3"),model=5,procvars=c("z1","z2","z3"))
ModelPlot(fishmod2,dimensions = list(x1="x1",x2="x2",x3="x3"), 
          slice = list(process.vars=c(z1=-1, z2=-1, z3=-1)), main="z1=-1, z2=-1, z3=-1",
          constraints=FALSE,contour=TRUE,cuts=10,fill=FALSE,
          axislabs=c("Fraction X1","Fraction X2","Fraction X3"),
          cornerlabs = c("X1", "X2", "X3"),pseudo=FALSE)
          
          
#### Kowalski Cornell and Vining Simplified model on data from Gallant et. al. (2008)
data(Burn)
testBNM<-MixModel(Burn,"y",mixcomps=c("Course","Fine","Binder"),model=6,procvars=c("z"))
ModelPlot(testBNM,dimensions = list(x1="Course",x2="Fine",x3="Binder"), 
          slice = list(process.vars=c(z=1)), lims=c(.403,.704,.166,.467,.130,.431), main="z=1",
          constraints=TRUE,contour=TRUE,cuts=5,fill=FALSE,
          axislabs=c("Fraction Course","Fraction Fine","Fraction Binder"),
          cornerlabs = c("Course", "Fine", "Binder"),pseudo=TRUE)
ModelPlot(testBNM,dimensions = list(x1="Course",x2="Fine",x3="Binder"), 
          slice = list(process.vars=c(z=-1)),  lims=c(.403,.704,.166,.467,.130,.431),main="z=-1",
          constraints=TRUE,contour=TRUE,cuts=5,fill=FALSE,
          axislabs=c("Fraction Course","Fraction Fine","Fraction Binder"),
          cornerlabs = c("Course", "Fine", "Binder"),pseudo=TRUE)
          
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.