Как добавить сегменты в диаграмму леденца на палочке ggplot2 в R - PullRequest
0 голосов
/ 10 апреля 2020

Вот мой начальный код диаграммы:

Full %>%                  ggplot(aes(x = reorder(POS, -Iconicity), y = Iconicity, fill = Group)) +
  geom_bar(stat = "summary", position=position_dodge(width = 0.9)) +
    scale_fill_viridis_d() + # color-blind compatible colors
  theme_minimal() + xlab("POS")

, который создает этот прекрасный график:

the barchart

Итак, я хотел повернуть это в виде диаграммы леденцов, чтобы она выглядела аккуратнее и современнее, и вот код, который я использовал:

Full %>%                  ggplot(aes(x = reorder(POS, -Iconicity), y = Iconicity, color = Group)) +
  geom_point(size=3, stat = "summary", position=position_dodge(width = 0.9)) +
  geom_segment(aes(x=POS, 
                    xend=POS, 
                    y=0,
                    yend=Iconicity)) +
  scale_fill_viridis_d() + # color-blind compatible colors
  theme_minimal() + xlab("POS") 

Однако, конечно, это не добавляет достаточно сегментов в нужных местах, и я не могу показаться выяснить, как перейти к коду. Что у меня осталось, так это:

catastrophic lollipop chart attempt

Я все еще довольно новичок в R, так что прости меня

1 Ответ

0 голосов
/ 10 апреля 2020

Я думаю, что проблема заключается в том, что вы суммируете geom_point, а не geom_segment, и вы используете position_dodge в geom_point.

Без воспроизводимого примера того, что Full, трудно быть уверенным в ответе на ваш вопрос, но, возможно, вы можете попытаться суммировать ваши значения за пределами ggplot и применить одно и то же position_dodge к каждому geom:

Full %>%  
  group_by(Group) %>%
  summarise(Iconicity = mean(Iconicity, na.rm = TRUE)) %>%
  ggplot(aes(x = reorder(POS, -Iconicity), y = Iconicity, color = Group)) +
  geom_point(size=3,position=position_dodge(width = 0.9)) +
  geom_segment(aes(x=POS, 
                   xend=POS, 
                   y=0,
                   yend=Iconicity), position = position_dodge(0.9) ) +
  scale_fill_viridis_d() + # color-blind compatible colors
  theme_minimal() + xlab("POS") 

Отвечает ли он на ваш вопрос?

Если нет, пожалуйста, предоставьте воспроизводимый пример того, что является вашим Full набором данных (см. Эту ссылку: Как создать отличный пример для воспроизводимого R )

...