在我的 ggplot x 轴刻度标签中,我想将 0 到 1 之间的数字格式化为一位小数(如 0.1、0.2、0.5 等),但如果数字为 1 或以上,我只想显示整数形式的数字 (1,2,3,4)。
我还想在末尾设置带有 X 的刻度标签的格式,以表示标签是乘数因子。 X 轴刻度标签的理想结果如下所示
0.1X 0.2X 0.5X 1X 2X 3X 4X
这是示例数据集的最小示例
set.seed(42)
data.frame(exp=rexp(100,5)*10) %>%
ggplot(aes(x=exp)) +
geom_density() +
scale_x_log10(breaks = c(0.1, 0.2, 0.3, 0.5, 1, 2, 4, 6))
我看到了this回答,但我不知道如何让它与我的 x 轴一起工作。
最佳答案
您需要 1 位有效数字,因此您可以使用 signif()
:
data.frame(exp=rexp(100,5)*10) %>%
ggplot(aes(x=exp)) +
geom_density() +
scale_x_log10(breaks = c(0.1, 0.2, 0.3, 0.5, 1, 2, 4, 6),
labels = function(b) paste0(signif(b, 1), "X"))
关于r - 基于ggplot r中数字大小的刻度标签中小数的条件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55720226/