基于GGR图中数字大小的记号标签中小数的条件格式

基于GGR图中数字大小的记号标签中小数的条件格式,r,ggplot2,R,Ggplot2,在我的ggplot x轴刻度标签中,我想用0.1、0.2、0.5等小数位格式化0到1之间的数字,但如果数字是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()

在我的ggplot x轴刻度标签中,我想用0.1、0.2、0.5等小数位格式化0到1之间的数字,但如果数字是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))

我看到了答案,但我不知道如何使它与我的x轴一起工作。

您需要一个有效数字,以便可以使用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"))