I am trying to plot a dataset where the points are colored using the specified colors and text labels are colored using different manually specified colors
here is a dummy code to illustrate teh issue:
data2= mtcars |> mutate(color=sample(3, size = nrow(mtcars), replace = TRUE))
mtcars |>
ggplot(aes(mpg, disp, color=factor(am)))+
scale_color_manual(values=c("black","red"))+
geom_point()+
geom_text(data = data2, aes(mpg-1, disp, label=cyl, color=factor(color)))+
scale_color_manual(values=c("green","blue", "orange", "yellow"))
the issue is that 2nd scale_color_manual override the previous one (obviously). but I cant think of the way to tell R that they are applied to different objects: one to pints other to text labels
One option would be the
ggnewscale
package which allows for multiple scales and legends for the same aesthetic. To this end add anew_scale_color
to your code: