R-ggplot geom_smooth在不更改回归线的情况下限制y轴

时间:2020-09-27 06:38:31

标签: r ggplot2

我正在使用geom_smooth来适应如下所示的回归线。它所做的不只是线条拟合。还将样本计数表添加到ggplot图表中。

sctrFn = function(df, colNameX, colNameY) {
 
  dfPlot = df %>%
    select(!!colNameX, !!colNameY)
  
  # scatter plot with line fit
  p = ggplot(dfPlot, aes_string(x=colNameX, y=colNameY)) + 
    geom_point() +
    geom_smooth(method=loess, se=T, fullrange=F, size=1)
  # p = p + ylim(0,5)
  
  # sample count table
  tb = df %>%
    filter(!is.na(!!as.name(colNameX)) & !is.na(!!as.name(colNameY))) %>%
    do(data.frame(Count=nrow(.)))
  
  # create plot data
  data.plot = tibble(x = 0, y = 0, p = list(p))
  data.tb = tibble(x = 1, y = 0.05, tbl = list(tb))
  
  # scatter plot with table
  return (
    ggplot() + xlim(c(0,1)) + ylim(c(0,1))  + theme_void() +
      geom_plot(data = data.plot, aes(x, y, label = p,vp.width = 0.95,vp.height = 0.95)) +
      geom_table(data = data.tb, aes(x,y,label = tbl,hjust=1,vjust=1))
  )
  
}

这给了我下面的图表,很完美。

enter image description here

但是,我想通过将y轴的范围从0限制为5来获得此图表的特写-这类似于下面的内容,但是y轴刻度线的间隔较小,为1个单位。我尝试在上述函数中添加p = p + ylim(0,5)。但是,这完全改变了回归线并且没有给出预期的结果。

enter image description here

0 个答案:

没有答案