ggplot2 |legend参数设置,图形精雕细琢
本文首发于微信公众号“生信补给站”,https://mp.weixin.qq.com/s/A5nqo6qnlt_5kF3_GIrjIA
学习了ggplot2|详解八大基本绘图要素后,就可以根据自己的需要绘制图形。前面也给出了一些ggplot2绘制生信分析基本图形的例子
pheatmap|暴雨暂歇,“热图”来袭!!!
ggplot2-plotly|让你的火山图“活”过来
ggplot2|扩展包从0开始绘制雷达图
ggplot2| 绘制KEGG气泡图
ggplot2|绘制GO富集柱形图
ggplot2|从0开始绘制PCA图
ggplot2|ggpubr进行“paper”组图合并
本文将介绍一些对legend的细节操作来完成图形的“精雕细琢”。
载入R包和数据
mtcars数据集作为示例数据
library(ggplot2)#查看数据集
head(mtcars)
# 将cyl gear变量转为因子变量
mtcars$cyl<-as.factor(mtcars$cyl)
mtcars$gear <- as.factor(mtcars$gear)
绘制基本图形
#gear为横坐标,对mpg做箱线图,gear填充颜色
p <- ggplot(mtcars, aes(x=gear, y=mpg, fill=gear)) + geom_boxplot()
p
设置 legend position
使用 theme() 参数设置legend位置
# 可选参数为“left”,“top”, “right”, “bottom”.
p + theme(legend.position="bottom")
# 数值向量 c(x,y) 调控位置
p + theme(legend.position = c(0.8, 0.2))
aaarticlea/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==" alt="img" />
更改legend 的title , font styles
# legend title
p + theme(legend.title = element_text(colour="blue", size=10, face="bold"))
# legend labels
p + theme(legend.text = element_text(colour="blue", size=10, face="bold"))
aaarticlea/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==" alt="img" />
设置 legend 背景色
#fill设置legend box背景色,colour设置边框颜色
p + theme(legend.background = element_rect(fill="lightblue", size=0.5, linetype="solid",
colour ="darkblue"))
设置legend items顺序
scale_x_discrete自定义设置顺序
p + scale_x_discrete(limits=c("3", "5", "4"))
去除legend
# 去除legend title
p + theme(legend.title = element_blank())
# 去除整个legend
p + theme(legend.position='none')
guides 设置specific aesthetic
使用guides()参数来设置或移除特定的美学映射(fill, color, size, shape等).
因子变量cyl和gear映射为点图的颜色和形状,qsec决定点的大小。
p <- ggplot(data = mtcars, aes(x=mpg, y=wt, color=cyl, size=qsec, shape=gear))+ geom_point()
# 不设定specific aesthetic时候
p
设置多个legend的位置
# 更改 legend position
p +theme(legend.position="bottom")
# Horizontal legend box
p +theme(legend.position="bottom", legend.box = "")
设置multiple guides顺序
使用 guide_legend() 参数:
p+guides(color = guide_legend(order=1), size = guide_legend(order=2), shape = guide_legend(order=3))
去除particular aesthetic
通过设置FALSE,可不展示对应的legend
p+guides(color = FALSE)
也可以使用scale_xx.函数去掉特定的legend
# Remove legend for the point shape
p+scale_shape(guide=FALSE)
# Remove legend for size
p +scale_size(guide=FALSE)
# Remove legend for color
p + scale_color_manual(values=c('#999999','#E69F00','#56B4E9'), guide=FALSE)
通过以上参数的设置即完成对所绘制图形的legend的细节修改,得到自己所需要的图形。
ggplot2 |legend参数设置,图形精雕细琢的更多相关文章
- ggplot2|theme主题设置,详解绘图优化-“精雕细琢”-
本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/hMjPj18R1cKBt78w8UfhIw 学习了ggplot2的基本绘图元素ggplot2|详解八大基本绘图要 ...
- ggplot2学习笔记之图形排列
转载:https://www.jianshu.com/p/d46cf6934a2f R语言基本绘图函数中可以利用par()以及layout()来进行图形排列,但是这两个函数对于ggplot图则不太适用 ...
- ggplot2 scale相关设置-坐标转换
ggplot2 scale相关设置-坐标转换 在R中坐标轴转换有多种形式,包括对数转换,平方根转换以及坐标刻度前后进行调换 用到的函数分别有: scale_x_log10(...) scale_y_l ...
- ggplot2 scale相关设置
ggplot2 scale相关设置 标度设置:主要用于在ggplot画图后的各个图层进行调整设置. 1.相关属性scale设置 包括scale_size().scale_alpha().scal ...
- java heap space解决方法和JVM参数设置
在JVM中如果98%的时间是用于GC(Garbage Collection)且可用的 Heap size 不足2%的时候将抛出异常信息,java.lang.OutOfMemoryError: Java ...
- 《ggplot2:数据分析与图形艺术》,读书笔记
第1章 简介 1.3图形的语法 第2章从qplot开始入门 1.基本用法:qplot(x,y,data) x是自变量横轴,y是因变量纵轴,data是数据框 2.图形参数 colour=I(&quo ...
- jvm参数设置和性能调优
1.Java虚拟机运行时的数据区 2.常用的内存区域调节参数 -Xms:初始堆大小,默认为物理内存的1/64(<1GB):默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40% ...
- matplotlib 中的一些参数设置
首先:在pycharm 中要使图显示出来,最后一定要加上 plt.show(),如: plt.bar(x, y) plt.show() 下面就是我使用 matplotlib 遇到的一些常用参数设置: ...
- matlab中set设置图形属性
来源:https://ww2.mathworks.cn/help/matlab/ref/set.html?searchHighlight=set&s_tid=doc_srchtitle set ...
随机推荐
- android_layout_linearlayout(一)
这几天一直在研究线性布局这块,记录下一些研究心得,作为参考之用. 一.金刚钻:(线性布局,英文名 linearLayout) 布局xml文件中统大者是一个线性布局,它的长宽都已经fill_parent ...
- Centos6.5安装Redis3.2.8
1 - Redis安装 redis安装 在网上一搜一大把,但是还是在这里想要能够统一吧,所以这个安装步骤是在Centos6.5 Minimal 上安装redis3.4.8,本次安装是在root 用户下 ...
- NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load xxxx错误解决方法
在开发项目的过程中,和后端对接,我们使用是一个成熟的集成很全面的架构JHipster.后端为java spring-boot 前端ts+react,需求是有一个需要在页面里嵌套iframe的需求.然后 ...
- Single Thread Execution设计模式
public class Test { public static void main(String[] args){ // FlightSercurityTest.test(); // EatNoo ...
- 【深搜(DFS)-例题-踏青】-C++
描述 小白和他的朋友周末相约去召唤师峡谷踏青.他们发现召唤师峡谷的地图是由一块一块格子组成的,有的格子上是草丛,有的是空地.草丛通过上下左右 4 个方向扩展其他草丛形成一片草地,任何一片草地中的格子都 ...
- Loadrunner基本概念解析<一>
学习性能测试前需要掌握的基本概念,以下做一个记录,本文会持续更新,我期望的是,用通俗简洁的语言来进行更好的理解. [基本概念如下:] ---并发用户数: 1️⃣错误的理解: 使用系统的全部用户数 ...
- 洛谷P3275 [SCOI2011]糖果 题解
题目链接: https://www.luogu.org/problemnew/show/P3275 分析: 本题就是一个裸的差分约束. 核心: x=1x=1x=1时,a=b,a−>b,b−> ...
- 比赛:小奔的方案 solution
题目 题目背景 有一个著名的题目: 五个海盗抢到了100个金币,每一颗都一样的大小和价值连城. 他们决定这么分: 1.抽签决定自己的号码 ------ [1.2.3.4.5] 2.首先,由1号提出分配 ...
- Error:too many padding sections on bottom border.
异常信息: Error:too many padding sections on bottom border. 原因: 使用andoridstudio制作.9图错误. 解决 只怪我把线画多了. 修改后 ...
- 记一次愚蠢的经历--String不可变性
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 记录一次在写代码时愚蠢的操作,本文涉及到的知识点:S ...