gpt4 book ai didi

r - ggplot2 y轴标签小数精度

转载 作者:行者123 更新时间:2023-12-03 01:17:56 34 4
gpt4 key购买 nike

我正在循环中绘制几个 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)
}

我认为,您可以进一步使用 formatnsmalldigits 参数来获得您想要的。它的使用示例:

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))

enter image description here

关于r - ggplot2 y轴标签小数精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10035786/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com