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/vjustposition_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位置调整函数的更多相关文章

  1. R语言与医学统计图形【1】par函数

    张铁军,陈兴栋等 著 R语言基础绘图系统 基础绘图包之高级绘图函数--par函数 基础绘图包并非指单独某个包,而是由几个R包联合起来的一个联盟,比如graphics.grDevices等. 掌握par ...

  2. R语言与医学统计图形【8】颜色的选取

    R语言基础绘图系统 基础绘图包之低级绘图函数--内置颜色. 1.内置颜色选取 功能657种内置颜色.colors() 调色板函数:palette(), rgb(), rainbow(). palett ...

  3. R语言与医学统计图形【6】低级绘图函数

    R语言基础绘图系统 基础绘图包之低级绘图函数--定义坐标轴.图例.文本 低级绘图函数:本身不具备图形绘制能力,只是在已有图形基础上添加元素. 函数 功能 arrows 添加箭头 axis 坐标轴 bo ...

  4. R语言与医学统计图形【5】饼图、条件图

    R语言基础绘图系统 基础图形--饼图.克利夫兰点图.条件图 6.饼图 pie(rep(1,26),col=rainbow(26), labels = LETTERS[1:26], #标签 radius ...

  5. R语言与医学统计图形【4】直方图、金字塔图

    R语言基础绘图系统 基础图形--直方图.金字塔图 3.直方图 参数设置及比较. op <- par(mfrow=c(2,3)) data <- rnorm(100,10,5) hist(d ...

  6. R语言与医学统计图形【3】条形图、误差图

    R语言基础绘图系统 基础图形--条形图.误差图 3.条形图 barplot接收的数据是矩阵而非数据框. data <- sample(c(50:80),5) barplot(data,col=h ...

  7. R语言与医学统计图形【2】散点图、盒形图

    R语言基础绘图系统 基础图形--散点图.盒形图 plot是一个泛型函数(generic method),对于不同的数据绘制不同的图形. par函数的大部分参数在plot中通用. 1.散点图 plot绘 ...

  8. R语言与医学统计图形-【28】ggplot2扩展包ggrepel、ggsci、gganimate、ggpubr

    ggplot2绘图系统--扩展包ggrepel.ggsci.gganimate.ggpubr等 部分扩展包可在CRAN直接下载,有些需借助devtools包从Github下载. 1. ggrepel包 ...

  9. R语言与医学统计图形【7】低级绘图函数

    R语言基础绘图系统 基础绘图包之低级绘图函数--气泡图.一页多图.背景网格.添加线条和散点.数学表达式 4.气泡图 symbols是高级绘图函数,可在图上添加标记,标记的形状包括:circles,sq ...

随机推荐

  1. Linux C语言链表详细分析

    链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用.链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节 ...

  2. 如何清理history

    工作中,需要清理history 清理当前会话历史命令    history -c 清理当前用户所有历史命令     echo > .bash_history     #在用户主目录执行此操作

  3. Spring的Ioc与DI

    一.前言 Spring框架的核心基于控制反转的原理. IoC是一种将组件依赖关系的创建和管理外部化的技术. 考虑一个示例,其中Foo类依赖于Bar类的实例来执行某种处理. 传统上,Foo使用new运算 ...

  4. Java设计模式——模板设计模式

    模板设计模式 1.模板模式简介 模板模式(Template ):模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑 ...

  5. lollipop_softap启动wifi ap失败

    最近一直在调试lollipop,翻译成中文好像是棒棒糖的意思,就是个wifi控制管理工具,比如设置DLNA或者WFD模式等,其原理是通过本地通信工具sockets控制其他接口来启动wpa_suplic ...

  6. 干货分享之spring框架源码分析02-(对象创建or生命周期)

    记录并分享一下本人学习spring源码的过程,有什么问题或者补充会持续更新.欢迎大家指正! 环境: spring5.X + idea 之前分析了Spring读取xml文件的所有信息封装成beanDef ...

  7. #web开发# 知道cookie hostonly属性的请举手。

    Cookie常见姿势.疑难梳理 目前w3c定义浏览器存放每个cookie需要包含以下字段: cookie属性 基本描述 举例 备注 name=value cookie键值对 id=a3fWa expi ...

  8. java中使用Process执行linux命令

    代码如下 BufferedReader reader = null; String cmd = "netstat -anp|grep :8080";//命令中有管道符 | 需要如下 ...

  9. 由于xftp打开target目录,导致maven编译的时候target目录无法访问,打包失败

    由于xftp打开target目录,导致maven编译的时候target目录无法访问,打包失败: 在xftp里关闭target目录就可以了...无时不在的坑

  10. python3.7 pip

    Is pip the same for 3.4+ No, it's not. A single pip installation serves a single Python distribution ...