library(mosaic) library(mosaicData) library(NHANES) library(gridExtra)
# Some customization. You can alter or delete as desired (if you know what you are doing). # This changes the default colors in lattice plots. trellis.par.set(theme=theme.mosaic()) # knitr settings to control how R chunks work. require(knitr) set.seed(1) opts_chunk$set( tidy=FALSE, # display code as typed size="small", # slightly smaller font for code fig.width=5, fig.height=3 )
This vignette is simply a suite of plots that exist primarily as part of our quality control for the package. But since the examples might be useful to others as well, we've added this as a vignette in the package.
This way of doing this is largely superceded by our ggformula
package which provides a
formula interface to ggplot2
. You might also like to see the vignette that compares
using lattice
to using ggformula
.
The mosaic
package resets the default panel function for histograms. This changes
the default for bin selection and provides some additional arguments to histogram.
histogram(~ rbinom( 500, 20, .3), width=1, fit="normal", v=c(6,10), h=0.1 )
ladd()
provides a relatively easy way to add additional things to a lattice graphic.
xyplot( rnorm(100) ~ rnorm(100) ) ladd( grid.text("Here is some text", x=0, y=0, default.units="native") ) ladd( panel.abline( a=0, b=1, col="red", lwd=3, alpha=.4 ) ) ladd( panel.rect(x=-1, y=-1, width=1, height=1, col="gray80", fill="lightsalmon")) ladd( panel.rect(x=0, y=0, width=2, height=2, col="gray80", fill="lightskyblue"), under=TRUE)
In addition to the interactive uses of mplot()
, it can be used in place of plot()
in
several settings.
require(gridExtra) mod <- lm(width ~ length * sex, data = KidsFeet) mplot(mod, which = 1:7, multiplot = TRUE, ncol = 2)
mplot(mod, which=1:7, system="ggplot", ncol=2)
mplot(mod, which=7) mplot(mod, which=7, rows=-1) mplot(mod, which=7, rows=c("sexG", "length", "length:sexG"), title="Custom titles are supported")
mod <- lm(age ~ substance, data=HELPrct) mplot(TukeyHSD(mod)) mplot(TukeyHSD(mod), system="ggplot")
mod <- lm(width ~ length* sex, data = KidsFeet) L <- makeFun(mod) L( length=15, sex="B") L( length=15, sex="G") xyplot(width ~ length, groups = sex, data = KidsFeet, auto.key=TRUE) plotFun( L(length, sex="B") ~ length, add=TRUE, col=1 ) plotFun( L(length, sex="G") ~ length, add=TRUE, col=2 )
For logistic regression, makeFun()
handles the conversion back to
probabilities by default.
mod <- glm( SmokeNow =="Yes" ~ Age + Race3, data=NHANES, family=binomial()) SmokerProb <- makeFun(mod) xyplot( SmokeNow=="Yes" ~ Age, groups=Race3, data=NHANES, alpha=.01, xlim=c(20,90) ) plotFun(SmokerProb(Age, Race3="Black") ~ Age, col="black", add=TRUE) plotFun(SmokerProb(Age, Race3="White") ~ Age, col="red", add=TRUE) ladd(grid.text("Black", x=25, y=SmokerProb(25, Race="Black"),hjust = 0, vjust=-0.2, gp=gpar(col="black"), default.units="native")) ladd(grid.text("White", x=25, y=SmokerProb(25, Race="White"),hjust = 0, vjust=-0.2, gp=gpar(col="red"), default.units="native"))
f <- makeFun(sin(x) ~ x) plotFun( f(x) ~ x, xlim = c( -2 * pi, 2 * pi) )
plotFun( x * sin(1/x) ~ x, xlim=c(-1,1) ) plotFun( x * sin(1/x) ~ x, xlim=c(-1,1), npts=10000 )
plotDist("chisq", df=3) plotDist("chisq", df=3, kind="cdf")
xpnorm(80, mean=100, sd=15) xpnorm(c(80,120), mean=100, sd=15)
pdist("chisq", 4, df=3) pdist("f", 3, df1=5, df2=20) qdist("t", c(.025, .975) , df=5)
histogram( ~ rbinom(1000, 20, .4), width=1, v=20 * .4 ) SD <- sqrt(20 * .4 * .6) plotDist("norm", mean=.4*20, sd=SD, add=TRUE, alpha=.7)
plotDist("norm", col="blue", mean=2, xlim=c(-4,8)) plotDist("norm", mean=5, col="green", kind='histogram', add=TRUE) # add, overtop plotDist("norm", mean=0, col="red", kind='histogram', under=TRUE) # add, but underneath!
The mosaic
package now provides facilities for producing choropleth maps. The API is still under developement and may change in future releases.
mUSMap(USArrests %>% mutate(state = row.names(.)), key="state", fill = "UrbanPop")
Looks like it is safer to live in the North:
mUSMap(USArrests %>% mutate(state = row.names(.)), key="state", fill = "Murder")
Here is a sillier example
Countries %>% mutate(nletters = nchar(gapminder)) %>% mWorldMap(key="gapminder", fill="nletters")
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.