我在一个循环中绘制几个ggplot图表(我知道,我知道不循环使用plyr ......但是),并很好奇,如果有设置小数精度说一个小数(即0.0)的方式。 我使用下面的尺度变换。
p <- p + scale_y_log10()
任何帮助,将不胜感激。
我在一个循环中绘制几个ggplot图表(我知道,我知道不循环使用plyr ......但是),并很好奇,如果有设置小数精度说一个小数(即0.0)的方式。 我使用下面的尺度变换。
p <- p + scale_y_log10()
任何帮助,将不胜感激。
我是那种的印象是一个小数(即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)
}
并且可以进一步与玩nsmall
和digits
参数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))