R语言 使用ggplot2在散点图上绘制平滑线

qzwqbdag  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(444)

ggplot和散点图的平滑线和标注查询
大家好
只是一个快速的ggplot问题。
我有一个数据表,上面有各种分界点

Metric<-c("zero", "D", "H", "W", "P", "C", "J", "L", "N", 
          "M")
F<-c(0, 0.11, 0.26, 0.07, 0.5, 0.07, 0.26, 0.05, 0.29, 0.03)
T<-c(0, 0.5, 0.9, 0.6, 0.9, 0.5, 0.9, 0.8, 0.9, 0.8)
FinalTable<-data.frame(Metric, F, T)

我试图在散点图上画一条平滑的线,这样它看起来就像

但是,当我使用代码时(见下文):文库(ggplot2)

ggplot(FinalTable, aes(F, T)) + 
  geom_point() + coord_cartesian(xlim=c(0,1), ylim=c(0, 1))+
  geom_smooth(method="loess", se=FALSE)

它给了我一个不太好的光滑适合:

我还想在每个数据点旁边添加标签。
预先感谢你的帮助。
詹姆斯

mklgxw1f

mklgxw1f1#

您可以使用geom_smooth()中的“span=”选项来硬化曲线。默认值为0.75,使用较高的值将拉直黄土曲线。

Metric<-c("zero", "D", "H", "W", "P", "C", "J", "L", "N", 
          "M")
F<-c(0, 0.11, 0.26, 0.07, 0.5, 0.07, 0.26, 0.05, 0.29, 0.03)
T<-c(0, 0.5, 0.9, 0.6, 0.9, 0.5, 0.9, 0.8, 0.9, 0.8)
FinalTable<-data.frame(Metric, F, T)

ggplot(FinalTable, aes(F, T)) + 
   geom_point() + coord_cartesian(xlim=c(0,1), ylim=c(0, 1))+
   geom_smooth(method="loess", se=FALSE, span=2)

另一种选择是使用不同的函数来拟合曲线。下面的例子是一个二阶多项式。

ggplot(FinalTable, aes(F, T)) + 
   geom_point() + coord_cartesian(xlim=c(0,1), ylim=c(0, 1))+
   geom_smooth(method="lm", se=FALSE, formula = "y ~ poly(x, 2)")

找到合适的函数来拟合截距(0,0)点和拟合剩余数据需要时间。

相关问题