R语言可视化学习笔记之ggrepel包
taoyan:伪码农,R语言爱好者,爱开源。
个人博客: https://ytlogos.github.io/
往期回顾
R语言学习笔记之聚类分析
R语言可视化学习笔记之ggpubr包
R语言可视化学习笔记之添加p-value和显著性标记
R语言可视化学习笔记之相关矩阵可视化包ggcorrplot
library(ggplot2)
#使用数据集mtcars演示
ggplot(mtcars)+ geom_point(aes(wt, mpg), color="red")+geom_text(aes(wt, mpg, label=rownames(mtcars)))+theme_classic(base_size = 16)
可以看到可视化效果不是很好。接下来看看包ggrepel的效果。
geom_text_repel()是基于geom_text()
library(ggrepel)
set.seed(42)
ggplot(mtcars)+ geom_point(aes(wt, mpg), color="red")+
geom_text_repel(aes(wt, mpg, label=rownames(mtcars)))+
theme_classic(base_size = 16)
geom_label_repel()
geom_label_repel()是基于geom_label(),它将标签置于一个小方框中
set.seed(42)
ggplot(mtcars)+ geom_point(aes(wt, mpg), color="grey", size=5)+
geom_label_repel(aes(wt, mpg, fill=factor(cyl),
label=rownames(mtcars)), fontface="bold", color="white",
box.padding=unit(0.35, "lines"), point.padding=unit(0.5, "lines"),
segment.colour = "grey50")+ theme_classic(base_size = 16)
参数
大部分geom_text()的参数都适用于geom_text_repel(),除了以下几个:
hjust
vjust
position
check_overlap
ggrepel包为geom_text_repel()与geom_label_repel()提供了特有的参数设置:
segment.color:连接点与标签的线段的颜色
segment.size:线段的粗细
segment.alpha:线段的透明度
box.padding:文本框周边填充
point.padding:点周围填充
arrow:grid:arrow提供的箭头
force:强制性将重叠文本散开
max.oter:最大迭代次数
nudge_x/y:标签开始位置在坐标轴的移动距离
direction:允许标签的方向,x、y or both
下面举个栗子来详细了解这些参数的图形效果
set.seed(42)
ggplot(mtcars)+ geom_point(aes(wt, mpg, color=factor(cyl)), size=3)+
geom_text_repel(aes(wt, mpg, color=factor(cyl),
label=rownames(mtcars), angle=ifelse(mtcars$cyl==4, 90, 0)),
size=4, family="Times", fontface="bold",
box.padding=unit(0.5, "lines"), point.padding=unit(1.6, "lines"),
segment.color = "#cccccc", segment.size = 0.5,
arrow = arrow(length=unit(0.01, "npc")),force = 1, max.iter = 3e3,
nudge_x = ifelse(mtcars$cyl==6, 2, 0), nudge_y = ifelse(mtcars$cyl==6, 9, 0))+
scale_color_discrete(name="cyl")+
scale_x_continuous(expand = c(0.5, 0))+
scale_y_continuous(expand = c(0.25, 0))+
theme_classic(base_size = 16)
也可以通过设置参数point.padding=NA不对点进行repel
set.seed(42)
mtcars$label <- rownames(mtcars)
ggplot(mtcars, aes(wt, mpg, label=label))+
geom_point(color="red")+ geom_text_repel(point.padding = NA)+
theme_classic(base_size = 16)
通过赋值某些label空字符“”来隐藏。
set.seed(42)
mtcars$label <- rownames(mtcars)
mtcars$label[1:15] <- ""
ggplot(mtcars, aes(wt, mpg))+ geom_point(aes(color=factor(cyl)), size=2)+
geom_text_repel(aes(color=factor(cyl), size=hp, label=label),
point.padding = unit(0.25, "lines"), box.padding = unit(0.25, "lines"),
nudge_y = 0.1)+ theme_classic(base_size = 16)
将标签控制在特定区域
通过设置参数xlim和ylim来限制label的位置
set.seed(42)
data <- mtcars
mu <- mean(data$wt)
left <- data[data$wt <mu, ]
right <- data[data$wt>=mu, ]
ggplot()+ geom_vline(xintercept = mu)+
geom_point(aes(wt, mpg), data=data)+
geom_text_repel(data=left, aes(wt, mpg, label=rownames(left),
color="Left half"), xlim=c(NA, mu))+
geom_text_repel(data=right, aes(wt, mpg, label=rownames(right),
color="Rigth half"), xlim=c(mu, NA))+ theme_classic(base_size = 16)
通过控制参数direction来决定label是左右移动还是上下移动, 默认是both
set.seed(42)
#direction="x" 左右移动
ggplot(mtcars)+
geom_point(aes(wt, mpg), color="red")+
geom_text_repel(aes(wt, mpg, label=rownames(mtcars)), direction="x")+
theme_classic(base_size = 16)+xlim(1, 6)
#direction="x" 上下移动
ggplot(mtcars)+
geom_point(aes(wt, mpg), color="red")+
geom_text_repel(aes(wt, mpg, label=rownames(mtcars)), direction="y")+
theme_classic(base_size = 16)+xlim(1, 6)
线图
set.seed(42)
ggplot(Orange, aes(age, circumference, color=Tree))+
geom_line()+
coord_cartesian(xlim=c(min(Orange$age), max(Orange$age)+90))+
geom_text_repel(data=subset(Orange, age==max(age)),
aes(label=paste("Tree", Tree)),size=6, nudge_x = 45, segment.color = NA)+
theme_classic(base_size = 16)+
theme(legend.position = "none")+
labs(title="Orange Trees", x="Age(days)", y="Circumference(mm)")
SessionInfo
sessionInfo()
## R version 3.4.0 (2017-04-21)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 8.1 x64 (build 9600)
##
## Matrix products: default
##
## locale:
## [1] LC_COLLATE=Chinese (Simplified)_China.936
## [2] LC_CTYPE=Chinese (Simplified)_China.936
## [3] LC_MONETARY=Chinese (Simplified)_China.936
## [4] LC_NUMERIC=C
## [5] LC_TIME=Chinese (Simplified)_China.936
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] ggrepel_0.6.5 ggplot2_2.2.1
##
## loaded via a namespace (and not attached):
## [1] Rcpp_0.12.11 digest_0.6.12 rprojroot_1.2 plyr_1.8.4
## [5] grid_3.4.0 gtable_0.2.0 backports_1.1.0 magrittr_1.5
## [9] evaluate_0.10 scales_0.4.1 rlang_0.1.1 stringi_1.1.5
## [13] lazyeval_0.2.0 rmarkdown_1.5 labeling_0.3 tools_3.4.0
## [17] stringr_1.2.0 munsell_0.4.3 yaml_2.1.14 compiler_3.4.0
## [21] colorspace_1.3-2 htmltools_0.3.6 knitr_1.16 tibble_1.3.3
2017年R语言发展报告(国内)
R语言中文社区历史文章整理(作者篇)
R语言中文社区历史文章整理(类型篇)
公众号后台回复关键字即可学习
回复 R R语言快速入门及数据挖掘
回复 Kaggle案例 Kaggle十大案例精讲(连载中)
回复 文本挖掘 手把手教你做文本挖掘
回复 可视化 R语言可视化在商务场景中的应用
回复 大数据 大数据系列免费视频教程
回复 量化投资 张丹教你如何用R语言量化投资
回复 用户画像 京东大数据,揭秘用户画像
回复 数据挖掘 常用数据挖掘算法原理解释与应用
回复 机器学习 人工智能系列之机器学习与实践
回复 爬虫 R语言爬虫实战案例分享
R语言可视化学习笔记之ggrepel包相关推荐
- R语言可视化学习笔记之ggridges包绘制山峦图
作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源. 严涛老师的绘图教程还有: gganimate |诺奖文章里面的动图绘制教程来了!! ggplot2学习笔记之 ...
- R语言可视化学习笔记之ggridges包
作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源. 严涛老师的绘图教程还有: gganimate |诺奖文章里面的动图绘制教程来了!! ggplot2学习笔记之 ...
- R语言可视化学习笔记之相关矩阵可视化包ggcorrplot
本文转载自"R语言中文社区",己获授权. 作者简介Introduction taoyan:伪码农,R语言爱好者,爱开源. 个人博客: https://ytlogos.github. ...
- R语言可视化散点图、使用ggrepel包的geom_text_repel函数避免数据点之间的标签互相重叠(设置min.segment.length参数为Inf不添加标签线段)
R语言ggplot2可视化:可视化散点图并为散点图中的数据点添加文本标签.使用ggrepel包的geom_text_repel函数避免数据点之间的标签互相重叠(设置min.segment.length ...
- R语言可视化散点图、使用ggrepel包的geom_text_repel函数避免数据点之间的标签互相重叠(设置nudge_y参数和direction参数显示部分数据点的标签在可视化图像的顶部)
R语言ggplot2可视化:可视化散点图并为散点图中的部分数据点添加文本标签.使用ggrepel包的geom_text_repel函数避免数据点之间的标签互相重叠(设置nudge_y参数和direct ...
- R语言小白学习笔记13—基本统计
R语言小白学习笔记13-基本统计 笔记链接 学习笔记13-基本统计 13.1 概括性统计量 13.2 相关系数和协方差 13.3 t-检验 13.3.1 单样本t检验 13.3.2 两样本t检验 13 ...
- R语言小白学习笔记12—概率分布
R语言小白学习笔记12-概率分布 笔记链接 学习笔记12-概率分布 12.1 正态分布 12.2 二项分布 12.3 泊松分布 12.4 其他分布 笔记链接 学习笔记1-R语言基础. 学习笔记2-高级 ...
- R语言数据处理学习记录--使用linkET包完成mental test
R语言数据处理学习记录–使用linkET包完成mental test 注:本文仅作为自己的学习记录以备复习查阅 一 简单介绍一下 这个包依旧是来自于GitHub上,作者给出的介绍:linkET的目标是 ...
- R语言小白学习笔记3—R语言读取数据
R语言小白学习笔记3-R语言读取数据 笔记链接 想说的话 学习笔记3-R语言读取数据 3.1 读取CSV文件 3.1.1 read_delim函数 3.1.2 fread函数 3.2 读取Excel数 ...
- r型聚类典型指标_应用统计学与R语言实现学习笔记(十)——聚类分析
Chapter 10 Cluster Analysis 本篇是第十章,内容是聚类分析.由于之后的几章是典型的分析方法.而且在14章的案例里面可能不会体现,所以内容里会渗透较多的R语言操作.由于简书不支 ...
最新文章
- 外企员工职场跃迁:他们将目光转向杭州 转向云计算
- oracle 查询关键字,Oracle 中的SELECT 关键字(查询、检索)
- Spring2.5的新特性
- SystemInit时钟系统初始化函数剖析
- 暑期训练日志----2018.8.14
- sqlmap地表最强sql注入检测工具学习使用
- 【Java并发编程】之十一:线程间通信中notify通知的遗漏
- insmod module 失败(skyeye + armlinux)
- 真实场景下如何解决类别不平衡问题
- J2ME 模拟短信发送界面开发程序
- 16 岁高中生成功将 Linux 移植到 iPhone,并贴出详细指南
- ActiveReports报表控件V11 SP1版本正式发布!
- html记忆游戏,html5 最强大脑最强记忆游戏
- 为什么 Flutter 是跨平台开发的终极之选
- 移动机器人下位机软件
- Word无法找到宏或宏被禁用如何解决
- 传输层协议TCP(5)
- PIL gray img /灰度图 转OpenCV格式灰度图
- 苹果浏览器显示打不开改网页无法连接服务器,为什么苹果浏览器老是显示safari打不开该网页答案...
- C#.Net干货分享-构建Aocr_ImageHelper读取图片文字做解析
热门文章
- 借着酒劲儿,是真敢说!程序员酒后吐真言
- Kubernetes 弃用 Docker刷爆了网络,我们公司也慌了!
- 你见过哪些操蛋的代码?切勿模仿! 否则后果自负
- Redis牛逼!轻松实现实时订阅推送
- 工作5年,别人成了架构师,你却还在基层打滚
- 小米IPO前员工写文爆料内部真实见闻—期权 部分裁员 离职大公开!
- 抵御风险——漫谈运维核心价值和方法论
- 你整明白了吗?Linux Shell 中各种括号的作用 ()、(())、[]、[[]]、{}
- jmeter constant timer 如何添加_性能测试-Jmeter——软件测试圈-软件测试文章
- 四面快手归来,分享Java真题及面经:策略模式+红黑树+Java锁+Redis+Kafka等分布式