Как я могу создать полосовую диаграмму со средним значением, представленным в виде короткой линии вместо точки в R? - PullRequest
1 голос
/ 29 февраля 2020

Я хотел бы создать полосовую диаграмму, которая выглядит следующим образом:

enter image description here

Но я смог создать нечто подобное только с помощью поперечины stat_summary:

ggplot(data, aes(x=variable, y=value)) + 
stat_summary(fun.data="mean_sdl", fun.args = list(mult=1), geom="crossbar", width=0.5) +
geom_jitter(position=position_jitter(0.2))

Результат таков:

enter image description here

Буду признателен за любые советы о том, как изменить код, чтобы я мог получить график, как на первом изображении.

Ответы [ 2 ]

2 голосов
/ 29 февраля 2020
ggplot(mtcars, aes(factor(cyl), qsec)) +
    geom_jitter(position = position_jitter(width = 0.2)) +
    stat_summary(fun.data = 'mean_sdl', geom = 'errorbar', width = 0.3) +
    stat_summary(fun.y = mean, geom = 'point', size = 20, shape = '_')

enter image description here

2 голосов
/ 29 февраля 2020

Вы можете использовать пакет с пчелиным теплом :

library (beeswarm)

beeswarm(len ~ dose, data = ToothGrowth, 
    col = 4, pch = 16,
    main = 'beeswarm + bxplot')
  bxplot(len ~ dose, data = ToothGrowth, add = TRUE)

enter image description here

...