获取更多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")

还有一种比较复杂的情况,如果多个一个变量映射给多个图形参数,或者有多个图例,怎么修改呢?像下面这个例子,sexshapecolor都有关。

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图例修改详细介绍相关推荐

  1. 怎么批量修改html文件后缀,如何批量修改文件后缀名 超详细介绍

    如何批量修改文件后缀名 超详细介绍.比如我们保持图片的时候,不是我们要的jpg格式的,需要一个一个去修改她的后缀名.现在小编就教大家快速的,批量的,安全的修好多数的文件后缀名.希望能帮大家平时的工作. ...

  2. R语言ggplot2图例标签、标题、顺序修改和删除

    ggplot2修改图例 1. 修改图例标注/标签 2. 修改图例标题名称 3. 隐藏/删除图例标题 4.图例位置 5. 删除图例 引用 看完如果对你有帮助,感谢点赞支持! 如果你是电脑端,看到右下角的 ...

  3. python绘图和可视化_Python 绘图和可视化详细介绍

    Python之绘图和可视化 1. 启用matplotlib 最常用的Pylab模式的IPython(IPython --pylab) 2. matplotlib的图像都位于Figure对象中. 可以使 ...

  4. RISC-V详细介绍

    文章目录 RISC-V指令集介绍 什么是RISC-V RISC-V诞生的背景 ISA霸权 摩尔定律的穷途末路 穷困潦倒的学者 不断增长的指令数量 RISC-V架构设计思想 如何设计一个好的ISA RI ...

  5. Tempdb数据库详细介绍

    Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...

  6. 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 ...

  7. Iptables防火墙详细介绍与实战增强服务器安全

    Iptables防火墙详细介绍与实战增强服务器安全 一:Iptables的概述及应用 iptables概述: netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfi ...

  8. SQL Server 2005实现负载均衡的详细介绍

    SQL Server 2005实现负载均衡的详细介绍 SQL Server 2005仍然不直接地支持负载均衡--但是它为以前SQL Server版本中可用的所有负载均衡方法提供了令人激动的改善和支持. ...

  9. 微信小程序 app.json 详细介绍

    微信小程序 app.json 详细介绍 {// 写各个页面的路径 (新增页面或者减少页面都要对其进行修改)"pages": ["pages/index/index&quo ...

最新文章

  1. PCL:英文参考链接
  2. python关系运算符中表示不等于的关系运算符_Python学习之------运算符表达式(关系运算符,逻辑运算符,三元表达式,成员关系)...
  3. 第二章:二分和前缀和 【完结】
  4. 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
  5. 2017/Province_Java_B/2、纸牌三角形
  6. 分隔链表Python解法
  7. easypoi导出word表格_Java导出word文档(POIamp;Spire.Doc)
  8. Git第一次提交代码的操作
  9. 数据科学之 如何找到指标的最 佳分裂点的几个想法
  10. 金田新材冲刺上交所:拟募资15.6亿 方文彬家族控制62%股权
  11. 带你刷笔试关的小怪|详解指针习题和面试题【C语言/指针/进阶】
  12. MySQL主从——GTID主从
  13. (21) 出行需求预测新视角---基于图卷积神经网络GCN的出租车OD需求预测
  14. 非监督多类域适应:理论,算法和实践
  15. DSG SuperSync大型数据库高性能复制平台产品介绍
  16. Firebase埋点
  17. 折叠共源共栅放大器(一)项目报告/实验/论文/比赛
  18. 最近发现了一款图片批量处理工具
  19. 10月18号 蒟蒻的流水账
  20. CFS(完全公平调度)

热门文章

  1. excel 拼接单引号
  2. 新的一年,莫把青山当柴烧
  3. MX视频播放器解码包(MX Player) v1.7.27 全机型解码器
  4. Android视频录制--MediaProjection
  5. java数据库损坏_数据库表损坏的修复
  6. 哪个手机记事本软件可以在安卓手机通用?
  7. 美好的童年伙伴:360 智能儿童手表 P1体验评测
  8. ViT pre-trained models 预训练模型下载
  9. oracle分区表死锁,ORACLE RAC 出现的表死锁问题
  10. 长安“战疫”网络安全赛-wp