I'm trying to make a heat plot for a discrete outcomes (each value uses a single color) such that:
df<-data.frame(x=rep(LETTERS[1:10], each=10),
y=rep(1:10,10),
value=sample(1:8, 100,replace=T))
colors<-c("green", "lightyellow", "yellow", "orange", "orangered", "red", "darkred", "black")
ggplot(df, aes(x=x, y=y))+
geom_tile(aes(fill=value), colour="white")+
#scale_fill_gradient(low="green", high="red")
scale_fill_manual(values=colors)
Error: Continuous value supplied to discrete scale
Does somebody know how to fix it and apply the colors variable to the heatmap?
If you want to supply colours manually, you need to map fill
to a factor variable.
ggplot(df, aes(x=x, y=y))+
geom_tile(aes(fill=factor(value)), colour="white")+
scale_fill_manual(name = "Values", values=setNames(colors, 1:8))
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