У меня есть ggplot с фасетами и цветами. Цвета связаны с «ID», а столбцы фасетов связаны с «Type». Один идентификатор всегда относится к одному и тому же типу, но в каждом типе есть разные номера идентификаторов. Я хотел бы сбросить цвета для каждого столбца граней, чтобы получить большую разницу в цветах.
ggplot(data = plt_cont_em, aes(x = Jahr, y = Konz)) +
geom_point(aes(color=factor(ID))) +
facet_grid(Schadstoff_ID ~ Type, scales = "free_y")
Теперь это выглядит следующим образом:
Я понимаю, что мне нужно ввести фиктивную переменную для цвета. Но есть ли простой способ нумерации идентификаторов в каждом типе, начиная с каждого типа с 1?
Поскольку данные являются конфиденциальными, я создал фиктивные данные, которые показывают ту же проблему.
ID<-c()
Type<-c()
Jahr<-c()
Schadstoff<-c()
Monat<-c()
Konz<-c()
for (i in 1:25){
#i = ID
#t = Type
t<-sample(c("A","B","C"),1)
for (j in 1:5){
#j = Schadstoff
if(runif(1)<0.75){
for(k in 2015:2020){
#k = Jahr
for(l in 1:12){
#l = Monat
if(runif(1)<0.9){
ID<-c( ID,i)
Type<-c( Type,t)
Jahr<-c( Jahr,k)
Schadstoff<-c( Schadstoff,j)
Monat<-c( Monat,l)
Konz<-c( Konz,runif(1))
}
}
}
}
}
}
tmp<- data.frame(ID,Type, Jahr, Schadstoff, Monat, Konz)
tmp<-tmp %>% group_by( Type) %>% mutate( Color=row_number())
p<-ggplot(data = tmp, aes(x = Jahr, y = Konz)) +
geom_point(aes(color=factor(Color)), size=0.8) +
facet_grid(Schadstoff ~ Type, scales = "free") +
theme_light() + theme(axis.text.x = element_text(angle = 45, hjust = 1))
p
Проблема по-прежнему существует, группировка не работает и цвет уникален для каждой строки.