R语言与医学统计图形-【28】ggplot2扩展包ggrepel、ggsci、gganimate、ggpubr
ggplot2绘图系统——扩展包ggrepel、ggsci、gganimate、ggpubr等
部分扩展包可在CRAN直接下载,有些需借助devtools包从Github下载。
1. ggrepel包
用来在图上添加文字和标签,相比geom_text和geom_label函数,能将重叠的标签分开,并添加指示短横线。
library(ggrepel)
ggplot(mtcars,aes(wt,mpg))+geom_point(color='red')+
geom_text_repel(aes(label=rownames(mtcars)),
segment.color = 'blue')+
theme_classic(base_size = 16)

2. ggsci包
肖楠作品,针对科研人员的包,满足不同杂志风格的配色,包括十几种配色方案。
基本配色函数:

Lancet配色示例。
library(ggsci)
p1 <- ggplot(subset(diamonds,carat>=2.2),aes(x=table,y=price,color=cut))+
geom_point(alpha=0.7)+
geom_smooth(method = 'loess',alpha=0.05,size=1,span=1)+
theme_bw()
a <- p1+scale_color_lancet()
p2 <- ggplot(subset(diamonds,carat>2.2&depth>55&depth<70),
aes(x=depth,fill=cut))+
geom_histogram(color='black',binwidth = 1,position = 'dodge')+
theme_bw()
b <- p2+scale_fill_lancet()
grid.arrange(a,b,ncol=2)

JCO配色风格示例。
c <- p1+scale_color_jco()
d <- p2+scale_fill_jco()
grid.arrange(c,d,ncol=2)

3. gganimate包
绘制动态图(将静态的png、jpeg图片转化成动态的gif文件)。
使用gganimate前,需在本机上先安装ImageMagick软件(专用于图片编辑、合成、转换及其他处理的软件)。
library(gganimate)
date <- as.character(economics$date)
economics$year <- substr(date,1,4) #提取年份
p <- ggplot(economics,aes(date,uempmed,size=unempoly,
frame=year))+#必须参数,展示每一帧名称
geom_point()
gganimate(p)
aq <- airquality
aq$date <- as.Date(paste(1973,aq$Month,aq$Day,sep = '-'))
p2 <- ggplot(aq,aes(date,Temp,frame=Month,
cumulative=TRUE))+ #叠加显示,而非单独显示每一帧
geom_line()
gganimate(p2,title_frame=FALSE)
4. ggpubr包
快速生成论文发表级的统计图形。
两两比较盒形图
library(ggpubr)
data('ToothGrowth')
df <- ToothGrowth
p <- ggboxplot(df,
x='dose',
y='len',
color = 'dose',#颜色映射变量
palette = c('#00AFBB','#E7B800','#FC4E07'), #盒形颜色取值
add = 'jitter', #点扰动
shape='dose' #扰动点形状
)
p
#代码风格更偏向于基础包,注意传入的变量都是字符串形式
#######统计学差异绘图
#定义哪些组两两比较
my_comparisons <- list(c('0.5','1'),c('1','2'),c('0.5','2'))
#添加组间比较p值
b <- p+stat_compare_means(comparisons = my_comparisons)+
stat_compare_means(label.y = 50) #p值位置
grid.arrange(p,b,ncol=2)

小提琴图
ggviolin(df,
x='dose',
y='len',
fill = 'dose',
palette = c('#00AFBB','#E7B800','#FC4E07'),
add = 'boxplot', #添加盒形图
add.params = list(fill='white'))+
#定义后添加图形的属性,这里定义盒形图填充色
stat_compare_means(comparisons = my_comparisons,
label = 'p.signif') +#以显著程度展示,而非p
stat_compare_means(label.y=50) #总体比较p值位置

条形图和滑珠图
滑珠图是条形图一种变形。
示例比较。
mtcars$name <- rownames(mtcars)
mtcars$cyl <- as.factor(mtcars$cyl)
#条形图
a <- ggbarplot(mtcars,x='name',y='mpg',
fill = 'cyl',
color='white',
palette = 'lancet', #配色风格,JCO
sort.val = 'desc', #对y变量降序
sort.by.groups = FALSE, #各组不分开排列
x.text.angle=90
)
#滑珠图
b <- ggdotchart(mtcars,x='name',y='mpg',
color = 'cyl',
palette = 'jco',
sorting = 'ascending', #升序排列
add = 'segments', #添加线段,使之成为滑珠图
ggtheme = theme_pubr() #图形整体风格
)
grid.arrange(a,b,ncol=2)

