r - 基于ggplot r中数字大小的刻度标签中小数的条件格式

标签 r ggplot2

在我的 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))

enter image description here

我看到了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/

相关文章:

在 R 中重构数据框架

r - 使用 API 下载数据时出现 "You must provide a hash."错误(在 R 中)

r - 如果没有y变量,则在x轴上的间隔上遮盖geom_density

r - ggplot 闪避条形图 : arrange bars by y-value per group

javascript - D3 fiddle 谱

r - 在同一轴上添加两个 y 轴标题

r - 处理功能错误,通知然后跳过

r - 为 'texi2dvi' 设置 'R CMD Rd2pdf'

regex - R - char 表的每个字符串中的正则表达式

r - 设置多面图中的列(或行)数