问题
I have put together the Shiny app (below), showing a choropleth, which looks good except for the scientific notation on the legend.
I would like the values to read: '$5,000,000', and '$4,000,000', etc, etc.
The code boils down to
g <-choroplethr(DF, lod="state", num_buckets = 1)
g <- g + scale_fill_gradient(high = "springgreen4", low= "grey90", name="Sum")
I attempted this:
g <- q + scale_fill_gradient(high = "springgreen4", low= "grey90", name="Sum", labels = c("5,000,000", "4,000,000", "3,000,000", "2,000,000", "1,000,000"))
But I got the error, Breaks and labels are different lengths
I'm not sure how I can specify breaks on the x axis when I'm dealing with a map? How can I create breaks that work with the labels I want to include? Thanks.
回答1:
If you are adding argument labels=
to scale_fill_gradient()
then you should also add argument breaks=
that is the same lenghts as your labels.
+ scale_fill_gradient(high = "springgreen4", low= "grey90", name="Sum",
labels = c("5,000,000", "4,000,000", "3,000,000", "2,000,000", "1,000,000"),
breaks = c(5000000, 4000000, 3000000, 2000000, 1000000))
In this case a better solution would be to just use the dollar
format from the scales
library. That will automatically add dollar signs and commas.
library(scales)
+ scale_fille_gradient(labels=dollar)
来源:https://stackoverflow.com/questions/23534938/setting-breaks-and-labels-in-ggplot