I'm using this code:
ggplot(all,aes(x=substrate, y=Ca))
geom_boxplot(data=weed,aes(colour=species))
scale_colour_manual(values="green3",name=NULL,labels="substrate\nmineral content")
geom_jitter(position = position_jitter(width = 0.22),
alpha=0.75, size=3.5,
aes(fill=species,shape=type))
scale_fill_manual(values=c("red","blue","purple","darkorange","darkgrey","orange2","grey2","darkgreen","black"))
scale_shape_manual(values=c(24,21,22))
labs(y="Ca mg/kg")
to give me this plot:
but as you can see, the legend is not filling.
when I remove the boxplot, giving me the horizontal green lines and then change the fill=specie
s, to colour=species
, and the scale_fill_manual
to colour it works. So it's something to do with the legend not taking the values from the fill, but I don't know how to fix it.
CodePudding user response:
Having looked at other data the problem is that the default shape for a colour legend of a geom_point
doesn't have a fill. Change it using guides
like so:
library(ggplot2)
mtcars |>
ggplot(aes(cyl, wt, fill = factor(gear), shape = factor(carb)))
geom_jitter(position = position_jitter(width = 0.22), size = 4)
scale_shape_manual(values=c(24,21,22,23,24,25))
guides(fill = guide_legend(override.aes = list(shape = 24)))