改善后的滑珠图。
ggdotchart(mtcars,x='name',y='mpg',
color = 'cyl',
palette = c('#00AFBB','#E7B800','#FC4E07'),
sorting = 'descending',
add = 'segments',
rotate = TRUE,
group = 'cyl', #各亚组分开
dot.size = 6, #散点大小
label = round(mtcars$mpg),#mpg值作为散点标签
font.label = list(color='white',size=9,vjust=0.5),
#定义散点其他属性
ggtheme = theme_pubr()
)

5. 其他扩展包
- ggfortify包
- ggforce包
对ggplot2几何对象进行了扩展,加入arcs、curves等几何对象,更方便绘制饼图、弧形等。 - ggradar包
雷达图/蜘蛛图。 - ggnetwork包
社交网络数据可视化。
R语言与医学统计图形-【28】ggplot2扩展包ggrepel、ggsci、gganimate、ggpubr的更多相关文章
- R语言与医学统计图形-【26】ggplot2主题函数
ggplot2绘图系统--主题函数 1. theme函数 theme_*系列函数提供了9种不同的风格. theme_grey/gray/bw/linedraw/light/minimal/classi ...
- R语言与医学统计图形-【27】ggplot2图形组合、字体、保存
ggplot2绘图系统--图形组合.字体选择.保存输出 1.图形组合 一页多图在基础包中利用par和layout函数来切分画布. ggplot2是先铺好网格背景,再进行绘图,所以要通过切分网格背景来实 ...
- 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绘 ...
随机推荐
- PinPoint单节点部署及客户端配置方法
在一次做项目中,需要涉及全链路压测,为了更好定位链路中某一节点可能会出现的问题,在繁忙之余,快速部署及应用了该链路工具,分享给大家~ 话不多说,开始部署~ 一.环境配置1.1 获取需要的依赖包进入ho ...
- activiti流程图上获取各节点的信息获取
背景: 由于项目的需要,当用户在查看流程图时,当点击某个流程图片上的节点时,需要提示一些信息,这就需要获取各个节点的信息,此处获取id和name的值. 注意:这个并 ...
- 用STM32内置的高速ADC实现简易示波器
做一个数字采样示波器一直是我长久以来的愿望,不过毕竟这个目标难度比较大,涉及的方面实在太多,模拟前端电路.高速ADC.单片机.CPLD/FPGA.通讯.上位机程序.数据处理等等,不是一下子就能成的,慢 ...
- Machine learning(4-Linear Regression with multiple variables )
1.Multiple features So what the form of the hypothesis should be ? For convenience, define x0=1 At t ...
- 虚树 virtual-tree
我们发现,如果一棵树中真正需要处理的点很少,而总共点数很多时,可以只处理那些需要的点,而忽略其他点. 因此我们可以根据那些需要的点构建虚树,只保留关键点. oi-wiki上对虚树的介绍 我们根据一下方 ...
- AOP源码解析:AspectJExpressionPointcutAdvisor类
先看看 AspectJExpressionPointcutAdvisor 的类图 再了解一下切点(Pointcut)表达式,它指定触发advice的方法,可以精确到返回参数,参数类型,方法名 1 pa ...
- SkyWalking配上告警更优秀
前言 对于监控系统来说,不可能让人一直盯着监控看板,而更多的是以自动提醒的方式,比如邮件.短信或微信推送等,当达到或超出预设的告警指标时,就自动发送消息提醒,下面就来说说如何配置SkyWalking的 ...
- JAVA笔记9__异常/throw关键字/自定义异常/受检与非受检异常、assert关键字/StringBuffer、StringBuilder/代码国际化、动态文本
/** * 异常:在程序中导致程序中断运行的一些指令 * 1.受检异常:编译期 * 2.非受检异常:运行期 * 异常处理过程分析: * 1.一旦产生异常,系统会自动产生一个异常类的实例化对象 * 2. ...
- 大一C语言学习笔记(4)---自省篇
博主"曾经"做过的傻事: #你有的*没打全 #你用/的时候没考虑()是一对的 #printf随后加\n #所有变量只要用,就一定要定义数据类型 #sqrt()代表根号 #inclu ...
- 问题 K: 找点
题目描述 上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点.但是这几天LYH太忙了,你们帮帮他吗? 输入 多组测试数据. 每组数据先输入一个N,表示有N个闭区间(N ...