Solución:
Aquí hay un ejemplo usando ggplot2, que puede trazar para trazar.
Espero que te ayude a orientarte en la dirección correcta. La última versión de plotly y ggplot2 ahora muestra valores de desplazamiento. Mi enfoque ha sido crear etiquetas de texto, ya que esto me permite incorporar una función de plantilla que puedo usar.
T.
Salida de gráficos (ggplot2)
Salida de gráficos (trazado)
Ejemplo de código
require(DAAG)
require(ggplot2)
require(plotly)
data("possum")
dset <- possum
here <- possum$sex == "f"
dname <- as.character(substitute(possum))
xnam <- as.character(substitute(x))
x <- dset[here, "totlngth"]
yLabel <- c("Total length (cm)")
## Pull in boxplot stats for use in mapping data later to boxplot
z <- boxplot.stats(x)
xlim <- range(c(z$stats, z$out))
xlim <- xlim + c(-0.025, 0.05) * diff(xlim)
ylim <- c(0.55, 1.5)
top <- 0.7
chh <- par()$cxy[2]
chw <- par()$cxy[1]
gp <- ggplot(data = possum, aes(y = totlngth, x = ""))
gp <- gp + stat_boxplot(geom = 'errorbar', width = .1)
gp <- gp + geom_boxplot(#width = .3,
outlier.color = "blue",
outlier.shape = 2)
gp <- gp + stat_summary(fun.y = mean,
geom = "point",
shape = 5,
size = 4)
gp <- gp + xlab(NULL)
gp <- gp + ylab(yLabel)
gp <- gp + theme(axis.ticks.x = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank())
gp <- gp + geom_text(data = data.frame(), aes(x = top + 1.5 * chh,
y = z$stats[5],
label = "Largest value n(there are no outliers)"
))
gp <- gp + geom_text(data = data.frame(), aes(x = top + 1.5 * chh,
y = z$stats[4],
label = "upper quartile"
))
gp <- gp + geom_text(data = data.frame(), aes(x = top + 1.5 * chh,
y = z$stats[3],
label = "median"
))
gp <- gp + geom_text(data = data.frame(), aes(x = top + 1.5 * chh,
y = z$stats[2],
label = "lower quartile"
))
gp <- gp + geom_text(data = data.frame(), aes(x = top + 1.5 * chh,
y = z$stats[1],
label = "Smallest value n(outliers excepted)"
))
if (!is.null(z$out)) {
gp <- gp + geom_text(data = data.frame(), aes(x = top + 1.5 * chh,
y = z$out[1],
label = "Outlier n"
))
# Display outlier
gp <- gp + geom_text(data = data.frame(), aes( x = rep(top - chh, 2),
y = z$out[1] + .5,
label = c(format(round(z$out[1], 2)))))
}
av <- mean(z$stats[c(2, 4)])
q1 <- z$stats[2]
q3 <- z$stats[4]
qtop <- q3 + 0.5 * chh
# Largest Value
gp <- gp + geom_text(data = data.frame(), aes( x = rep(top - chh, 2),
y = z$stats[5],
label = c(format(round(z$stats[5], 2)))))
# Upper Quartile
gp <- gp + geom_text(data = data.frame(), aes( x = rep(top - chh, 2),
y = q1,
label = c(format(round(q1, 2)))))
# Lower Quartile
gp <- gp + geom_text(data = data.frame(), aes( x = rep(top - chh, 2),
y = q3,
label = c(format(round(q3, 2)))))
gp
p <- ggplotly(gp)
p
Nota: El código anterior es una evolución de un ejemplo de diagrama de caja de paquete de gráficos base en:
- Análisis de datos y gráficos con R, tercera edición Por: John Maindonald; W. John Braun
El libro cubre el paquete básico con gran detalle, fue publicado en 2010, sigue siendo una gran fuente de información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)