美文网首页
绘制颜值杠杠的云雨图

绘制颜值杠杠的云雨图

作者: 深圳大学在读生信菜鸡 | 来源:发表于2023-03-17 10:19 被阅读0次

R包下载与载入:

library(remotes)
remotes::install_github('jorvlan/raincloudplots')
library(raincloudplots)
library(ggplot2)

绘图数据整理:

head(iris) #以鸢尾数据集为例;

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1 5.1 3.5 1.4 0.2 setosa

2 4.9 3.0 1.4 0.2 setosa

3 4.7 3.2 1.3 0.2 setosa

4 4.6 3.1 1.5 0.2 setosa

5 5.0 3.6 1.4 0.2 setosa

6 5.4 3.9 1.7 0.4 setosa

需使用特定函数转化为绘图所需格式:

dt1 <- data_1x1(
array_1 = irisSepal.Length[1:50], #分组1 array_2 = irisSepal.Length[51:100], #分组2
jit_distance = 0.09, #抖动点间的距离
jit_seed = 123#设置随机数种子
)
head(dt1)

y_axis x_axis id jit

1 5.1 1 1 0.9617640

2 4.9 1 2 1.0518949

3 4.7 1 3 0.9836158

4 4.6 1 4 1.0689431

5 5.0 1 5 1.0792841

6 5.4 1 6 0.9182002

1.1 横向云雨图绘制:

p1 <- raincloud_1x1(
data = dt1,
colors = (c('#0da9ce','#e74a32')), #描边颜色
fills = (c('#0da9ce','#e74a32')), #填充颜色
size = 1.2, #散点大小
alpha = 0.5, #不透明度
ort = 'h' #横向,v则纵向云雨图
) +
scale_x_continuous(breaks = c(1.4, 2.4),#间距
labels = c("setosa", "versicolor"),#标签
limits = c(0.8, 3)) + #通过限制/修改坐标轴来更改云雨图位置[两个分组的x轴坐标在绘图数据中为1和2]
labs(x = "Species", y = "Sepal.Length") +
theme_classic()
p1

1.2 纵向云雨图绘制:在上面的基础上进行了翻转操作

p2 <- raincloud_1x1(
data = dt1,
colors = (c('#0da9ce','#e74a32')),
fills = (c('#0da9ce','#e74a32')),
size = 1.2,
alpha = 0.5,
ort = 'v' #翻转
) +
scale_x_continuous(breaks = c(1.4, 2.4),
labels = c("setosa", "versicolor"),#x轴标签
limits = c(0.8, 3)) +
labs(x = "Species", y = "Sepal.Length") +
theme_classic()
p2

1.3 配对云雨图绘制:

head(dt1) #对两组中的相同id进行配对;
p3 <- raincloud_1x1_repmes(
data = dt1,
colors = (c('#0da9ce','#e74a32')),
fills = (c('#0da9ce','#e74a32')),
size = 1.6,
alpha = 0.5,
line_color = 'grey', #配对连线颜色
line_alpha = 0.8, #配对连线不透明度
align_clouds = FALSE

align_clouds = T#是否对齐云朵[默认F为展开,若为T则将云朵对齐放在一侧]

) +
scale_x_continuous(breaks = c(0.6, 2.4),
labels = c("setosa", "versicolor"),
limits = c(0, 3)) +
labs(x = "Species", y = "Sepal.Length") +
theme_classic()
p3

#对齐云朵:

p4 <- raincloud_1x1_repmes(

data = dt1,

colors = (c('#0da9ce','#e74a32')),

fills = (c('#0da9ce','#e74a32')),

size = 1.6,

alpha = 0.5,

line_color = 'grey',

line_alpha = 0.8,

align_clouds = TRUE #云朵放在一侧

) +

scale_x_continuous(breaks = c(1, 2.4),

labels = c("setosa", "versicolor"),

limits = c(0.5, 3)) +

labs(x = "Species", y = "Sepal.Length") +

theme_classic()

p4

2.1 双刻度重复配对云雨图绘制

绘图数据整理:

dt2 <- data_2x2(
array_1 = irisSepal.Length[1:50], array_2 = irisSepal.Length[51:100],
array_3 = irisSepal.Length[101:150], array_4 = irisSepal.Length[81:130], #共设定4个数组
labels = (c('control','test')), #两个组标签的连接字符串
jit_distance = 0.09,
jit_seed = 123,
spread_x_ticks = FALSE) # 2个x_axis为 FALSE,如果4个x_axis则为TRUE
head(dt2)

