ggplot2如何画散点图拼接密度图
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,ggplot2如何画散点图拼接密度图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。image.png前几天有一个读者在公众号留言问上面这
千家信息网最后更新 2025年01月23日ggplot2如何画散点图拼接密度图
ggplot2如何画散点图拼接密度图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
前几天有一个读者在公众号留言问上面这幅图应该如何实现,我想到一个办法是利用ggplot2分别画散点图和密度图,然后利用aplot包来拼图,aplot包是ggtree的作者新开发的一个包,非常重要的一个作用就是解决拼图的时候坐标轴对齐的问题。这个aplot包的用法大家可以在微信搜索里直接搜aplot就可以直接找到原作者写的推文的介绍,而且这个公众号经常推送R语言的学习内容,非常好,作者是真正的大神级别的人物了。
aplot包:让你画出更复杂的图
好了下面就开始介绍具体的实现过程
首先是模拟数据生成两列符合正态分布的数据,然后组合成一个数据框
x<-rnorm(500,0,1)
y<-rnorm(500,0,2)
df<-data.frame(x=x,y=y)
head(df)
先做一个简单的散点图
library(ggplot2)ggplot(df,aes(x=x,y=y))+ geom_point()
按照Y轴的范围填充三个颜色,比如大于3填充一个,小于-3填充另外一种,-3到3中间的填充另外一种
给数据添加一列新的用来映射颜色
df$color<-ifelse(df$y>3,"A",
ifelse(df$y<(-3),"B","D"))
head(df)
画图
ggplot(df,aes(x,y))+
geom_point(aes(color=color))+
scale_color_manual(values=c("green","blue","grey"))+
theme_bw()
接下来是添加辅助线
ggplot(df,aes(x,y))+
geom_point(aes(color=color))+
scale_color_manual(values=c("green","blue","grey"))+
theme_bw()+
geom_hline(yintercept = -3,lty="dashed")+
geom_hline(yintercept = 3,lty="dashed")+
geom_vline(xintercept = -2,lty="dashed")
接下来是密度图ggplot(df,aes(x))+
geom_density(fill="grey",alpha=0.5)+
scale_y_continuous(expand = c(0,0))+
theme_minimal()+
theme(axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
y轴的密度分布也是这样画,下面就不重复了
接下来是拼图library(ggplot2)
library(aplot)
p1<-ggplot(df,aes(x,y))+
geom_point(aes(color=color))+
scale_color_manual(values=c("green","blue","grey"))+
theme_bw()+
geom_hline(yintercept = -3,lty="dashed")+
geom_hline(yintercept = 3,lty="dashed")+
geom_vline(xintercept = -2,lty="dashed")
p2<-ggplot(df,aes(x))+
geom_density(fill="grey",alpha=0.5)+
scale_y_continuous(expand = c(0,0))+
theme_minimal()+
theme(axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
p3<-ggplot(df,aes(y))+
geom_density(fill="grey",alpha=0.5)+
scale_y_continuous(expand = c(0,0))+
theme_minimal()+
theme(axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())+
coord_flip()
p1%>%
insert_top(p2,height = 0.5)%>%
insert_right(p3,0.5)
看完上述内容,你们掌握ggplot2如何画散点图拼接密度图的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
密度
数据
接下来
内容
问题
作者
公众
方法
更多
颜色
复杂
重要
束手无策
为此
三个
人物
作用
办法
原作
原作者
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发项目决策示例
昆山营销网络技术有哪些
网络安全法第七十一条
外显子上传数据库
网络安全共同维护倡议书
信息网络技术安全许可证
如何清空一张数据库表
北邮网络安全院研究生6
网络技术应用选修1
刺客信条服务器登录
通信工程是计算机网络技术类
网络安全防范指南
x3580服务器开不了机
计算机网络技术不好
内蒙古电子软件开发方案
filebeat采集多个服务器
跟谁学软件开发培训
河南铆钉枪软件开发
南京的互联网科技公司分布
陕西网络安全非标机箱上哪找
丰南区信息网络技术创造辉煌
6g网络技术企业
榆林市易德软件开发有限公司
教师学习网络安全法的心得
绍兴数据库培训多少钱
电脑网络安全防护怎么开启
黄药师软件开发
数据库添加冲突
金蝶k3数据库备份文件
网络技术培训学院北京