segundo - como hacer jitter click theimlimitz
cómo hacer jitter/esquivar geom_segments para que permanezcan en paralelo? (1)
Hice algo así con mis datos, pero a pesar de la transparencia, los segmentos son difíciles de visualizar (mis datos tienen muchos menos segmentos que el ejemplo a continuación) para ver su principio y final.
require(ggplot2)
ggplot(iris, aes(x = Petal.Length, xend = Petal.Width,
y = factor(Species), yend = factor(Species),
size = Sepal.Length)) +
geom_segment(alpha = 0.05) +
geom_point(aes(shape = Species))
Encontré esta solución, pero las líneas están entrecruzadas. ¿Hay alguna manera de hacer que el jitter produzca líneas paralelas con los puntos en las puntas? He intentado position_dodge
lugar de position_jitter
, pero requiere ymax
. ¿Puede ymax
integrarse para usar con geom_segment
?
ggplot(iris, aes(x = Petal.Length, xend = Petal.Width,
y = factor(Species), yend = factor(Species))) +
geom_segment(position = position_jitter(height = 0.25))+
geom_point(aes(size = Sepal.Length, shape = Species))
Por lo que sé, geom_segment
no permite el temblor ni la esquiva. Puede agregar jittering a la variable relevante en el marco de datos, luego graficar la variable jittered. En su ejemplo, el factor se convierte en numérico, luego las etiquetas para los niveles del factor se agregan al eje usando scale_y_continuous
.
library(ggplot2)
iris$JitterSpecies <- ave(as.numeric(iris$Species), iris$Species,
FUN = function(x) x + rnorm(length(x), sd = .1))
ggplot(iris, aes(x = Petal.Length, xend = Petal.Width,
y = JitterSpecies, yend = JitterSpecies)) +
geom_segment()+
geom_point(aes(size=Sepal.Length, shape=Species)) +
scale_y_continuous("Species", breaks = c(1,2,3), labels = levels(iris$Species))
Pero parece que geom_linerange
permite esquivar.
ggplot(iris, aes(y = Petal.Length, ymin = Petal.Width,
x = Species, ymax = Petal.Length, group = row.names(iris))) +
geom_point(position = position_dodge(.5)) +
geom_linerange(position = position_dodge(.5)) +
coord_flip()