0

我有一些数据有点拥挤,接近于零。因此,我想对轴使用对数刻度,以便更清楚地了解这些点。但是,当我这样做并使用非常方便ggpmisc::stat_poly_line的功能时,拟合是在缩放数据上完成的。我能以某种方式避免这种情况吗?

下面是我的意思的一个例子。

df <- structure(list(x = c(
  0.01, 0.763333333333333, 12.42, 0.243333333333333,
  49.4066666666667, 2.37333333333333, 1.08333333333333, 0.0533333333333333,
  0.01, 0.37, 0.01, NA
), y = c(
  0.00333333333333333, 0.183333333333333,
  19.7, 0.356666666666667, 38.6566666666667, 3.47, 1.12, 0.0666666666666667,
  0.01, 0.456666666666667, 0.0166666666666667, 0.00333333333333333
)), row.names = c(NA, -12L), class = c("tbl_df", "tbl", "data.frame"))
ggplot2::ggplot(df, ggplot2::aes(x, y)) +
  ggplot2::geom_point() +
  ggpmisc::stat_poly_eq(
    formula = y ~ x + 0,
    mapping = ggplot2::aes(label = paste(ggplot2::after_stat(adj.rr.label)))
  ) +
  ggpmisc::stat_poly_line(formula = y ~ x + 0)
#> Warning: Removed 1 rows containing non-finite values (stat_poly_eq).
#> Warning: Removed 1 rows containing non-finite values (stat_smooth).
#> Warning: Removed 1 rows containing missing values (geom_point).

ggplot2::ggplot(df, ggplot2::aes(x, y)) +
  ggplot2::geom_point() +
  ggpmisc::stat_poly_eq(
    formula = y ~ x + 0,
    mapping = ggplot2::aes(label = paste(ggplot2::after_stat(adj.rr.label)))
  ) +
  ggpmisc::stat_poly_line(formula = y ~ x + 0) +
  ggplot2::scale_x_log10() +
  ggplot2::scale_y_log10()
#> Warning: Removed 1 rows containing non-finite values (stat_poly_eq).
#> Warning: Removed 1 rows containing non-finite values (stat_smooth).
#> Warning: Removed 1 rows containing missing values (geom_point).

reprex 包于 2021-09-27 创建(v2.0.1)

4

1 回答 1

1

aes只需在of中做对数的逆运算stat_poly_eq

ggplot2::ggplot(df, ggplot2::aes(x, y)) +
  ggplot2::geom_point() +
  ggpmisc::stat_poly_eq(
    formula = y ~ x + 0,
    mapping = ggplot2::aes(exp(x),exp(y),label = paste(ggplot2::after_stat(adj.rr.label)))
  ) +
  ggpmisc::stat_poly_line(formula = y ~ x + 0) +
  ggplot2::scale_x_log10() +
  ggplot2::scale_y_log10()

在此处输入图像描述

于 2021-09-27T12:24:18.943 回答