ggplot2图例修改详细介绍
获取更多R语言知识,请关注公众号:医学和生信笔记
医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。主要分享R语言做医学统计学、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。
文章目录
- 移除图例
- 改变图例位置
- 修改图例的边框和背景
- 改变图例顺序
- 反转图例顺序
- 修改图例标题
- 修改图例标题外观
- 移除图例标题
- 修改图例标签
- 修改图例标签外观
大家经常对 ggplot2
中的图例不满意,想要各种修改,今天就介绍下图例的各种修改细节,基本上常用的操作都涉及到了!
library(ggplot2)
library(gcookbook)
移除图例
提供3种方法可以在ggplot2
中移除图例。
# 基本图形
pg_plot <- ggplot(PlantGrowth, aes(x = group, y = weight, fill = group)) +geom_boxplot()pg_plot
# 首先可以使用guides()函数移除图例
pg_plot +guides(fill = "none")
然后可以在scale_**
函数中移除,这里是fill,你要根据自己的情况换成shape、color等。
pg_plot+scale_fill_discrete(guide = "none")
第3种方法是在theme中移除。
pg_plot+theme(legend.position = "none")
改变图例位置
也是在theme
中更改,
pg_plot <- ggplot(PlantGrowth, aes(x = group, y = weight, fill = group)) +geom_boxplot() +scale_fill_brewer(palette = "Pastel2")pg_plot +theme(legend.position = "top") # 放在顶部
legend.position的参数可以是left、right、top、bottom,还可以是坐标。
pg_plot+theme(legend.position = c(0.8,0.3))
在ggplot2
中,左下角的坐标是c(0,0),右上角的坐标是c(1,1),你可以自己设置想要放置的位置。需要注意的是,你设置的这个坐标是图例中心点的坐标,可以通过legend.justification
设置图例的哪个位置放在你的坐标上。
# 图例右下角,放在画布右下角
pg_plot +theme(legend.position = c(1, 0), legend.justification = c(1, 0))
p <- ggplot(heightweight, aes(x=ageYear, y=heightIn, shape=sex, colour=sex))+geom_point()
p
两个图例更改为水平排列:
p + scale_shape_discrete(label = c("female","male")) +theme(legend.direction = "horizontal")
修改图例的边框和背景
pg_plot+theme(legend.position = c(0.85,0.2))+theme(legend.background = element_rect(fill = "orange",color = "black"))
中间还有一部分是白色,需要另外一个参数修改:
pg_plot+theme(legend.position = c(0.85,0.2))+theme(legend.background = element_rect(fill = "orange",color = "black"),legend.key = element_rect(fill = "orange"))
改变图例顺序
pg_plot <- ggplot(PlantGrowth, aes(x = group, y = weight, fill = group)) +geom_boxplot()pg_plot
# limits
pg_plot +scale_fill_discrete(limits = c("trt1", "trt2", "ctrl"))
也可以在画图之前,通过因子化的方法把数据先排好序再画图哦。
反转图例顺序
2种方法。
pg_plot+scale_fill_discrete(guide = guide_legend(reverse = T))
pg_plot+guides(fill = guide_legend(reverse = T))
修改图例标题
2种方法。
pg_plot <- ggplot(PlantGrowth, aes(x = group, y = weight, fill = group)) +geom_boxplot()pg_plot
labs
里面修改
pg_plot + labs(fill = "Condition")
在scale_*
函数里面修改。
pg_plot+scale_fill_discrete(name = "hahah")
还有一种比较复杂的情况,如果多个一个变量映射给多个图形参数,或者有多个图例,怎么修改呢?像下面这个例子,sex
和shape、color都有关。
p <- ggplot(heightweight, aes(x=ageYear, y=heightIn, shape=sex, colour=sex))+geom_point()
p
可以在scale_*
函数中修改:
p + scale_shape_discrete(name = "shape")+scale_color_discrete(name = "colooorrr")
也可以在legend中修改:
p + labs(shape = "shapppeee",color = "colooorrr")
还可以在guides函数中修改:
p + guides(shape = guide_legend(title = "this is\nshape"),color = guide_legend(title = "cooolor"))
修改图例标题外观
pg_plot <- ggplot(PlantGrowth, aes(x = group, y = weight, fill = group)) +geom_boxplot()
pg_plot
可以在theme中修改:
pg_plot + theme(legend.title = element_text(face = "italic",family = "Times",colour = "red",size = 18)
)
也可以在guides中修改:
pg_plot +guides(fill = guide_legend(title.theme = element_text(face = "italic",family = "Times",colour = "red",size = 14)))
移除图例标题
pg_plot
可以在theme中修改,也可以在scale_xxx函数中修改,也可以在guides函数中修改。
pg_plot+theme(legend.title = element_blank())
pg_plot+scale_fill_discrete(name = NULL)
pg_plot+scale_fill_hue(guide = guide_legend(title = NULL))
pg_plot+guides(fill = guide_legend(title = NULL))
修改图例标签
pg_plot
pg_plot+scale_fill_discrete(labels = c("label1","label2","label3"))
修改图例标签外观
在theme中修改:
pg_plot +theme(legend.text = element_text(colour = "red",face = "italic",size = 22))
获取更多R语言知识,请关注公众号:医学和生信笔记
医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。主要分享R语言做医学统计学、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。
ggplot2图例修改详细介绍相关推荐
- 怎么批量修改html文件后缀,如何批量修改文件后缀名 超详细介绍
如何批量修改文件后缀名 超详细介绍.比如我们保持图片的时候,不是我们要的jpg格式的,需要一个一个去修改她的后缀名.现在小编就教大家快速的,批量的,安全的修好多数的文件后缀名.希望能帮大家平时的工作. ...
- R语言ggplot2图例标签、标题、顺序修改和删除
ggplot2修改图例 1. 修改图例标注/标签 2. 修改图例标题名称 3. 隐藏/删除图例标题 4.图例位置 5. 删除图例 引用 看完如果对你有帮助,感谢点赞支持! 如果你是电脑端,看到右下角的 ...
- python绘图和可视化_Python 绘图和可视化详细介绍
Python之绘图和可视化 1. 启用matplotlib 最常用的Pylab模式的IPython(IPython --pylab) 2. matplotlib的图像都位于Figure对象中. 可以使 ...
- RISC-V详细介绍
文章目录 RISC-V指令集介绍 什么是RISC-V RISC-V诞生的背景 ISA霸权 摩尔定律的穷途末路 穷困潦倒的学者 不断增长的指令数量 RISC-V架构设计思想 如何设计一个好的ISA RI ...
- Tempdb数据库详细介绍
Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...
- C++11 unordered_map详细介绍
整理的算法模板合集: ACM模板 目录: 1.介绍 1.1 特性 2. 模版 2.1 迭代器 3. 功能函数 3.1 构造函数 3.2 容量操作 3.2.1 size 3.2.2 empty 3.3 ...
- Iptables防火墙详细介绍与实战增强服务器安全
Iptables防火墙详细介绍与实战增强服务器安全 一:Iptables的概述及应用 iptables概述: netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfi ...
- SQL Server 2005实现负载均衡的详细介绍
SQL Server 2005实现负载均衡的详细介绍 SQL Server 2005仍然不直接地支持负载均衡--但是它为以前SQL Server版本中可用的所有负载均衡方法提供了令人激动的改善和支持. ...
- 微信小程序 app.json 详细介绍
微信小程序 app.json 详细介绍 {// 写各个页面的路径 (新增页面或者减少页面都要对其进行修改)"pages": ["pages/index/index&quo ...
最新文章
- PCL:英文参考链接
- python关系运算符中表示不等于的关系运算符_Python学习之------运算符表达式(关系运算符,逻辑运算符,三元表达式,成员关系)...
- 第二章:二分和前缀和 【完结】
- 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
- 2017/Province_Java_B/2、纸牌三角形
- 分隔链表Python解法
- easypoi导出word表格_Java导出word文档(POIamp;Spire.Doc)
- Git第一次提交代码的操作
- 数据科学之 如何找到指标的最 佳分裂点的几个想法
- 金田新材冲刺上交所:拟募资15.6亿 方文彬家族控制62%股权
- 带你刷笔试关的小怪|详解指针习题和面试题【C语言/指针/进阶】
- MySQL主从——GTID主从
- (21) 出行需求预测新视角---基于图卷积神经网络GCN的出租车OD需求预测
- 非监督多类域适应:理论,算法和实践
- DSG SuperSync大型数据库高性能复制平台产品介绍
- Firebase埋点
- 折叠共源共栅放大器(一)项目报告/实验/论文/比赛
- 最近发现了一款图片批量处理工具
- 10月18号 蒟蒻的流水账
- CFS(完全公平调度)