我想在y轴上有漂亮的标签。例如,我更喜欢1000而不是1000.如何在ggplot中执行此操作?这是一个最低限度的例子:
x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000))
ggplot(x,aes(x=a, y=b))+
geom_point(size=4)
感谢任何提示。
答案 0 :(得分:29)
使用scales
个包,可以使用一些格式选项:逗号,美元,百分比。
请参阅?scale_y_continuous
中的示例。
我认为这可以满足您的需求:
library(ggplot2)
library(scales)
x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000))
ggplot(x, aes(x = a, y = b)) +
geom_point(size=4) +
scale_y_continuous(labels = comma)
答案 1 :(得分:1)
使用具有基本format()
功能的任何角色来预防数千人:
示例1(以逗号分隔)。
format(1000000, big.mark = ",", scientific = FALSE)
[1] "1,000,000"
示例2(空格分隔)。
format(1000000, big.mark = " ", scientific = FALSE)
[1] "1 000 000"
使用匿名函数将format()
应用于ggplot轴标签:
ggplot(x, aes(x = a, y = b)) +
geom_point(size = 4) +
scale_y_continuous(labels = function(x) format(x, big.mark = ",",
scientific = FALSE))