作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源。

严涛老师的绘图教程还有:

gganimate |诺奖文章里面的动图绘制教程来了!!

ggplot2学习笔记之图形排列

R包ggseqlogo |绘制序列分析图

ggplot2高效实用指南 (可视化脚本、工具、套路、配色)

简介

ggridges包主要用来绘制山峦图。尤其是针对时间或者空间分布可视化具有十分好的效果。ggridges主要提供两个几何图像函数:

  • geom_ridgeline(): 主要绘制山脊线图

  • geom_density_ridges():主要绘制密度山脊线图

具体用法可以参考官方文档:

https://cran.r-project.org/web/packages/ggridges/vignettes/introduction.html

geom_ridgeline()

library(ggridges)
library(tidyverse)
# grid.arrange来自于gridExtra包,可以同时拼图多个ggplot2对象
library(gridExtra)my_data <- data.frame(x=1:5, y=rep(1,5), height=c(0,1,-1,3,2))
plot_base <- ggplot(my_data, aes(x, y, height=height))# 默认负值不显示,除非指定min_height参数grid.arrange(plot_base+geom_ridgeline(),plot_base+geom_ridgeline(min_height=-2), ncol=2)

geom_density_ridges()

geom_density_ridges()函数首先会根据数据计算密度然后绘图,此时美学映射height没有必要写入函数中。下面使用lincoln_weather数据集。

# creates a vector of n equally spaced colors along the
# Matplolib 'viridis' color map# also designed to be perceived by readers with the most common form of color blindness
#  scale_fill_viridis函数来源于此包,
# 其参数 option用于设置颜色 "magma" (or "A"), "inferno" (or "B"), "plasma" (or "C"),
and "viridis" (or "D", the default option).
# ?viridis可以查看其具体含义library(viridis)
head(lincoln_weather[ ,1:4])## # A tibble: 6 x 4
##   CST      `Max Temperature [F]` `Mean Temperature [F]` `Min Temperature ~
##   <chr>                    <int>                  <int>              <int>
## 1 2016-1-1                    37                     24                 11
## 2 2016-1-2                    41                     23                  5
## 3 2016-1-3                    37                     23                  8
## 4 2016-1-4                    30                     17                  4
## 5 2016-1-5                    38                     29                 19
## 6 2016-1-6                    34                     33                 32# x后的值用 ` (反引号)括起,是因为列名字中存在空格和特殊字符,需要特殊对待
# fill = ..x.., double dots是ggplot2的一种特殊识别符,用来区分定义的和计算的美学参数
# 这里指用横轴的数据着色ggplot(lincoln_weather, aes(x=`Mean Temperature [F]`, y=`Month`, fill=..x..))+geom_density_ridges_gradient(scale=3, rel_min_height=0.01, gradient_lwd = 1.)+scale_x_continuous(expand = c(0.01, 0))+ # 扩展下横轴和纵轴scale_y_discrete(expand = c(0.01,0))+scale_fill_viridis(name="Temp. [F]", option = "C")+labs(title="Temperature in Lincoln NE",subtitle="Mean temperature (Fahrenheit) by month for 2016\nData:Orogin CSV from the Weather Underground ")+theme_ridges(font_size = 13, grid = FALSE)+theme(axis.title.y = element_blank())

cyclinal scales

为了使得ggridges绘制的图形可视化效果最好,同时为了减少用户对颜色设置的困难,作者提供了cyclinal scales用于颜色轮转映射。

ggplot(diamonds, aes(x=price, y=cut, fill=cut))+geom_density_ridges(scale=4)+scale_fill_cyclical(values = c("blue", "green"))+theme_ridges(grid = FALSE)

默认的,cyclinal scales为了防止误解是不绘制图例的,但是可以通过选项guide="legend"添加图例。

ggplot(diamonds, aes(x=price, y=cut, fill=cut))+geom_density_ridges(scale=4)+scale_fill_cyclical(values = c("blue", "green"), guide="legend")+theme_ridges(grid = FALSE)

ggplot2一样,图例是可以修改的,其他参数比如大小、透明度、形状等都是可以通过cyclinal scales修改。

ggplot(diamonds, aes(x=price, y=cut, fill=cut))+geom_density_ridges(scale=4)+scale_fill_cyclical(values = c("blue", "green"), guide="legend",labels=c("Fair"="blue", "Good"="green"),name="Fill colors")+theme_ridges(grid = FALSE)

再来2个示例

不做解释了,如果想重现就把代码拆解开,按需修改。一句句话单独拆开运行,理解其操作内容。

library(dplyr)
library(forcats)
Catalan_elections %>%mutate(YearFct = fct_rev(as.factor(Year))) %>%ggplot(aes(y = YearFct)) +geom_density_ridges(aes(x = Percent, fill = paste(YearFct, Option)),alpha = .8, color = "white", from = 0, to = 100) +labs(x = "Vote (%)",y = "Election Year",title = "Indy vs Unionist vote in Catalan elections",subtitle = "Analysis unit: municipalities (n = 949)",caption = "Marc Belzunces (@marcbeldata) | Source: Idescat") +scale_y_discrete(expand = c(0.01, 0)) +scale_x_continuous(expand = c(0.01, 0)) +scale_fill_cyclical(breaks = c("1980 Indy", "1980 Unionist"),labels = c(`1980 Indy` = "Indy", `1980 Unionist` = "Unionist"),values = c("#ff0000", "#0000ff", "#ff8080", "#8080ff"),name = "Option", guide = "legend") +theme_ridges(grid = FALSE)

library(DAAG) # for ais dataset
ais$sport <- factor(ais$sport,levels = c("B_Ball", "Field", "Gym", "Netball", "Row", "Swim", "T_400m", "T_Sprnt", "Tennis", "W_Polo"),labels = c("Basketball", "Field", "Gym", "Netball", "Row", "Swim", "Track 400m", "Track Sprint", "Tennis", "Water Polo")
)ggplot(ais, aes(x=ht, y=sport, color=sex, point_color=sex, fill=sex)) +geom_density_ridges(jittered_points=TRUE, scale = .95, rel_min_height = .01,point_shape = "|", point_size = 3, size = 0.25,position = position_points_jitter(height = 0)) +scale_y_discrete(expand = c(.01, 0)) +scale_x_continuous(expand = c(0, 0), name = "height [cm]") +scale_fill_manual(values = c("#D55E0050", "#0072B250"), labels = c("female", "male")) +scale_color_manual(values = c("#D55E00", "#0072B2"), guide = "none") +scale_discrete_manual("point_color", values = c("#D55E00", "#0072B2"), guide = "none") +guides(fill = guide_legend(override.aes = list(fill = c("#D55E00A0", "#0072B2A0"),color = NA, point_color = NA))) +ggtitle("Height in Australian athletes") +theme_ridges(center = TRUE)

还有很多用法有兴趣的可以查看官方文档https://cran.r-project.org/web/packages/ggridges/vignettes/introduction.html和https://cran.r-project.org/web/packages/ggridges/vignettes/gallery.html)继续学习。

R统计和作图

  • Graphpad,经典绘图工具初学初探

  • 维恩(Venn)图绘制工具大全 (在线+R包)

  • 在R中赞扬下努力工作的你,奖励一份CheatShet

  • 别人的电子书,你的电子书,都在bookdown

  • R语言 - 入门环境Rstudio

  • R语言 - 热图绘制 (heatmap)

  • R语言 - 基础概念和矩阵操作

  • R语言 - 热图简化

  • R语言 - 热图美化

  • R语言 - 线图绘制

  • R语言 - 线图一步法

  • R语言 - 箱线图(小提琴图、抖动图、区域散点图)

  • R语言 - 箱线图一步法

  • R语言 - 火山图

  • R语言 - 富集分析泡泡图

  • R语言 - 散点图绘制

  • R语言 - 韦恩图

  • R语言 - 柱状图

  • R语言 - 图形设置中英字体

  • R语言 - 非参数法生存分析

  • R语言 - 绘制seq logo图

  • WGCNA分析,简单全面的最新教程

  • psych +igraph:共表达网络构建

  • 一文学会网络分析——Co-occurrence网络图在R中的实现

  • 一文看懂PCA主成分分析

  • 富集分析DotPlot,可以服

  • 基因共表达聚类分析和可视化

  • R中1010个热图绘制方法

  • 还在用PCA降维?快学学大牛最爱的t-SNE算法吧, 附Python/R代码

  • 一个函数抓取代谢组学权威数据库HMDB的所有表格数据

  • 文章用图的修改和排版

  • network3D: 交互式桑基图

  • network3D 交互式网络生成

  • Seq logo 在线绘制工具——Weblogo

  • 生物AI插图素材获取和拼装指导

  • ggplot2高效实用指南 (可视化脚本、工具、套路、配色)

  • 图像处理R包magick学习笔记

  • SOM基因表达聚类分析初探

  • 利用gganimate可视化全球范围R-Ladies(R社区性别多样性组织)发展情况

  • 一分钟绘制磷脂双分子层:AI零基础入门和基本图形绘制

  • AI科研绘图(二):模式图的基本画法

  • 你知道R中的赋值符号箭头(<-)和等号(=)的区别吗?

  • R语言可视化学习笔记之ggridges包

  • 利用ComplexHeatmap绘制热图(一)

  • ggplot2学习笔记之图形排列

  • R包reshape2,轻松实现长、宽数据表格转换

  • 用R在地图上绘制网络图的三种方法

  • PCA主成分分析实战和可视化 附R代码和测试数据

  • iTOL快速绘制颜值最高的进化树!

  • 12个ggplot2扩展包帮你实现更强大的可视化

  • 编程模板-R语言脚本写作:最简单的统计与绘图,包安装、命令行参数解析、文件读取、表格和矢量图输出

  • R语言统计入门课程推荐——生物科学中的数据分析Data Analysis for the Life Sciences

  • 数据可视化基本套路总结

  • 你知道R中的赋值符号箭头<-和等号=的区别吗?

  • 使用dplyr进行数据操作30例

  • 交集intersect、并集union、找不同setdiff

  • R包reshape2,轻松实现长、宽数据表格转换

  • 1数据类型(向量、数组、矩阵、 列表和数据框)

  • 2读写数据所需的主要函数、与外部环境交互

  • 3数据筛选——提取对象的子集

  • 4向量、矩阵的数学运算

  • 5控制结构

  • 6函数及作用域

  • 7认识循环函数lapply和sapply

  • 8分解数据框split和查看对象str

  • 9模拟—随机数、抽样、线性模型

  • 1初识ggplot2绘制几何对象

  • 2图层的使用—基础、加标签、注释

  • 3工具箱—误差线、加权数、展示数据分布

  • 4语法基础

  • 5通过图层构建图像

  • 6标度、轴和图例

  • 7定位-分面和坐标系

  • 8主题设置、存储导出

  • 9绘图需要的数据整理技术

  • 创建属于自己的调色板

  • 28个实用绘图包,总有几个适合你

  • 热图绘制

  • R做线性回归

  • 绘图相关系数矩阵corrplot

  • 相关矩阵可视化ggcorrplot

  • 绘制交互式图形recharts

  • 交互式可视化CanvasXpress

  • 聚类分析factoextra

  • LDA分析、作图及添加置信-ggord

  • 解决散点图样品标签重叠ggrepel

  • 添加P值或显著性标记ggpubr

  • Alpha多样性稀释曲线rarefraction curve

  • 堆叠柱状图各成分连线画法:突出组间变化

  • 冲击图展示组间时间序列变化ggalluvial

  • 桑基图riverplot

  • 微生物环境因子分析ggvegan

  • 五彩进化树与热图更配ggtree

  • 多元回归树分析mvpart

  • 随机森林randomForest 分类Classification 回归Regression

  • 加权基因共表达网络分析WGCNA

  • circlize包绘制circos-plot

  • R语言搭建炫酷的线上博客系统

  • 28个实用绘图包,总有几个适合你

  • 热图绘制

  • R做线性回归

  • 绘图相关系数矩阵corrplot

  • 相关矩阵可视化ggcorrplot

  • 绘制交互式图形recharts

  • 交互式可视化CanvasXpress

  • 聚类分析factoextra

  • LDA分析、作图及添加置信-ggord

  • 解决散点图样品标签重叠ggrepel

  • 添加P值或显著性标记ggpubr

  • Alpha多样性稀释曲线rarefraction curve

  • 堆叠柱状图各成分连线画法:突出组间变化

  • 冲击图展示组间时间序列变化ggalluvial

  • 桑基图riverplot

  • 微生物环境因子分析ggvegan

  • 五彩进化树与热图更配ggtree

  • 多元回归树分析mvpart

  • 随机森林randomForest 分类Classification 回归Regression

  • 加权基因共表达网络分析WGCNA

  • circlize包绘制circos-plot

  • R语言搭建炫酷的线上博客系统

  • 维恩(Venn)图绘制工具大全 (在线+R包)

  • R包circlize:柱状图用腻了?试试好看的弦状图

  • 获取pheatmap聚类后和标准化后的结果

  • 增强火山图,要不要试一下?

  • 一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D

  • 赠你一只金色的眼 - 富集分析和表达数据可视化

  • 是Excel的图,不!是R的图

  • 道友,来Rstudio里面看动画了

  • 用了这么多年的PCA可视化竟然是错的!!!

  • R语言可视化学习笔记之ggridges包

  • 万能转换:R图和统计表转成发表级的Word、PPT、Excel、HTML、Latex、矢量图等

  • 那天空飘过的梅花月饼,是今年中秋最好的礼物

高颜值免费在线绘图

往期精品

画图三字经 生信视频 生信系列教程

心得体会 TCGA数据库 Linux Python

高通量分析 免费在线画图 测序历史 超级增强子

生信学习视频 PPT EXCEL 文章写作 ggplot2

海哥组学 可视化套路 基因组浏览器

色彩搭配 图形排版 互作网络

自学生信 2019影响因子 GSEA 单细胞

后台回复“生信宝典福利第一波”获取教程合集

R语言可视化学习笔记之ggridges包绘制山峦图相关推荐

  1. R语言可视化学习笔记之ggridges包

    作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源. 严涛老师的绘图教程还有: gganimate |诺奖文章里面的动图绘制教程来了!! ggplot2学习笔记之 ...

  2. R语言可视化学习笔记之相关矩阵可视化包ggcorrplot

    本文转载自"R语言中文社区",己获授权. 作者简介Introduction taoyan:伪码农,R语言爱好者,爱开源. 个人博客: https://ytlogos.github. ...

  3. R语言小白学习笔记13—基本统计

    R语言小白学习笔记13-基本统计 笔记链接 学习笔记13-基本统计 13.1 概括性统计量 13.2 相关系数和协方差 13.3 t-检验 13.3.1 单样本t检验 13.3.2 两样本t检验 13 ...

  4. R语言小白学习笔记12—概率分布

    R语言小白学习笔记12-概率分布 笔记链接 学习笔记12-概率分布 12.1 正态分布 12.2 二项分布 12.3 泊松分布 12.4 其他分布 笔记链接 学习笔记1-R语言基础. 学习笔记2-高级 ...

  5. R语言数据处理学习记录--使用linkET包完成mental test

    R语言数据处理学习记录–使用linkET包完成mental test 注:本文仅作为自己的学习记录以备复习查阅 一 简单介绍一下 这个包依旧是来自于GitHub上,作者给出的介绍:linkET的目标是 ...

  6. R语言小白学习笔记3—R语言读取数据

    R语言小白学习笔记3-R语言读取数据 笔记链接 想说的话 学习笔记3-R语言读取数据 3.1 读取CSV文件 3.1.1 read_delim函数 3.1.2 fread函数 3.2 读取Excel数 ...

  7. r型聚类典型指标_应用统计学与R语言实现学习笔记(十)——聚类分析

    Chapter 10 Cluster Analysis 本篇是第十章,内容是聚类分析.由于之后的几章是典型的分析方法.而且在14章的案例里面可能不会体现,所以内容里会渗透较多的R语言操作.由于简书不支 ...

  8. r语言实现关联分析--关联规则挖掘(Apriori算法) (r语言预测学习笔记)

    r语言实现关联分析–关联规则挖掘 关联分析: 引子: 我们一般把一件事情发生,对另一间事情也会产生影响的关系叫做关联.而关联分析就是在大量数据中发现项集之间有趣的关联和相关联系(形如"由于某 ...

  9. R语言可视化散点图、使用ggrepel包的geom_text_repel函数避免数据点之间的标签互相重叠(设置min.segment.length参数为Inf不添加标签线段)

    R语言ggplot2可视化:可视化散点图并为散点图中的数据点添加文本标签.使用ggrepel包的geom_text_repel函数避免数据点之间的标签互相重叠(设置min.segment.length ...

最新文章

  1. oracle anbob,Tag Archives: oracle安装 | ANBOB
  2. linux重定向文件过大,Linux大文件重定向和管道的效率对比总结
  3. IIS7中使用集成模式时出现HttpException
  4. 2021社区居家养老现状与未来趋势报告
  5. SSH项目ueditor插件jsp版本
  6. ffmpeg 快速截图m3u8图片
  7. 容斥原理——经典例题(组合数学)
  8. word自动添加标题以及批量生成图片题注
  9. JavaScript对象 、堆与栈
  10. 《一封来自日本的信——2018年日本社会和生活水平现状》 摘要
  11. 微信小程序通过服务号推送模板消息
  12. Web在线打印设计器即将推出,像Excel一样在线设计模板
  13. IT项目管理学习笔记(一)
  14. 【思前享后】区块链的发展历史
  15. 为什么越学反而越蠢?碎片化学习是个骗局
  16. 联想服务器应用场景,联想服务器承载沈阳地铁三大核心应用
  17. python--求圆的面积
  18. Java对象的发布与逸出
  19. vga转html电脑打不开,HDMI转VGA常见故障及排除方法?
  20. Nightsong 疯言疯语

热门文章

  1. U-Time巡回完美收官:精细化数据将主导未来运营趋势(数据应用篇)
  2. Qt简单的解析Json数据例子(一)
  3. SSIS变量属性中EvaluateAsExpression设置的作用
  4. ./configure会报错:pr command not found
  5. RHEL6入门系列之二十六,利用rpm进行软件包管理
  6. IBM云计算带我们进入新服务经济时代
  7. [CSS]RevealTrans 滤镜
  8. 驾驶舱、移动端、分析报告,这几个可视化布局思路,拿来就能用
  9. 帮助企业降本增效,提高IT运营效率的六种方法
  10. 这份数十万人浏览,作为企业风向标的BI报告,你一定要看看