R|使用ggrepel添加文字标签

news2024/11/27 17:56:49

f060c7cc6ae912b2b5b3f0791f390e0c.png

最近在用ggrepel,这里记录一些官网教程中的概要。与其去搜答案,不如过一遍软件的示例,大部分的问题都能迎刃而解。更详细的内容可参照官网教程:https://ggrepel.slowkow.com/articles/examples.html

>基本用法<

相比于geom_text()增加标签,它主要的作用就是让标签和数据点分离。其中标签的文字用aes中的label定义,之后就是调整文字标签的位置和连线的形式。

25d9bb42624bd687789d8c1a50d5ede5.png

0859881888e9bf49e314b121279e233d.png

>只显示一部分标签<

通过设置空字符串""实现。

576c475ce6432a06175222b63449e69b.png

a262a083643b485f3e0a9545276dc956.png

实测用NA也可以实现,NA标签的点在geom_text_repel中会被视为missing value,会产生warning。

454855c5379b473a1f9086f46e31afcd.png

>设置绘制标签的区域<

通过设置xlim和ylim实现。

8219b223d72a1ab8d18a0270b9b42b97.png

93956f1f12193d43a01c7dacec0aa422.png

>对齐标签<

垂直左中右对齐可以通过hjust(0-左对齐,0.5居中,1-右对齐)实现,direction="y"设定扩展方向为垂直方向。这里的数据点都是对齐的,意味着标签的起始位置相同,若这些点未对齐,标签的起始位置也不一样,就无法做到对齐。这时可以设置xlim或者通过多个nudge_x调整标签的起始位置。以下有几个示例都是通过设定多个nudge_x或nudge_y调整标签位置,其实一个快捷的方式是通过设置xlim或者ylim实现。

8bbf6b32a4e044ee118ed6b325076345.png

bcab6ba98b00aaf389c6108b1c74341f.png

水平的对齐略微复杂,nudge_x/nudeg_y可以设置单个值或者多个值,对全部标签或者每一个标签进行位置的调整。这里计算每个点需要调整的值,将其设置为nudge_y实现。相应的扩展方向需要设置为水平(direction="x")。

6f24c060268a9f5642dd4f33f084af88.png

50c350385823d4d44cd8f0d56cfeb520.png

如果不介意标签的方向,可以将标签旋转90度,并设置hjust。注意angle只能为90,另外force_pull=0是非常tricky的设置,否则标签之间会有重叠。

2637852aefba3711ebf30c6a5b1f5200.png

e6e45d7c47602d29ac9e7b4e63f97446.png

根据数据点的位置设置左对齐或者右对齐。

a0a96eeac1d7bd5b52e77b4ce4813a5b.png

03458dcc251f358082f8363862790243.png

长字符串(句子)的左右对齐,通过添加多个hjust设置完成。

e691a44f9709f68a201d710fd11b417c.png

f9b201e3c96765747aeae6358fc758ad.png

e09fa2be0a5981a374faa5f484c6e74d.png

使用geom_label_repel可以添加边框。

668d095d762593e16ec17be2fdcef2a9.png

>加jitter<

数据点为了避免重合,一般会加jitter,这样标签就对不上数据点了,所以需要统一为数据点和标签加jitter。这里使用的是position_quasirandom()函数。

09fae427f6cf624ce6d882fc7e086281.png

6dc76e77e6deed029d052692601a4ce9.png

>其他<

7008e2e275c168f55b70976b41a4ea13.png

控制标签和数据点之间的连线,主要通过segment系列的参数设置,能在vignettes/examples.Rmd或官网中找到。参数众多,能做非常细致的调整,但目前并未用到,先略未敬。

4dabc22f0d237a11e4506d9bdbda56d6.png

一部分设置字体大小等aes的参数并未在R的帮助文件中详细给出,

9742f62861b8939c252813da36de95e1.png

同样能在vignettes/examples.Rmd或官网中可以找到。

