When I use scale_fill_gradient() with geom_bar() in ggplot2, only one default color is filled for all bar. But expecting GREEN to RED for low to high count.
theTable <- within(data, Tag <- factor(tag, levels=names(sort(table(tag),
decreasing=FALSE))))
histGraph=ggplot(theTable,aes(x=Tag))+
coord_flip() +
scale_fill_gradient(low = "green", high = "red")+
geom_bar(width=0.7)
Output of above code,
And data look like,
ID Tag
1 BibArticleDOI
1 FirstPage
1 LastPage
2 BibArticleDOI
2 JournalTitle
3 BibArticleDOI
3 FirstPage
Edit: As got suggestion from Roman, editing above code.
dataOfTag <- as.data.frame(table(data$tag))
dataOfTag$tag <- factor(dataOfTag$Var1, levels = dataOfTag$Var1[order(dataOfTag$Freq)])
histPlot=ggplot(dataOfTag,aes(x=tag, y = Freq, fill = Freq))+
coord_flip() +
scale_fill_gradient(low = "green", high = "red")+
geom_bar(width=0.7, stat = "identity")
histPlot
I think you can use
..count..
so you don't need to pre-compute the frequency:You can try something along the lines of the below code. Precompute frequencies and assign fill to the frequency variable.