R:小提琴点图

发布时间 2023-10-28 22:26:23作者: 王哲MGG_AI
# 加载所需的库
library(ggplot2)

# 数据
# 创建两个向量B73和Mo17,分别存储两种玉米品种的Shannon多样性指数
B73 <- c(4.715703, 5.102193, ...[省略其他数值]... 4.254242, 4.446569)
Mo17 <- c(5.220441, 4.871865, ...[省略其他数值]... 5.155874, 4.930463)

# 转化为数据框
# 将B73和Mo17的数据合并为一个向量,并为它们创建一个标签向量来表示来源
df <- data.frame(
  Value = c(B73, Mo17),
  Type = c(rep("B73", length(B73)), rep("Mo17", length(Mo17)))
)

# 自定义参数
point_alpha <- 1 # 点的透明度
axis_text_size <- 13  # 坐标刻度文字的大小
axis_title_gap <- 23  # 坐标轴标题与轴之间的距离

# 自定义颜色
B73_color <- "#00BFFF" # 定义B73品种的颜色为天蓝色
Mo17_color <- "#FF4500" # 定义Mo17品种的颜色为红橙色

# 绘图
ggplot(df, aes(x=Type, y=Value)) +  # 创建一个基于df数据框的ggplot对象,其中Type用于X轴,Value用于Y轴
  geom_violin(aes(fill=Type), trim=FALSE, alpha=0.5) +  # 添加提琴图,填充色基于Type字段
  geom_point(aes(shape=Type, color=Type), position=position_jitter(width=0.15), size=3, alpha=point_alpha) +  # 添加散点,形状和颜色基于Type字段,加入轻微的抖动来改善显示
  scale_shape_manual(values=c(B73=24, Mo17=21)) +  # 手动设置散点的形状
  scale_fill_manual(values=c(B73=B73_color, Mo17=Mo17_color)) +  # 手动设置提琴图的填充颜色
  scale_color_manual(values=c(B73=B73_color, Mo17=Mo17_color)) +  # 手动设置散点颜色
  theme_minimal() +  # 使用简洁的主题
  labs(title="Alpha-diversity (Shannon index) of B73 vs Mo17",  # 设置图表标题
       y="Shannon index",  # 设置Y轴标题
       x="Maize variety") +  # 设置X轴标题
  theme(legend.position="none",  # 不显示图例
        axis.line=element_line(colour="black"),  # 设置坐标轴线条颜色为黑色
        panel.grid.major=element_blank(),  # 移除主要网格线
        panel.grid.minor=element_blank(),  # 移除次要网格线
        axis.text.x=element_text(size=axis_text_size),  # 设置X轴文本大小
        axis.text.y=element_text(size=axis_text_size),  # 设置Y轴文本大小
        axis.title.x=element_text(size=17, margin=margin(t=axis_title_gap)),  # 设置X轴标题样式
        axis.title.y=element_text(size=17, margin=margin(r=axis_title_gap)))  # 设置Y轴标题样式