R语言与医学统计图形-【24】ggplot位置调整函数
ggplot2绘图系统——位置调整函数
可以参数position来调整,也有专门的函数position_*系列来设置。
位置函数汇总:

1.排列
并排排列
mean <- runif(12,1,3)
lower <- mean-runif(12,0,2)
upper <- mean+runif(12,0,2)
mydata <- data.frame(group=rep(LETTERS[1:4],each=3),
levels=rep(c('low','middle','high'),4),
mean=mean,lower=lower,upper=upper)
dodge <- position_dodge(width = 0.5)
ggplot(mydata,aes(levels,ymin=lower,ymax=upper,color=as.factor(group)))+
geom_errorbar(position = dodge,width=0.2,size=1.2)+
geom_point(aes(levels,mean),position = dodge,size=4)

堆栈排列
death <- c('胃癌','肺癌','食管癌','肝癌','脑癌')
percent <- c(0.21,0.28,0.09,0.32,0.1)
pro=scales::percent(percent)
cancer <- data.frame(death=death,per=percent,
disease='cancer',prop=pro)
ggplot(cancer,aes(x=disease,y=per,fill=death))+
geom_bar(stat = 'identity')+
geom_text(aes(label=prop),
position = position_stack(vjust = 0.5),size=6.5)

2.扰动点
a <- ggplot(mpg,aes(class,hwy))+geom_boxplot()+geom_point()
b <- ggplot(mpg,aes(class,hwy))+geom_boxplot()+
geom_jitter()
c <- ggplot(mpg,aes(class,hwy))+geom_boxplot()+
geom_point(position = 'jitter')
grid.arrange(a,b,c,ncol=3)

上图b和c的扰动方式稍有不同。
3.水平和垂直的调整
包括hjust/vjust,position_nudge等,注意nudge(推动)不能作为postion参数的选项,即不能类似geom_point(position='nudge')
df <- data.frame(x=c(1,3,2,5),y=c('a','b','c','d'))
#在点的原位置添加标签
a <- ggplot(df,aes(x,y))+geom_point()+geom_text(aes(label=y))
#标签向下移动一个单位
b <- ggplot(df,aes(x,y))+geom_point()+geom_text(aes(label=y),
position=position_nudge(y=-0.1))
grid.arrange(a,b,ncol=2)

4.有规则扰动
同样只能作为函数position_jitterdodge使用。
同一组内,红色点只出现在红色盒形上,不会出现在其他位置。
dsub <- diamonds[sample(nrow(diamonds),1000),]
#无规则
a <- ggplot(dsub,aes(x=cut,y=carat,fill=clarity))+
geom_boxplot(outlier.size = 0)+
geom_point(pch=21,position = position_jitter())
#有规则
b <- ggplot(dsub,aes(x=cut,y=carat,fill=clarity))+
geom_boxplot(outlier.size = 0)+
geom_point(pch=21,position = position_jitterdodge())
grid.arrange(a,b,ncol=2)

