如何仅在 ggplot 轴刻度标签中显示小数?

how to only display decimals in ggplot axis tick labels?

如何让 ggplot 在轴刻度标签中只显示小数?

考虑如下所示的玩具数据框,其中所有变量的绝对值都小于 1:

set.seed(42)

x <- rnorm(n=500, sd = 0.1)
y <- 0.05 + 2*x + rnorm(n=500, sd = 0.05)
df <- data.frame(x,y)

summary(df)

library(ggplot2)
ggplot(data = df, aes(x = x, y = y)) +
    geom_point()

是否可以在轴上使用 .xx 而不是 0.xx

您可以将函数传递给 scale_x_continuous()labels 参数,在本例中为 lambda 样式函数:

ggplot(data = df, aes(x = x, y = y)) +
  geom_point() + 
  scale_x_continuous(labels=~sub("^(-?)0.", "\1.", sprintf("%.1f", .x)))