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