geom_line 将所有点连接起来,是折线图但不平滑
geom_smooth/stat_smooth一条平滑的线,但他是拟合曲线,不会遍历所有数据点
实现遍历所有点的光滑曲线需要用到插值原理
一个更好的选择是使用插值splines.这也是一个使用多项式的插值,但不是只使用一个(如你所尝试的),它使用很多.它们被强制执行以使曲线连续的方式遍历所有数据点.,这不能直接用ggplot完成,但可以使用ggalt :: geom_xspline完成
> mydata<-read.csv(p,header=T)
> ggplot(mydata, aes(x, y) )+
+ geom_xspline(spline_shape=-0.5, size=0.25)+
+ geom_point(shape=21,size=4,color="black",fill="#F78179") +
+ xlab("X-Axis")+
+ ylab("Y-Axis")+
+ ylim(0, 50)+
+ theme_gray()+
+ theme(
+ text=element_text(size=15,face="plain",color="black"),
+ axis.title=element_text(size=10,face="plain",color="black"),
+ axis.text = element_text(size=10,face="plain",color="black")
+ )
ggplot(mydata, aes(x, y) )+
geom_point(data=mydata,aes(x,y),shape=21,size=4,color="black",fill="red")+
geom_line(size=0.5,color="black")+
xlab("X-Axis")+
ylab("Y-Axis")+
ylim(0, 50)+
theme_gray()+
theme(
text=element_text(size=15,face="plain",color="black"),
axis.title=element_text(size=10,face="plain",color="black"),
axis.text = element_text(size=10,face="plain",color="black")
)
spline_int <- as.data.frame(spline(mydata$x, mydata$y))
ggplot(spline_int, aes(x, y) )+
geom_line(size=0.5,color="black")+
geom_point(data=mydata,aes(x,y),shape=21,size=4,color="black",fill="red")+ #这里用到的数据框鼠mydata,与spline_int不一样
xlab("X-Axis")+
ylab("Y-Axis")+
ylim(0, 50)+
theme_gray()+
theme(
text=element_text(size=15,face="plain",color="black"),
axis.title=element_text(size=10,face="plain",color="black"),
axis.text = element_text(size=10,face="plain",color="black")
)
ggplot(mydata, aes(x, y) )+
geom_xspline(spline_shape=-0.5, size=0.25)+
geom_point(shape=21,size=4,color="black",fill="#F78179") +
geom_area(fill="#F78179",alpha=0.9)+
xlab("X-Axis")+
ylab("Y-Axis")+
ylim(0, 50)+
theme_gray()+
theme(
text=element_text(size=15,face="plain",color="black"),
axis.title=element_text(size=10,face="plain",color="black"),
axis.text = element_text(size=10,face="plain",color="black")
)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。