d519d29d4191de529ded0f0bb15fe6f7.png

最后是一点使用的经验,使用时打开verbose=T,提高max.time和max.iter,多次运行挑选出满意的效果。设置seed能保证每次作图的结果相同。

2023/01/26

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/180531.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python+django健身房课程预约评分系统

启动一个新项目 执行下面的命令来创建一个新的 Django 项目&#xff1a; django-admin startproject myproject 命令行工具django-admin会在安装Django的时候一起自动安装好。 执行了上面的命令以后&#xff0c;系统会为Django项目生成基础文件夹结构。 现在&#xff0c;我…

DFS(深度优先搜索)详解(概念讲解,图片辅助,例题解释,剪枝技巧)

目录 那年深夏 引入 1.什么是深度优先搜索&#xff08;DFS&#xff09;&#xff1f; 2.什么是栈&#xff1f; 3.什么是递归&#xff1f; 图解过程 问题示例 1、全排列问题 2、迷宫问题 3、棋盘问题&#xff08;N皇后&#xff09; 4、加法分解 模板 剪枝 1.简介 2.剪枝…

ASCII表

背景 ASCII&#xff08;American Standard Code for Information Interchange&#xff0c;美国信息互换标准代码&#xff09;是一套基于拉丁字母的字符编码&#xff0c;共收录了 128 个字符&#xff0c;用一个字节就可以存储&#xff0c;它等同于国际标准 ISO/IEC 646。 ASCII…

【R语言数据科学】:多项式回归

【R语言数据科学】:多项式回归 🌸个人主页:JOJO数据科学📝个人介绍:统计学top3高校统计学硕士在读💌如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏✨本文收录于【R语言数据科学】本系列主要介绍R语言在数据科学领域的应用包括: R语言编程基础、R语…

软件测试该怎么测?10个测试方法,带你初步了解

软件测试该怎么测&#xff1f;10个测试方法&#xff0c;带你初步了解1.需求测试2.界面测试3.功能测试4.安全性测试5.可靠性测试6.可移植性测试7.兼容性8.易用性9.压力测试10.异常场景测试当然还有很多测试方法&#xff0c;这些要根据实际不同应用场景而变化&#xff0c;这里就以…

蓝桥杯算法训练合集五 1.简单字符变换2.字母转换3.输出一个倒等腰三角形4.寻找数组中最大值5.斐波拉契数列6.高低位变换

目录 1.简单字符变换 2.字母转换 3.输出一个倒等腰三角形 4.寻找数组中最大值 5.斐波拉契数列 6.高低位变换 1.简单字符变换 问题描述 输出任意一个小写字母&#xff0c;要求输出其ASCII码&#xff0c;并输出对应的大写字母。 输入格式 从键盘输入小写字母。 输出格式 输…

【c语言进阶】动态内存管理知识大全(上)

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;c语言学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我…

敢问路在何方?拒绝【内卷】到【进化】的底层逻辑

不知道什么时候&#xff0c; “内卷”这个词频繁出现在各行各业&#xff0c;人们也喜欢把各种问题归结于“内卷”。网络段子都说&#xff0c;以前打招呼是 “你吃了吗”&#xff1f;现在是“你卷赢了吗”&#xff1f; 从【你吃了吗&#xff1f;】到【你卷赢了没&#xff1f;】 …

C++基础(1) - 前导知识

文章目录程序编译流程常用的C编译器各种编译命令程序编译流程 常用的C编译器 最初的 cfront&#xff1b;Unix、Linux 系统中的 GNU g 编译器&#xff1b;Windows 系统中的 Cygwin、MinGW(Minimalist GNU for Windows)、MinGW-w64 等&#xff0c;它们都包含 GNU g 编译器&#…

了解JUnit测试框架

作者&#xff1a;~小明学编程 文章专栏&#xff1a;测试开发 格言&#xff1a;热爱编程的&#xff0c;终将被编程所厚爱。 目录 注解 Test注释 BeforeEach BeforeAll AfterEach AfterAll 断言 assertEquals / assertNotEquals assertTrue / assertFalse 测试的执行…

