R|散点图+边际图(柱形图,小提琴图),颜值区UP

简介: R|散点图+边际图(柱形图,小提琴图),颜值区UP


散点图作为一种展示2组连续变量关系的常用可视化方式之一,添加点,线,箭头,线段,注释,甚至函数,公式,方差表都没有问题。


本文简单的介绍2种散点图添加边际图的方法。

一 载入数据,R包

使用经典数据集iris

library(ggplot2) #加载ggplot2包
library(ggExtra)
library(ggstatsplot)
data(iris)
head(iris)

二 ggplot2 + ggExtra绘制边际散点图


使用ggplot2绘制散点图,然后利用ggExtra包的函数添加边际柱形图

2.1 绘制基础散点图

p1 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
 geom_point(color = "#00AFBB")
p1

2.2 添加一点点细节

1)添加横轴,数轴线;

2)添加R2 和 P值

3)添加回归曲线

p2 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
 geom_point(color = "#00AFBB") +
 geom_smooth(method="lm", se=T) +
 geom_hline(yintercept = 3, linetype = "dashed", color = "blue") +
 geom_vline(xintercept = 6, linetype = "dashed", color = "red") +
 annotate("text", x=4.5, y=4.25, parse=TRUE,
          label="r^2 == 0.0138 * ' p-value = 0.1529' ")
p2

既然是ggplot2绘制的,那更多细节还不是按照需求直接加就行嘛。


2.3 添加边际条形图

使用ggMarginal添加, Type 可选参数 histogram, densityboxplot.

ggMarginal(p2, type = "histogram", fill = "#00AFBB")

三 ggstatsplot绘制边际散点图


直接使用ggstatsplot包的ggscatterstats函数绘制

library(ggstatsplot)
ggscatterstats(
 data = iris,                                          
 x = Sepal.Length,                                                  
 y = Sepal.Width,
 xlab = "Sepal Length",
 ylab = "Sepal Width",
 marginal = TRUE,
 marginal.type = "densigram",
 margins = "both",
 xfill = "blue", # 分别设置颜色
 yfill = "#009E73",
 title = "Relationship between Sepal Length and Sepal Width",
 messages = FALSE
)

其中marginal.type可选 histograms,boxplots,density,violin,densigram (density + histogram);可自行尝试效果。


OK,文献中常见的带边际图的散点图就绘制好了!更多参数设置详见参考资料。


相关文章
|
机器学习/深度学习 监控 数据可视化
训练损失图(Training Loss Plot)
训练损失图(Training Loss Plot)是一种在机器学习和深度学习过程中用来监控模型训练进度的可视化工具。损失函数是衡量模型预测结果与实际结果之间差距的指标,训练损失图展示了模型在训练过程中,损失值随着训练迭代次数的变化情况。通过观察损失值的变化,我们可以评估模型的拟合效果,调整超参数,以及确定合适的训练停止条件。
2318 5
|
缓存 前端开发 JavaScript
【面试题】大厂面试官:你做过什么有亮点的项目吗?
【面试题】大厂面试官:你做过什么有亮点的项目吗?
221 0
|
机器学习/深度学习 存储 算法
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现(下)
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
|
机器学习/深度学习 程序员 数据处理
时间序列分析技巧(一):根据ACF、PACF进行AR、MA、ARMA模型选择
时间序列分析技巧(一):根据ACF、PACF进行AR、MA、ARMA模型选择
|
机器学习/深度学习 存储 数据可视化
手把手教你绘制和解读实用R列线图(Nomogram):从入门到精通
手把手教你绘制和解读实用R列线图(Nomogram):从入门到精通
2796 1
|
编解码 算法 BI
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
|
JSON 前端开发 Java
"《图书管理系统》利用SpringMvc$Spring$MyBatis (实操九)(一) "
"《图书管理系统》利用SpringMvc$Spring$MyBatis (实操九)(一) "
263 0
|
SQL 分布式计算 JavaScript
利用SparkSQL读写Excel数据
利用SparkSQL读写Excel数据
397 0
|
机器学习/深度学习 数据采集 搜索推荐
风险评分与生存时间:解密高风险组的潜在命运!
风险评分与生存时间:解密高风险组的潜在命运!
335 0
|
虚拟化
VMware 虚拟机 - 解决 Vmware 服务拒绝访问的问题
VMware 虚拟机 - 解决 Vmware 服务拒绝访问的问题
1729 0
VMware 虚拟机 - 解决 Vmware 服务拒绝访问的问题