【发布时间】:2018-05-18 14:40:57
【问题描述】:
我想在 ggplot2 中制作一个图表,x 轴在 log10 刻度上,标签采用常规而不是科学记数法,小数位数最少。这意味着我想将 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)
不幸的是,这显示了许多小数。
@BenBolker 之前回答了类似的question,他的代码适用于没有小数的数字,但如果有小于 1 的数字,它似乎给出与标签 = 逗号相同的结果。
plain <- function(x,...) {
format(x, ..., scientific = FALSE, trim = TRUE)
}
ggplot(df, aes(x=x, y=y))+
geom_point()+scale_x_log10(labels=plain)
【问题讨论】: