Мне нужно сделать несколько графиков со схожими данными, чтобы все группы оставались одного цвета между графиками.
Я смог определить цвета для своих групп, используя scale_fill_manual
и установив мои values
и limits
.
Использование breaks
не сохраняло тот же цвет между графиками, но уровни решили эту проблему.
Однако теперь я хотел бы удалить неиспользуемые группы из легенды, поскольку не все графики содержат все группы, и кажется, что limits
переопределяет любую опцию breaks
или drop=TRUE
, которую я добавляю.
Есть ли способ удалить эти неиспользуемые значения, а также использовать ограничения для сохранения цвета между группами без необходимости явного удаления его вручную?
В приложении приведено изображение одного из графиков, которые я пытаюсь создать, но с неиспользованными пределами все еще в легенде.
[График с избыточными пределами в легенде] [1]
Ниже приведен код, аналогичный тому, что я пытаюсь.
Используя это, я хотел бы, чтобы "неизвестные Chroococcales" автоматически исключались из легенды о графике y и "неизвестные Oscillatoriophycideae" удалялись из обоих x & y .
Я бы хотел, чтобы он не использовал неиспользованные лимиты, независимо от того, какой лимит (т.е. не нужно предварительно указывать / знать неиспользованные лимиты).
x <- data.frame ("Genus" =c("unknown Cyanobacteria","Dolichospermum" ,"Planktothrix" ,"Other", "Microcystis"
,"unknown Synechococcaceae" ,"unknown Chroococcales","unknown Oscillatoriophycideae","Pseudanabaena","Synechococcus", "unknown Cyanobacteria","Dolichospermum" ,"Planktothrix" ,"Other", "Microcystis"
,"unknown Synechococcaceae"), "RelativeAB"= c( 22, 35, 46, 71, 44, 27, 17, 87, 67, 44, 17, 88, 15, 77, 99, 20), factor= c( "control", "control", "control", "control", "pulex", "pulex", "pulex", "pulex" ,"magna", "magna", "magna", "magna", "dilution", "dilution", "dilution", "dilution"))
y <- data.frame ("Genus" =c("unknown Cyanobacteria","Dolichospermum" ,"Planktothrix" ,"Other", "Microcystis"
,"unknown Synechococcaceae" ,"unknown Oscillatoriophycideae","Pseudanabaena","Synechococcus", "unknown Cyanobacteria","Dolichospermum" ,"Planktothrix" ,"Other", "Microcystis","unknown Synechococcaceae"), "RelativeAB"= c( 22, 35, 46, 71, 44, 27, 17, 87, 67, 44, 17, 15, 77, 99, 20), factor= c( "control", "control", "control", "pulex", "pulex", "pulex", "pulex" ,"magna", "magna", "magna", "magna", "dilution", "dilution", "dilution", "dilution"))
colorscyano <-c("#CC0000", "#FF6000", "#CC9900", "#336600", "#3333FF", "#9933CC", "#FF66CC", "#66FFFF", "#99FF33", "#FFFF00")
breakscyano <- c("unknown Cyanobacteria"
,"Dolichospermum"
,"Planktothrix"
,"Pseudanabaena"
,"Synechococcus"
,"Other"
,"Microcystis"
,"unknown Synechococcaceae"
,"unknown Chroococcales"
,"unknown Oscillatoriophycideae")
labscyano <-c(expression("Unknown" ~"cyanobacteria")
,expression(paste(italic("Dolichospermum")))
,expression(paste(italic("Planktothrix")))
,expression(paste(italic("Pseudanabaena")))
,expression(paste(italic("Synechococcus")))
,"Other"
, expression(paste(italic("Microcystis")))
, expression (paste("unknown", ~italic("Synechococcaceae")))
, expression (paste("unknown",~italic("Chroococcales")))
, expression (paste("unknown",~italic("Oscillatoriophycideae"))))
ggplot(x, aes(x=factor, y=RelativeAB, fill=Genus)) +
geom_bar(stat="identity", size=0.5, color="black")+
scale_fill_manual(values = colorscyano, limits= breakscyano, labels=labscyano)+
theme_classic()
ggplot(y, aes(x=factor, y=RelativeAB, fill=Genus)) +
geom_bar(stat="identity", size=0.5, color="black")+
scale_fill_manual(values = colorscyano, limits= breakscyano, labels=labscyano)+
theme_classic()```
[1]: https://i.stack.imgur.com/akiVF.png