Как установить одинаковые свойства для уровня фактора, который присутствует в двух разных фреймах данных для иллюстративных целей

#r #ggplot2

#r #ggplot2

Вопрос:

У меня есть два фрейма данных разной природы ( df1 и df2 ). Однако оба имеют один общий столбец ( ID ), который является категориальным с пятью уровнями.

Когда я создаю график с каждым из этих фреймов данных, я получаю разные цвета для ID уровней, что раздражает, поскольку мне нужно сравнивать значения ID s между графиками, и было бы очень полезно иметь один и тот же цвет для обоих.

Есть ли способ установить уровни в этом столбце таким образом, чтобы при использовании ggplot2 я получал одинаковые цвета, назначенные каждому ID ?

Ниже я делюсь поддельным примером. В этом примере цвет совпадает между графиками для одних и тех же ID s, однако в моем реальном случае он не совпадает. Я не знаю, почему сейчас. Есть ли какой-нибудь способ это исправить?

 df1 <- data.frame(Var.1=c(90,87,34,35),
                  Var.2=c("Day","Night","Day","Night"),
                  ID=c("A","B","C","D"))

df2 <- data.frame(Var.1=c(24,34,67,78),
                  Var.2=c("Day","Night","Day","Night"),
                  ID=c("C","D","A","B"))


P.1<- ggplot(df1, aes(x=Var.2, y=Var.1,group=ID,colour=ID))   
  geom_point(position=pd,size=4)   
  theme(legend.position = "top")
P.1

P.2<- ggplot(df2, aes(x=Var.2, y=Var.1,group=ID,colour=ID))   
  geom_point(position=pd,size=4)   
  theme(legend.position = "top")
P.2

arrange1 <- ggarrange(P.1,P.2,nrow = 1,ncol = 2, align = c("hv"),common.legend = TRUE)
arrange1
  

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

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

1. Использовать scale_color_discrete(limits = c('A', 'B', 'C, 'D')) ? Трудно сказать без примера, который воспроизводит вашу проблему.

2. Да!!! Спасибо! Это сработало!