ggplot2如何画散点图拼接密度图
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,ggplot2如何画散点图拼接密度图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。image.png前几天有一个读者在公众号留言问上面这
千家信息网最后更新 2025年12月03日ggplot2如何画散点图拼接密度图image.png image.png image.png image.png 接下来是密度图image.png image.png
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安全错误
数据库的锁怎样保障安全
网络安全报告200字
数据库加密模糊查询
电脑进入带网络安全模式
网络安全毕业论文开题
中国网络安全法规
工控项目软件开发
国泰安康互联网金融科技有限公司
软件开发为什么伤脑
服务器能耗计算
手动添加完网络安全性是哪个
崇明区工业软件开发收费
西部网络安全专业
惠州电商软件开发优势
网络安全法律卫士
西安酒店软件开发价格
vb网络多连接数据库
apache服务器全局配置详解
sql视图跟数据库关系视图区别
网络安全技术培训材料
企业安全桌面软件开发
服务器驱动怎么安装比较安全
数据库中pk
数据库中数据表的个数据库
怀旧服部落服务器维护时间
苹果在俄罗斯的服务器放在哪
计算机网络技术自考科目
龙通村网络安全普及教育的报告
适合软件开发的台式电脑配置
使用图形界面访问数据库注意事项
贵州服务器电源厂家有哪些