如何使用R语言绘制散点图结合边际分布图
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要为大家展示了"如何使用R语言绘制散点图结合边际分布图",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用R语言绘制散点图结合边际分布图"这篇
千家信息网最后更新 2025年01月17日如何使用R语言绘制散点图结合边际分布图
这篇文章主要为大家展示了"如何使用R语言绘制散点图结合边际分布图",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用R语言绘制散点图结合边际分布图"这篇文章吧。
主要使用ggExtra
结合ggplot2
两个R包进行绘制。(胜在简洁方便)使用cowplot
与ggpubr
进行绘制。(胜在灵活且美观)
下面的绘图我们均以iris数据集为例。
1. 使用ggExtra结合ggplot2
1)传统散点图
# librarylibrary(ggplot2)library(ggExtra)# classic plotp <- ggplot(iris) + geom_point(aes(x = Sepal.Length, y = Sepal.Width, color = Species), alpha = 0.6, shape = 16) + # alpha 调整点的透明度;shape 调整点的形状 theme_bw() + theme(legend.position = "bottom") + # 图例置于底部 labs(x = "Sepal Length", y = "Sepal Width") # 添加x,y轴的名称p
下面我们一行代码添加边际分布(分别以密度曲线与直方图的形式来展现):
2)密度函数
# marginal plot: densityggMarginal(p, type = "density", groupColour = TRUE, groupFill = TRUE)
3)直方图
# marginal plot: histogramggMarginal(p, type = "histogram", groupColour = TRUE, groupFill = TRUE)
4)箱线图(宽窄的显示会有些问题)
# marginal plot: boxplotggMarginal(p, type = "boxplot", groupColour = TRUE, groupFill = TRUE)
5)小提琴图(会有重叠,不建议使用)
# marginal plot: violinggMarginal(p, type = "violin", groupColour = TRUE, groupFill = TRUE)
6)密度函数与直方图同时展现
# marginal plot: densigramggMarginal(p, type = "densigram", groupColour = TRUE, groupFill = TRUE)
2. 使用cowplot与ggpubr
1)重绘另一种散点图
# Scatter plot colored by groups ("Species")sp <- ggscatter(iris, x = "Sepal.Length", y = "Sepal.Width", color = "Species", palette = "jco", size = 3, alpha = 0.6) + border() + theme(legend.position = "bottom")sp
2)有缝拼接
① 密度函数
library(cowplot)# Marginal density plot of x (top panel) and y (right panel)xplot <- ggdensity(iris, "Sepal.Length", fill = "Species", palette = "jco")yplot <- ggdensity(iris, "Sepal.Width", fill = "Species", palette = "jco") + rotate()# Cleaning the plotssp <- sp + rremove("legend")yplot <- yplot + clean_theme() + rremove("legend")xplot <- xplot + clean_theme() + rremove("legend")# Arranging the plot using cowplotplot_grid(xplot, NULL, sp, yplot, ncol = 2, align = "hv", rel_widths = c(2, 1), rel_heights = c(1, 2))
② 未被压缩的箱线图
# Marginal boxplot of x (top panel) and y (right panel)xplot <- ggboxplot(iris, x = "Species", y = "Sepal.Length", color = "Species", fill = "Species", palette = "jco", alpha = 0.5, ggtheme = theme_bw())+ rotate()yplot <- ggboxplot(iris, x = "Species", y = "Sepal.Width", color = "Species", fill = "Species", palette = "jco", alpha = 0.5, ggtheme = theme_bw())# Cleaning the plotssp <- sp + rremove("legend")yplot <- yplot + clean_theme() + rremove("legend")xplot <- xplot + clean_theme() + rremove("legend")# Arranging the plot using cowplotplot_grid(xplot, NULL, sp, yplot, ncol = 2, align = "hv", rel_widths = c(2, 1), rel_heights = c(1, 2))
3)无缝拼接
# Main plotpmain <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) + geom_point() + color_palette("jco")# Marginal densities along x axisxdens <- axis_canvas(pmain, axis = "x") + geom_density(data = iris, aes(x = Sepal.Length, fill = Species), alpha = 0.7, size = 0.2) + fill_palette("jco")# Marginal densities along y axis# Need to set coord_flip = TRUE, if you plan to use coord_flip()ydens <- axis_canvas(pmain, axis = "y", coord_flip = TRUE) + geom_density(data = iris, aes(x = Sepal.Width, fill = Species), alpha = 0.7, size = 0.2) + coord_flip() + fill_palette("jco")p1 <- insert_xaxis_grob(pmain, xdens, grid::unit(.2, "null"), position = "top")p2 <- insert_yaxis_grob(p1, ydens, grid::unit(.2, "null"), position = "right")ggdraw(p2)
以上是"如何使用R语言绘制散点图结合边际分布图"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
边际
密度
分布图
语言
内容
函数
直方图
篇文章
线图
学习
帮助
调整
简洁
美观
一行
两个
代码
传统
同时
名称
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
一数据库组页眉和组页脚能有几个
动画软件开发公司
网络安全事件应急演练提升
ios应用软件开发费用标准
mac共享服务器
绝地求生未来之役只有一个服务器
网络安全警报怎么消除
软件开发应用什么软件
怎么配置连接服务器地址
信诚网络安全基金
计算机三级网络技术英语解释
技算机网络技术包括哪些专业
塔式服务器维修费用清单
专科网络技术就业
慕彤网络技术
南通系统软件开发流程
软件开发合同和采购合同
学网络安全技术有什么道德
用r画excel数据库
中国网络安全组长
新媒体网络安全播出应急预案
怎么搭建高速服务器
标准信息数据库设计
徐州江苏大容量服务器规格
对数据库安全的理解
描述面向对象软件开发过程
四川网络安全评职称
清除手机网络连接数据库
广州迅达网络技术有限公司
四川网络安全处