Ответ 1
Насколько я знаю, geom_segment
не позволяет дрожать и не уклоняться. Вы можете добавить дрожание в соответствующую переменную в фрейме данных, а затем нарисовать дрожащую переменную. В вашем примере коэффициент преобразуется в числовой, затем метки для уровней фактора добавляются к оси с помощью 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))
Но кажется, что geom_linerange
позволяет уклонение.
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()