GGPLOT2 y轴的标签小数精度(ggplot2 y axis label decimal pre

2019-06-23 09:53发布

我在一个循环中绘制几个ggplot图表(我知道,我知道不循环使用plyr ......但是),并很好奇,如果有设置小数精度说一个小数(即0.0)的方式。 我使用下面的尺度变换。

p <- p + scale_y_log10()

任何帮助,将不胜感激。

Answer 1:

我是那种的印象是一个小数(即1.2)是默认下,但如果你看到越来越多的小数位的是,你可以通过你自己的格式,以规模为:

fmt_dcimals <- function(decimals=0){
   # return a function responpsible for formatting the 
   # axis labels with a given number of decimals 
   function(x) as.character(round(x,decimals))
}

然后规模添加到您的情节:

ggplot( ... ) + scale_y_log10(labels = fmt_dcimals(2))

现在,我想这一点,我想补充一点,如果你真的要编写自己的格式,你应该坚持使用format功能做的工作,而不是四舍五入和胁迫。 这可能是更安全,“更好”。

作为一个例子,迫使两位小数后,你会这样格式化功能改变是这样的:

fmt_dcimals <- function(decimals=0){
    function(x) format(x,nsmall = decimals,scientific = FALSE)
}

并且可以进一步与玩nsmalldigits参数format得到你想要的东西,我想。 它的一个例子是使用:

df <- data.frame(x = 1:5,y = rexp(5))
ggplot(df,aes(x = x,y=y)) + 
    geom_point() + 
    scale_y_log10(labels = fmt_dcimals(2))



文章来源: ggplot2 y axis label decimal precision
标签: r ggplot2