ggplot2 несколько геометрических точек на одном графике

#r #ggplot2 #plot #data-visualization

#r #ggplot2 #график #визуализация данных

Вопрос:

Я хочу визуализировать взаимосвязь y с A , B , и C отдельно для 10 уровней group переменной с использованием geom_point() .

Мой текущий график может строиться только y против A , но я хочу B , чтобы и C отображался на каждом графике разными цветами.

Мне было интересно, как это может быть достижимо в ggplot2 ?

 library(ggplot2)

dat <- read.csv('https://raw.githubusercontent.com/rnorouzian/e/master/sng.csv')

ggplot(dat) aes(x=A, y = y, fill = group) geom_point()  # How can I have `B` and `C` next to `A` with other colors
  facet_wrap(~group)
  

Ответ №1:

Попробуйте стандартный способ: получение данных в длинном формате.

 library(ggplot2)

dat %>%
  tidyr::pivot_longer(cols = A:C) %>%
  ggplot() aes(x=value, y = y, color = name)   
  geom_point()   facet_wrap(~group)
  

введите описание изображения здесь

Комментарии:

1. Для различения точек я могу придумать color , size , и shape , есть ли что-нибудь еще для различения точек друг от друга?

2. Да, я думаю, этого достаточно, чтобы разделить точки.

Ответ №2:

Мы можем использовать ggscatter из ggpubr

 library(ggpubr)
library(purrr)
ggscatter(dat, x = c("A", "B", "C"), y = "y", color = "group", palette = "jco")  %>% 
      invoke(ggarrange, ., ncol = 2, nrow = 2)
  

-вывод

введите описание изображения здесь