我无法按照我想要的方式格式化y轴标签。我希望它们四舍五入到最接近的千位。
library(scales)
library(ggplot2)
df<-data.frame(x=seq(1,10,by=1),y=sample(10000000,10))
ggplot(df,aes(x=x,y=y))+geom_point()+scale_y_continuous(trans='log10', breaks=trans_breaks('log10', function(x) 10^x), labels=comma)
如何格式化我的y标签,使它们四舍五入到最接近的千位?换句话说,我希望显示7,943,000而不是7,943,282。
答案 0 :(得分:2)
您可以将labels
参数更改为scale_y_continuous.
,然后我使用round(x,-3)
将标签值四舍五入到最接近的1000:
library(ggplot2)
library(scales)
df<-data.frame(x=seq(1,10,by=1),y=sample(10000000,10))
p <- ggplot(df,aes(x=x,y=y))+geom_point()
p <- p +scale_y_continuous(trans='log10',
breaks=trans_breaks('log10', function(x) 10^x),
labels = function(x)round(x,-3)
)
p
哪个产生: