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的更多相关文章

  1. R语言与医学统计图形-【26】ggplot2主题函数

    ggplot2绘图系统--主题函数 1. theme函数 theme_*系列函数提供了9种不同的风格. theme_grey/gray/bw/linedraw/light/minimal/classi ...

  2. R语言与医学统计图形-【27】ggplot2图形组合、字体、保存

    ggplot2绘图系统--图形组合.字体选择.保存输出 1.图形组合 一页多图在基础包中利用par和layout函数来切分画布. ggplot2是先铺好网格背景,再进行绘图,所以要通过切分网格背景来实 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 第2次 Beta Scrum Meeting

    本次会议为Beta阶段第2次Scrum Meeting会议 会议概要 会议时间:2021年5月31日 会议地点:「腾讯会议」线上进行 会议时长:0.5小时 会议内容简介:对完成工作进行阶段性汇报:对下 ...

  2. SpringCloud+RocketMQ实现分布式事务

    随着互联网公司的微服务越来越多,分布式事务已经成为了我们的经常使用的.所以我们来一步一步的实现基于RocketMQ的分布式事务.接下来,我们将要做的主题写出来. RocketMQ的分布式事务结构和说明 ...

  3. 示波器分析I2C时序波形图

    对于嵌入式开发的朋友来说,I2C协议实在是再熟悉不过了,有太多的器件,采用的都是通过I2C来进行相应的设置.今天,我们就随便聊聊这个I2C协议. I2C协议中最重要的一点是I2C地址.这个地址有7位和 ...

  4. 加法运算替代 牛客网 程序员面试金典 C++ Python

    加法运算替代 牛客网 程序员面试金典 题目描述 请编写一个方法,实现整数的乘法.减法和除法运算(这里的除指整除).只允许使用加号. 给定两个正整数int a,int b,同时给定一个int type代 ...

  5. 电路维修(双端队列 & 最短路)

    达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上. 翰翰的家里有一辆飞行车. 有一天飞行车的电路板突然出现了故障,导致无法启动. 电路板的整体结构是一个$ ...

  6. js实现日期格式化封装--八种

    封装一个momentTime.js文件,包含8种格式. 需要传两个参数: 时间戳:stamp 格式化的类型:type, 日期补零的方法用到es6语法中的padStart(length,'字符'): 第 ...

  7. 盘点 GitHub 年度盛会|附视频

    「Universe 2021」是 GitHub 于今年举办的开发者盛会,本次 Universe 2021 大会采用线上直播模式,为期两天已于上周落下帷幕. 这是 GitHub 举办的一年一度开发者盛会 ...

  8. 西邮Linux兴趣小组第一次技术分享会

    2016年10月30日晚,西邮Linux兴趣小组技术分享会在西安邮电大学长安校区东区逸夫教学楼FF305室成功举办.200多名来自全校不同专业的15,16级同学参加了此次分享会. 分享会于20:00正 ...

  9. geoserver控制服务访问权限-类似百度地图的key

    目录 缘起 可行性分析 如何实现key验证访问 如何控制key能访问哪些地图服务? 如何实现服务器ip白名单 流程梳理 申请key 访问地图 实施步骤 拦截器设置 配置key验证规则 配置服务拦截规则 ...

  10. Buildroot 用户手册 (中文)

    文章目录 I. Getting started 1. About Buildroot 2. System requirements 2.1. Mandatory packages 2.2. Optio ...