I am plotting a sf object (multipolygons). I which its geometries are filled with a colour according to each observations' value in the column cand_dummy. However, I have tried to change many things in this plot but either I get the geometries with colour, but I can't change the colour, with something like this:
library(ggplot2)
ggplot(data = dta_plot) +
geom_sf(data = dta_plot, aes(fill = cand_dummy))+
theme_map()+
coord_sf(expand = FALSE)+
theme(legend.position="top")+
theme(legend.position="top")+
scale_fill_discrete(name = "Cand", labels = c("No", "Yes"))+
scale_fill_manual(values = c("white", "green4"))
This prints different colours for different values of cand_dummy, but not the colours I am setting it for on scale_fill_manual.
Alternatively, I changed fill for colour in the aes and do the following:
ggplot(data = dta_plot) +
geom_sf(data = dta_plot, aes(colour = cand_dummy))+
theme_map()+
coord_sf(expand = FALSE)+
theme(legend.position="top")+
theme(legend.position="top")+
scale_fill_discrete(name = "Cand", labels = c("No", "Yes"))+
scale_fill_manual(values = c("white", "green4"))
But now I get the boundaries/borders of each geometry in these colours while the geometry itself is coloured as grey. So I can't find a way of getting what I am looking for. Any idea? Thanks!
I believe that the issue is that you have included both functions scale_fill_manual and scale_fill_discrete in the code. I believe you should have only the following function:
scale_fill_manual(values = c("white", "green4"), name = "Cand", labels = c("No", "Yes"))
Let me know if this doesn't work for your first code block.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With