【无标题】绘制颜值杠杠的云雨图

#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 = iris$Sepal.Length[1:50], #分组1
  array_2 = iris$Sepal.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 = iris$Sepal.Length[1:50],
  array_2 = iris$Sepal.Length[51:100],
  array_3 = iris$Sepal.Length[101:150],
  array_4 = iris$Sepal.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 = iris$Sepal.Length[1:50],
  array_2 = iris$Sepal.Length[51:100],
  array_3 = iris$Sepal.Length[101:150],
  array_4 = iris$Sepal.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 = iris$Sepal.Length[1:50],
  array_2 = iris$Sepal.Length[51:100],
  array_3 = iris$Sepal.Length[101:150],
  array_4 = iris$Sepal.Length[81:130],
  array_5 = iris$Sepal.Length[21:70],
  array_6 = iris$Sepal.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

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

# 注意数据格式的转化

##

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云归兮星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值