我想在 ggplot2 中用 log10 刻度上的 x 轴和常规标签而不是具有最小小数位数的科学记数法来制作图表。这意味着我想将 0.1 显示为 0.1 而不是 0.10,将 100 显示为 100 而不是 100.00。
我试过
df = data.frame(x = c(1:10 %o% 10^(-3:2)), y = rnorm(60))
ggplot(df, aes(x=x, y=y))+
geom_point()+scale_x_log10(labels=comma)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这显示为许多小数。
@BenBolker 之前回答了一个类似的问题,他的代码适用于没有小数的数字,但如果数字小于 1,它似乎给出与标签=逗号相同的结果。
plain <- function(x,...) {
format(x, ..., scientific = FALSE, trim = TRUE)
}
ggplot(df, aes(x=x, y=y))+
geom_point()+scale_x_log10(labels=plain)
Run Code Online (Sandbox Code Playgroud)
添加drop0trailing = TRUE在plain。
plain <- function(x,...) {
format(x, ..., scientific = FALSE, drop0trailing = TRUE)
}
Run Code Online (Sandbox Code Playgroud)
要查看漂亮打印的其他选项,请参阅?format。