R语言与医学统计图形-【24】ggplot位置调整函数的更多相关文章
- R语言与医学统计图形【1】par函数
张铁军,陈兴栋等 著 R语言基础绘图系统 基础绘图包之高级绘图函数--par函数 基础绘图包并非指单独某个包,而是由几个R包联合起来的一个联盟,比如graphics.grDevices等. 掌握par ...
- R语言与医学统计图形【8】颜色的选取
R语言基础绘图系统 基础绘图包之低级绘图函数--内置颜色. 1.内置颜色选取 功能657种内置颜色.colors() 调色板函数:palette(), rgb(), rainbow(). palett ...
- R语言与医学统计图形【6】低级绘图函数
R语言基础绘图系统 基础绘图包之低级绘图函数--定义坐标轴.图例.文本 低级绘图函数:本身不具备图形绘制能力,只是在已有图形基础上添加元素. 函数 功能 arrows 添加箭头 axis 坐标轴 bo ...
- R语言与医学统计图形【5】饼图、条件图
R语言基础绘图系统 基础图形--饼图.克利夫兰点图.条件图 6.饼图 pie(rep(1,26),col=rainbow(26), labels = LETTERS[1:26], #标签 radius ...
- R语言与医学统计图形【4】直方图、金字塔图
R语言基础绘图系统 基础图形--直方图.金字塔图 3.直方图 参数设置及比较. op <- par(mfrow=c(2,3)) data <- rnorm(100,10,5) hist(d ...
- R语言与医学统计图形【3】条形图、误差图
R语言基础绘图系统 基础图形--条形图.误差图 3.条形图 barplot接收的数据是矩阵而非数据框. data <- sample(c(50:80),5) barplot(data,col=h ...
- R语言与医学统计图形【2】散点图、盒形图
R语言基础绘图系统 基础图形--散点图.盒形图 plot是一个泛型函数(generic method),对于不同的数据绘制不同的图形. par函数的大部分参数在plot中通用. 1.散点图 plot绘 ...
- R语言与医学统计图形-【28】ggplot2扩展包ggrepel、ggsci、gganimate、ggpubr
ggplot2绘图系统--扩展包ggrepel.ggsci.gganimate.ggpubr等 部分扩展包可在CRAN直接下载,有些需借助devtools包从Github下载. 1. ggrepel包 ...
- R语言与医学统计图形【7】低级绘图函数
R语言基础绘图系统 基础绘图包之低级绘图函数--气泡图.一页多图.背景网格.添加线条和散点.数学表达式 4.气泡图 symbols是高级绘图函数,可在图上添加标记,标记的形状包括:circles,sq ...
随机推荐
- Beta阶段第十次会议
Beta阶段第十次会议 时间:2020.5.26 完成工作 姓名 完成工作 难度 完成度 ltx 1.修正小程序新闻bug2.修正小程序认证bug 中 80% xyq 1.上传信息编辑部分代码到服务器 ...
- OO第四单元作业总结及课程总结
一.本单元作业架构设计 1.第一次作业 本单元首次接触到UML以及相关概念,在面对第一次作业时首先花了很大功夫去阅读官方接口中各种UmlElement的代码,才理解了输入的模型元素中各属性的含义.总的 ...
- SpringCloud 2020.0.4 系列之服务降级
1. 概述 老话说的好:做人要正直,做事要正派,胸怀坦荡.光明磊落,才会赢得他人的信赖与尊敬. 言归正传,之前聊了服务间通信的组件 Feign,今天我们来聊聊服务降级. 服务降级简单的理解就是给一个备 ...
- spring cache整合redis
在项目中,我们经常需要将一些常用的数据使用缓存起来,避免频繁的查询数据库造成效率低下.spring 为我们提供了一套基于注解的缓存实现,方便我们实际的开发.我们可以扩展spring的cache接口以达 ...
- Noip模拟32(再度翻车) 2021.8.7
T1 Smooth 很水的一道题...可是最傻 的是考场上居然没有想到用优先队列优化... 上来开题看到这个,最一开始想,这题能用模拟短除法,再一想太慢了,就想着优化 偏偏想到线性筛然后试别的素 ...
- windows下wchar_t的问题
使用vs新建工程或者编译工程的时候默认在编译设置里面讲wchar_t设置为内置类型,如下图: 但是在编译相互依赖的工程的时候,如果有的工程不将wchar_t设置为内置类型的时候,将会出现链接错误,需要 ...
- Linux基础是零基础必须要过的关,你懂了多少
#LINUX基础学习 ##命令行下的基础知识 Linux区分英文的大小写. date :查看时间 cal:查看日历 [Tab] 热键 :可以自动补全命令名和文件名 [Ctrl]+C 热键 :可以中断正 ...
- RMQ、ST表
ST表 \(\text{ST}\) 表是用于解决可重复贡献问题的数据结构. 可重复贡献问题:区间按位和.区间按位或.区间 \(\gcd\) .区间最大.区间最小等满足结合律且可重复统计的问题. 模板预 ...
- poj 2226 Muddy Fields(最小点覆盖)
题意: M*N的矩阵,每个格不是*就是#. *代表水坑,#代表草地. 农民要每次可以用一块宽为1,长不限的木板去铺这个矩阵.要求这块木板不能覆盖草地.木板可以重复覆盖(即一块木板与另一块木板有 ...
- 什么是操作系统fork()进程
1.fork()是创建进程函数. 2.c程序一开始,就会产生 一个进程,当这个进程执行到fork()的时候,会创建一个子进程. 3.此时父进程和子进程是共存的,它们俩会一起向下执行c程序的代码. 4. ...