#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. Да!!! Спасибо! Это сработало!