linux基本功系列之yum实战

文章目录一. yum命令介绍1.1 yum的介绍1.2 yum的优劣势1.3 使用yum的注意事项1.3.1 配置本地yum源1.3.2 配置网络yum源二. 语法格式及常用选项2.1 yum的全部参数2.2 影响yum的配置文件2.3 最常用的yum参数三. 参考案例实战3.1 使用yum进行安装3.2 使用yum升级和更新软件包3.3 软…

Kettle(9):排序记录组件

1 组件介绍 排序组件可以将Kettle数据流中的数据进行排序,可以指定升序、还是降序排列 2 需求 使用Kettle将t_user表中的用户数据,按照年龄升序排序,并将排序后的数据装载到Excel 3 构建Kettle数据流图 效果图

第二章 Java编程基础

第二章 Java编程基础 目录一&#xff0e; Java基本语法1. 基本格式2. 注释3. 标识符4. 关键字5. 常量二&#xff0e; 变量1. 定义2. 数据类型3. 整数类型变量4. 浮点类型变量5. 字符类型变量6. 布尔类型变量7. 类型转换8. 自动提升9. 变量作用域三&#xff0e; 运算符1. 算数运…

【VisualBasicApplication】Excel编程 快速入门

VBAExcel的宏与VBA宏的录制宏的启动运行快捷键运行宏&#xff1a;使用Excel对象运行宏*VBA的数据类型字符串&#xff08;String&#xff09;整形&#xff08;Integer&#xff09;和长整形&#xff08;Long&#xff09;单精度浮点型&#xff08;Single&#xff09;和双精度浮点型…

我应该使用哪个版本的 JDK?

本文在写作过程中参考了whichJDK ​ 要构建和运行 Java 应用程序&#xff0c;就需要安装 JDK 环境。 OpenJDK 是 Java SE 规范的开源软件&#xff0c;但它只是源代码。二进制发行版由不同的供应商提供&#xff0c;适用于许多受支持的平台&#xff0c;这些发行版在许可证、商业…

设计模式 - 创建型模式_7种单例模式实现

文章目录创建型模式概述Case7种单例模式实现静态类使⽤懒汉模式(线程不安全)懒汉模式(线程安全)饿汉模式(线程安全)使⽤类的内部类(线程安全)双重锁校验(线程安全)CAS「AtomicReference」(线程安全)Effective Java作者推荐的枚举单例(线程安全)小结创建型模式 创建型模式提供创…

MySQL约束详解

目录 概念 作用 分类 MySQL约束——主键约束 概念 操作 操作——添加单列主键 操作——添加多列主键&#xff08;联合主键&#xff09; 操作——删除主键约束 MySQL约束-自增长约束(auto_increment) 概念 语法 操作 特点 指定自增字段初始值 delete和truncate在删…

零基础学JavaWeb开发(二十六)之 nginx(2)

5、基于Nginx解决跨域问题 5.1、什么是网站跨域问题 前端部署 html.mayikt.com /index.html 后端部署 api.mayikt.com/ 接口 java 浏览器访问&#xff1a;http://html.mayikt.com/user.html 页面里面 ajax 请求&#xff1a;http://api.mayikt.com/getUser 浏览器访问&#…

力扣刷题记录——697. 数组的度、728. 自除数 、821. 字符的最短距离

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《力扣刷题记录——697. 数组的度、728. 自除数 、821. 字…

腾讯云开发者2022年度热文盘点

01十亿人都在用的健康码运维体系如何设计&#xff1f;随着疫情防控模式的迭代&#xff0c;健康码访问DAU逐渐趋于下跌&#xff0c;意味着健康码将逐步完成历史使命&#xff0c;见证着疫情的结束。本文特邀腾讯研发工程师李雄政将从技术架构、可观测体系、运营保障体系等运维体系…