p5 <- raincloud_2x2_repmes(
data = dt2,
colors = (c('#0273c2', '#efc001', '#0273c2', '#efc001')),
fills = (c('#0273c2', '#efc001', '#0273c2', '#efc001')),
size = 1.5,
alpha = 0.6,
spread_x_ticks = FALSE
) +
scale_x_continuous(breaks = c(0.5, 2.5),
labels = c("day1", "day10"),
limits = c(0, 3)) +
labs(x = "Time", y = "Length") +
theme_classic()
p5

2.2 四刻度重复配对云雨图绘制

绘图数据整理:

dt3 <- data_2x2(
array_1 = irisSepal.Length[1:50], array_2 = irisSepal.Length[51:100],
array_3 = irisSepal.Length[101:150], array_4 = irisSepal.Length[81:130],
labels = (c('control','test')),
jit_distance = 0.09,
jit_seed = 123,
spread_x_ticks = TRUE) #4刻度(x_axis),设为T
tail(dt3)

p6 <- raincloud_2x2_repmes(
data = dt3,
colors = (c('#0273c2', '#efc001', '#0273c2', '#efc001')),
fills = (c('#0273c2', '#efc001', '#0273c2', '#efc001')),
size = 1.5,
alpha = 0.6,
spread_x_ticks = TRUE #4刻度,设为T
) +
scale_x_continuous(breaks = c(1,2,3,4),
labels = c("day1", "day10", "day1", "day10"),
limits = c(0, 5)) +
labs(x = "Time", y = "Length") +
theme_classic()
p6

数据整理:

dt4 <- data_2x2(
array_1 = irisSepal.Length[1:50], array_2 = irisSepal.Length[51:100],
array_3 = irisSepal.Length[101:150], array_4 = irisSepal.Length[81:130],
array_5 = irisSepal.Length[21:70], array_6 = irisSepal.Length[41:90],
labels = (c('control','test')),
jit_distance = 0.05,
jit_seed = 123)
tail(dt4)

横向云雨图

p7 <- raincloud_2x3_repmes(
data = dt4,
colors = (c('#137b6a', '#a3bfe6', '#137b6a', '#a3bfe6', '#137b6a', '#a3bfe6')),
fills = (c('#137b6a', '#a3bfe6', '#137b6a', '#a3bfe6', '#137b6a', '#a3bfe6')),
size = 1.5,
alpha = 0.6,
ort = 'h'
) +
scale_x_continuous(breaks=c(1,2,3),
labels=c("D1", "D2", "D3"),
limits=c(0.7, 4)) +
labs(x = "Time", y = "Score") +
theme_classic()
p7

可以用于绘画单细胞的数据基因对应细胞的表现

注意数据格式的转化

相关文章

  • 云雨图——一段简单代码的分享

    分享一段绘制云雨图的代码,这个图由于其“比较高的颜值”,前段时间在各个生信交流群传的挺火…… 数据来源 简单起见,...

  • 高颜值思维导图特训营6/21

    罗伟高颜值思维导图训练营 6/21 20170603 主题:绘制思维导图

  • 高颜值思维导图特训营10/21

    罗伟高颜值思维导图特训营 10/21 20170607 主题:用iMindMap绘制思维导图 iMindMap是目...

  • 云雨图——适用于统计描述的高颜值图

    学习真是件有趣的事情,大家一起来学呀。今天跟大家分享如何绘制云雨图,为什么称为云雨图呢?因为长得像哈哈哈! 云雨图...

  • ggplot2绘制分裂小提琴图

    本节来介绍如何使用ggplot2绘制分裂小提琴图 加载R包 ggplot2绘制分裂小提琴图 ggplot2绘制云雨图

  • 【思维导图百问百答】如何正确绘制中心图?

    我们在绘制思维导图的时候,首先需要画的就是中心图。中心图如同导图的脸面,除了要颜值高,还要能够恰当表达导图的...

  • 高颜值火山图绘制脚本

    分析背景     火山图常用于转录组研究中,也能应用于基因组,蛋白质组,代谢组等统计数据。它归根到底是是散点图的一...

  • 环状直方图和散点图

    继上次跟大家分享了云雨图和分组直方图之后,今天再跟大家介绍一种适用于统计描述的高颜值图——环状直方图和散点图。它其...

  • 听说,这杯精酿里面有秘密

    今年的世界杯颜值有点高,不光是球员的颜值高,就连球迷的颜值那也是杠杠的。众所周知,每逢世界杯上,总会有一两位令人印...

  • 2022-05-29

    这是最近几年买的最心水的茶,颜值,香气,口感,方便程度都是杠杠的。

网友评论

      本文标题:绘制颜值杠杠的云雨图

      本文链接:https://www.haomeiwen.com/subject/qzkjrdtx.html