Nothing
## ----setup, message = FALSE---------------------------------------------------
# attaching required packages
library(PairViz)
library(MASS)
library(zenplots)
## ---- message = FALSE---------------------------------------------------------
data(olive, package = "zenplots")
## ---- fig.align = "center", fig.width = 6, fig.height = 8---------------------
zenplot(olive)
## ---- fig.align = "center", fig.width = 6, fig.height = 8---------------------
zenplot(olive, plot1d = "layout", plot2d = "layout")
## ---- eval = FALSE------------------------------------------------------------
# str(zenplot)
## ---- eval = FALSE------------------------------------------------------------
# function (x, turns = NULL, first1d = TRUE, last1d = TRUE,
# n2dcols = c("letter", "square", "A4", "golden", "legal"),
# n2dplots = NULL,
# plot1d = c("label", "points", "jitter", "density", "boxplot",
# "hist", "rug", "arrow", "rect", "lines", "layout"),
# plot2d = c("points", "density", "axes", "label", "arrow",
# "rect", "layout"),
# zargs = c(x = TRUE, turns = TRUE, orientations = TRUE,
# vars = TRUE, num = TRUE, lim = TRUE, labs = TRUE,
# width1d = TRUE, width2d = TRUE,
# ispace = match.arg(pkg) != "graphics"),
# lim = c("individual", "groupwise", "global"),
# labs = list(group = "G", var = "V", sep = ", ", group2d = FALSE),
# pkg = c("graphics", "grid", "loon"),
# method = c("tidy", "double.zigzag", "single.zigzag"),
# width1d = if (is.null(plot1d)) 0.5 else 1,
# width2d = 10,
# ospace = if (pkg == "loon") 0 else 0.02,
# ispace = if (pkg == "graphics") 0 else 0.037, draw = TRUE, ...)
## -----------------------------------------------------------------------------
olive2 <- cbind(olive, olive) # just for this illustration
## ---- fig.align = "center", fig.width = 8, fig.height = 13.3------------------
zenplot(olive2, n2dcols = 6, plot1d = "layout", plot2d = "layout",
method = "single.zigzag")
## ---- fig.align = "center", fig.width = 8, fig.height = 8---------------------
zenplot(olive2, n2dcols = 6, plot1d = "layout", plot2d = "layout",
method = "double.zigzag")
## ---- fig.align = "center", fig.width = 8, fig.height = 6.6-------------------
zenplot(olive2, n2dcols = 6, plot1d = "layout", plot2d = "layout",
method = "tidy")
## ---- fig.align = "center", fig.width = 8, fig.height = 5.4-------------------
zenplot(olive2, n2dcols = 6, plot1d = "arrow", plot2d = "layout",
method = "rectangular")
## ---- fig.align = "center", fig.width = 6, fig.height = 10--------------------
zenplot(olive, plot1d = "layout", plot2d = "layout", method = "double.zigzag",
last1d = FALSE, ispace = 0.1)
## ---- fig.align = "center", fig.width = 6, fig.height = 7---------------------
zenplot(olive, plot1d = "layout", plot2d = "layout", n2dcol = 4, n2dplots = 8,
width1d = 2, width2d = 4)
## -----------------------------------------------------------------------------
(path <- 1:5)
## -----------------------------------------------------------------------------
(path <- zenpath(5))
## ---- eval = FALSE------------------------------------------------------------
# zenplot(x = dataMat[,path])
## ---- eval = FALSE------------------------------------------------------------
# str(zenpath)
## ---- eval = FALSE------------------------------------------------------------
# function (x, pairs = NULL,
# method = c("front.loaded", "back.loaded", "balanced",
# "eulerian.cross", "greedy.weighted", "strictly.weighted"),
# decreasing = TRUE)
## -----------------------------------------------------------------------------
zenpath(5, method = "front.loaded")
zenpath(5, method = "back.loaded")
zenpath(5, method = "balanced")
## -----------------------------------------------------------------------------
zenpath(c(3,5), method = "eulerian.cross")
## ---- fig.align = "center", fig.width = 6, fig.height = 9---------------------
oliveAcids <- olive[, !names(olive) %in% c("Area", "Region")] # acids only
zpath <- zenpath(ncol(oliveAcids)) # all pairs
zenplot(oliveAcids[, zpath], plot1d = "hist", plot2d = "density")
## ---- fig.align = "center", fig.width = 8, fig.height = 7.2, eval = FALSE-----
# path <- c(1,2,3,1,4,2,5,1,6,2,7,1,8,2,3,4,5,3,6,4,7,3,8,4,5,6,7,5,8,6,7,8)
# turns <- c("l",
# "d","d","r","r","d","d","r","r","u","u","r","r","u","u","r","r",
# "u","u","l","l","u","u","l","l","u","u","l","l","d","d","l","l",
# "u","u","l","l","d","d","l","l","d","d","l","l","d","d","r","r",
# "d","d","r","r","d","d","r","r","d","d","r","r","d","d")
#
# library(ggplot2) # for ggplot2-based 2d plots
# stopifnot(packageVersion("ggplot2") >= "2.2.1") # need 2.2.1 or higher
# ggplot2d <- function(zargs) {
# r <- extract_2d(zargs)
# num2d <- zargs$num/2
# df <- data.frame(x = unlist(r$x), y = unlist(r$y))
# p <- ggplot() +
# geom_point(data = df, aes(x = x, y = y), cex = 0.1) +
# theme(axis.line = element_blank(),
# axis.ticks = element_blank(),
# axis.text.x = element_blank(),
# axis.text.y = element_blank(),
# axis.title.x = element_blank(),
# axis.title.y = element_blank())
# if(num2d == 1) p <- p +
# theme(panel.background = element_rect(fill = 'royalblue3'))
# if(num2d == (length(zargs$turns)-1)/2) p <- p +
# theme(panel.background = element_rect(fill = 'maroon3'))
# ggplot_gtable(ggplot_build(p))
# }
#
# zenplot(as.matrix(oliveAcids)[,path], turns = turns, pkg = "grid",
# plot2d = function(zargs) ggplot2d(zargs))
## -----------------------------------------------------------------------------
oliveAcids.by.area <- split(oliveAcids, f = olive$Area)
# Replace the "." by " " in third group's name
names(oliveAcids.by.area)[3] <- gsub("\\.", " ", names(oliveAcids.by.area)[3])
names(oliveAcids.by.area)
## ---- fig.align = "center", fig.width = 6, fig.height = 8---------------------
zenplot(oliveAcids.by.area, labs = list(group = NULL))
## ---- fig.align = "center", fig.width = 6, fig.height = 8---------------------
zenplot(oliveAcids.by.area, lim = "groupwise", labs = list(sep = " - "),
plot1d = function(zargs) label_1d_graphics(zargs, cex = 0.8),
plot2d = function(zargs)
points_2d_graphics(zargs, group... = list(sep = "\n - \n")))
## ---- message = FALSE---------------------------------------------------------
library(scagnostics)
Y <- scagnostics(oliveAcids) # compute scagnostics (scatter-plot diagonstics)
X <- Y["Convex",] # pick out component 'convex'
d <- ncol(oliveAcids)
M <- matrix(NA, nrow = d, ncol = d) # matrix with all 'convex' scagnostics
M[upper.tri(M)] <- X # (i,j)th entry = scagnostic of column pair (i,j) of oliveAcids
M[lower.tri(M)] <- t(M)[lower.tri(M)] # symmetrize
round(M, 5)
## -----------------------------------------------------------------------------
zpath <- zenpath(M, method = "strictly.weighted") # list of ordered pairs
head(M[do.call(rbind, zpath)]) # show the largest six 'convexity' measures
## -----------------------------------------------------------------------------
(ezpath <- extract_pairs(zpath, n = c(6, 0))) # extract the first six pairs
## ---- message = FALSE, fig.align = "center", fig.width = 6, fig.height = 6----
library(graph)
library(Rgraphviz)
plot(graph_pairs(ezpath)) # depict the six most convex pairs (edge = pair)
## -----------------------------------------------------------------------------
(cezpath <- connect_pairs(ezpath)) # keep the same order but connect the pairs
## -----------------------------------------------------------------------------
oliveAcids.grouped <- groupData(oliveAcids, indices = cezpath) # group data for (zen)plotting
## ---- fig.align = "center", fig.width = 6, fig.height = 8---------------------
zenplot(oliveAcids.grouped)
## -----------------------------------------------------------------------------
res <- zenplot(olive, plot1d = "layout", plot2d = "layout", draw = FALSE)
str(res)
## -----------------------------------------------------------------------------
res[["path"]][["occupancy"]]
## -----------------------------------------------------------------------------
head(res[["path"]][["positions"]])
## -----------------------------------------------------------------------------
points_2d_graphics
## -----------------------------------------------------------------------------
plot_region
## -----------------------------------------------------------------------------
plot_indices
## -----------------------------------------------------------------------------
n2dcols <- ncol(olive) - 1 # number of faces of the hypercube
uf <- unfold(nfaces = n2dcols)
identical(res, uf) #return FALSE
for(name in names(uf)) {
stopifnot(identical(res[[name]], uf[[name]]))
}
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.