如何用R语言的ggplot2+ggforce包绘制散点图并添加分组边界
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇文章给大家分享的是有关如何用R语言的ggplot2+ggforce包绘制散点图并添加分组边界,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看
千家信息网最后更新 2025年12月03日如何用R语言的ggplot2+ggforce包绘制散点图并添加分组边界image.png 添加圆形的分组边界
image.png image.png 添加椭圆分组边界
image.png 最后是无规则形状的分组边界image.png 还可以给每个组添加文字标签,加一个label参数就好了
本篇文章给大家分享的是有关如何用R语言的ggplot2+ggforce包绘制散点图并添加分组边界,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
今天查找桑基图的资料的时候发现了一份介绍ggforce这个包的使用方法的文章,发现发现添加分组边界还有其他的实现方法,今天的推文记录一下。
示例数据就直接使用R语言内置的鸢尾花数据集
首先是矩形的分组边界使用的是 geom_mark_rect() 函数
df<-iris
colnames(df)<-paste0("V",1:5)
library(ggplot2)
library(ggforce)
ggplot(data=df,aes(x=V1,y=V2,color=V5))+
geom_point()+
geom_mark_rect(aes(fill=V5),alpha=0.1)+
theme_bw()
使用到的是geom_mark_circle()函数
df<-iris
colnames(df)<-paste0("V",1:5)
library(ggplot2)
library(ggforce)
ggplot(data=df,aes(x=V1,y=V2,color=V5))+
geom_point()+
geom_mark_circle(aes(fill=V5),alpha=0.1)+
theme_bw()+
coord_cartesian(clip = "off")+
theme(plot.margin = margin(50,50,50,150),
legend.background = element_blank())

这里又遇到了一个新的知识点
coord_cartesian(clip = "off"),如果加上这一行命令,就能够让三个圆圈在最上层,不加的效果如下图,显示不全参考链接是 https://guangchuangyu.github.io/2018/05/ggplot2-clip/
用到的是geom_mark_ellipse()函数
df<-iris
colnames(df)<-paste0("V",1:5)
library(ggplot2)
library(ggforce)
ggplot(data=df,aes(x=V1,y=V2,color=V5))+
geom_point()+
geom_mark_ellipse(aes(fill=V5),alpha=0.1)+
theme_bw()+
coord_cartesian(clip = "off")+
theme(plot.margin = margin(10,10,10,50),
legend.background = element_blank())

用到的是geom_mark_hull()函数
df<-iris
colnames(df)<-paste0("V",1:5)
library(ggplot2)
library(ggforce)
#install.packages("concaveman")
library(concaveman)
ggplot(data=df,aes(x=V1,y=V2,color=V5))+
geom_point()+
geom_mark_hull(aes(fill=V5),alpha=0.1)+
theme_bw()+
coord_cartesian(clip = "off")+
theme(plot.margin = margin(10,10,10,50),
legend.background = element_blank())
这里会遇到一个警告信息Warning message: The concaveman package is required for geom_mark_hull需要安装并加载concaveman这个包 ··· install.packages("concaveman") library(concaveman) ···
df<-iris
colnames(df)<-paste0("V",1:5)
library(ggplot2)
library(ggforce)
#install.packages("concaveman")
library(concaveman)
ggplot(data=df,aes(x=V1,y=V2,color=V5))+
geom_point()+
geom_mark_ellipse(aes(fill=V5,label=V5),alpha=0.1)+
theme_bw()+
coord_cartesian(clip = "off")+
theme(plot.margin = margin(10,10,10,50),
legend.background = element_blank())
以上就是如何用R语言的ggplot2+ggforce包绘制散点图并添加分组边界,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
边界
分组
函数
语言
知识
数据
文章
方法
更多
知识点
篇文章
实用
一行
三个
上层
使用方法
信息
参数
命令
圆圈
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
党建数据库表设计
mvc项目保证数据库事务安全
无线网络技术期末考
软件开发前端程序员
自学小白编程软件数据库
信息网络安全监控
电力系统安全风险数据库
数据库原理与应用教程第二版答案
软件开发项目核心
普通人群dgv数据库
服务器电池电压低什么原因
潍坊app定制软件开发公司
服务器端口需要配置吗
网络安全电子数据
服务器上搭建ftp
hr产品软件开发公司
软件开发完成后怎么上线
校园网络安全手抄报八年级
软件开发流程sit
小茶解说海岛生存服务器
第七章计算机网络技术及应用3
软件开发专业计算机等级
计算机网络技术专业要多少分
丰富的数据库翻译
数据库mdb
下配置ftp服务器
软件开发桌面多大
数据库的安全事件
如何测试服务器吞吐量
服务器为什么有两个本地连接