千家信息网

怎么用R语言的ggplot2做平滑的折线图

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,这篇文章主要讲解了"怎么用R语言的ggplot2做平滑的折线图",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用R语言的ggplot2做平滑的折线图
千家信息网最后更新 2025年02月24日怎么用R语言的ggplot2做平滑的折线图

这篇文章主要讲解了"怎么用R语言的ggplot2做平滑的折线图",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用R语言的ggplot2做平滑的折线图"吧!

之前的图文 跟着Nature Genetics学画图~ggplot2画折线图并在指定区域添加灰色背景 画折线图的遇到的一个问题是:ggplot2默认的折线图画出来基本都是带尖的,有没有办法将折线图变得平滑一点呢?

在文章的留言区给出了两种答案
  • 一种是增加作图用到的数据的数量,可以实现折线图变平滑
  • 另外一种是使用 ggplot2的扩展包 ggalt中的 geom_xspline()函数,更贴心的是还给出了参考推文链接 https://mp.weixin.qq.com/s/kGsEAz6icSsEh50uOeHvBA

接下来我们就试试ggalt中的geom_xspline()函数画折线图的效果

通常遇到一个新的包直接用必应搜索搜包的名字就可以找到对应的帮助文档

image.png

打开这个包的github主页就有对应的帮助文档

ggalt: Extra Coordinate Systems,Geoms, Statistical Transformations, Scales & Fonts for ggplot2 (这句话是啥意思?用我蹩脚的英语翻译过来:给ggplot2准备的额外的坐标系统,图层,统计变化,字体等) 这个包具体都有啥功能今天就不研究了,主要记录一下如何实现平滑的折线图

首先是安装

直接install.packages()就可以了

install.packages("ggalt")
image.png

一个简单的小例子

构造一份数据
df<-data.frame(x=1:10,
y=sample(1:20,10))
ggplot2折线图
library(ggplot2)
ggplot(df,aes(x=x,y=y))+
geom_line()+
geom_point(size=3)+
theme_bw()
image.png
ggalt折线图
ggplot(df,aes(x=x,y=y))+
geom_xspline()+
geom_point(size=3)+
theme_bw()

这个看起来就比geom_line()函数平滑了一些

geom_spline()函数里有一个参数spline_shape,我们分别给这个参数赋予不同的值来看看他起到什么效果

p1<-ggplot(df,aes(x=x,y=y))+
geom_xspline(spline_shape = -2)+
geom_point(size=3)+
theme_bw()+
ggtitle("spline_shape = -2")+
labs(x=NULL,y=NULL)

p2<-ggplot(df,aes(x=x,y=y))+
geom_xspline(spline_shape = -1)+
geom_point(size=3)+
theme_bw()+
ggtitle("spline_shape = -1")+
labs(x=NULL,y=NULL)
p3<-ggplot(df,aes(x=x,y=y))+
geom_xspline(spline_shape = -0.5)+
geom_point(size=3)+
theme_bw()+
ggtitle("spline_shape = -0.5")+
labs(x=NULL,y=NULL)
p4<-ggplot(df,aes(x=x,y=y))+
geom_xspline(spline_shape = 0)+
geom_point(size=3)+
theme_bw()+
ggtitle("spline_shape = 0")+
labs(x=NULL,y=NULL)
p5<-ggplot(df,aes(x=x,y=y))+
geom_xspline(spline_shape = 1)+
geom_point(size=3)+
theme_bw()+
ggtitle("spline_shape = 1")+
labs(x=NULL,y=NULL)
p6<-ggplot(df,aes(x=x,y=y))+
geom_xspline(spline_shape = 2)+
geom_point(size=3)+
theme_bw()+
ggtitle("spline_shape = 2")+
labs(x=NULL,y=NULL)
cowplot::plot_grid(p1,p2,p3,p4,p5,p6,ncol = 3,nrow=2)

如果将spline_shape参数设置为0,效果和geom_line()函数是一样的,如果大于0,不会将所有的点连接起来,小于0就是带有平滑效果的曲线。但是这个值也不能太大或者太小,绝对值大于2,有的地方会变粗,这个是什么原理我也不太清楚。

好了,今天的内容就到这里,非常感谢以下两位读者的留言,后面还会有送书活动,到时候会有限送出R语言或者python学习的图书一本。



感谢各位的阅读,以上就是"怎么用R语言的ggplot2做平滑的折线图"的内容了,经过本文的学习后,相信大家对怎么用R语言的ggplot2做平滑的折线图这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

线图 平滑 语言 函数 效果 学习 内容 参数 就是 数据 文档 文章 跟着 问题 帮助 研究 不同 贴心 蹩脚 到时候 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手机网络安全健康 网络安全宣传周活动知识答题 网络安全应急演练存在的问题 部队网络安全宣传周新闻 应用软件开发客户执行 网络安全公司怎么没有360 中国第一个大数据库 怪物猎人世界各服务器异常 不做软件开发的出路 软件开发哪个中专好 山东人工智能农业信息系统数据库 淄博微信公众号软件开发外包公司 服务器怎么自动关闭程序 软件开发培训多少钱一般 食堂重装系统后怎么恢复数据库 电脑服务器打印机共享设置 软件开发验证过期怎么办 静安区推广软件开发哪家便宜 查看服务器ping值 中学信息技术有没有数据库 苏州物流软件开发哪家好 dns服务器安全防护 网络安全规范的通知 计算机软件开发趋势表格 无线网络技术实验报告 日常网络安全工作怎么开展 山东人工智能农业信息系统数据库 奶块13个服务器名称 车辆软件开发流程 大旗网络安全
0