如何用R语言的ggplot2+ggforce包绘制散点图并添加分组边界
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关如何用R语言的ggplot2+ggforce包绘制散点图并添加分组边界,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看
千家信息网最后更新 2026年11月02日如何用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安全错误
数据库的锁怎样保障安全
手磨咖啡
南京欣网互联网络科技
科技平台互联网
互联网金融监管科技数据
中国互联网科技股
互联网科技公司电话
善班互联网科技
致骋互联网科技
互联网金融科技创新
善班互联网科技有限公司
新浪科技互联网
互联网科技logo
上海万想互联网科技
互联网金融监管科技
丰台科技园 互联网公司
茂名市互联网科技产业园
宁夏科技产业互联网案例
互联网5g黑科技有哪些
杭州壁岐互联网科技有限公司
开一家科技互联网公司需要多少钱
中智农互联网科技
科技企业和互联网企业
网络科技有限互联网
艾特科技互联网
奇酷互联网络科技公司
甘肃拓世互联网科技有限公司
南山科技园互联网公司有哪些
崇明区互联网教育科技诚信经营
银行科技岗属于互联网吗
六子台科技互联网展会