欢迎关注R语言数据分析指南
论文
原图
加载R包
代码语言:javascript
复制library(tidyverse)
library(cowplot)
导入数据
代码语言:javascript
复制df <- read_tsv("group.xls")
绘制热图
代码语言:javascript
复制heatmap <- df %>%
pivot_longer(-cluster) %>% # 将数据从宽格式转换为长格式,除了"cluster"列
separate(`name`, into = "name", sep = "-") %>% # 将"name"列根据"-"分隔成新的列
ggplot(aes(name, cluster, fill = value)) # 使用ggplot绘图,设置映射
geom_tile() # 添加瓷砖图层,用于绘制热图
scale_y_discrete(position = "right") # 设置y轴刻度位置
scale_x_discrete(limits = c("Epipelagic", "Mesopelagic", "Deep")) # 设置x轴刻度顺序
scale_fill_gradientn(colours = rev(RColorBrewer::brewer.pal(11, "RdBu"))) # 设置颜色渐变
theme( # 设置主题
panel.background = element_blank(), # 设置面板背景为空
plot.background = element_blank(), # 设置绘图背景为空
legend.background = element_blank(), # 设置图例背景为空
plot.margin = margin(20, 200, 20, 20), # 设置绘图边距
axis.title = element_blank(), # 设置轴标题为空
axis.ticks = element_blank(), # 设置轴刻度为空
axis.text.x = element_text(angle = 45, color = "black", vjust = 1, hjust = 1), # 设置x轴文字样式
legend.position = c(3, 0.8), # 设置图例位置
legend.title = element_blank() # 设置图例标题为空
)
绘制线图
代码语言:javascript
复制line <- read_tsv("type.xls") %>%
ggplot(aes(x = type, y = len, group = cluster, color = group)) # 使用ggplot绘图,设置映射
geom_line() # 添加线图层
geom_point(size = 2) # 添加点图层,设置点的大小
geom_text(aes(label = text), nudge_x = 0.08) # 添加文本图层,设置文本偏移
scale_x_discrete(limits = c("tVCs", "Hodts")) # 设置x轴刻度顺序
scale_color_brewer(palette = "Paired") # 设置颜色
theme( # 设置主题
plot.margin = margin(2, 2, 2, 0), # 设置绘图边距
plot.background = element_blank(), # 设置绘图背景为空
panel.background = element_blank(), # 设置面板背景为空
legend.position = "none", # 设置图例位置为无
panel.grid.major = element_blank(), # 设置主网格为空
panel.grid.minor = element_blank(), # 设置次网格为空
axis.text.y = element_blank(), # 设置y轴文字为空
axis.text.x = element_text(color = "black", face = "bold"), # 设置x轴文字样式
axis.title = element_blank(), # 设置轴标题为空
axis.ticks = element_blank() # 设置轴刻度为空
)
拼图
代码语言:javascript
复制plot <- heatmap %>% ggdraw()
draw_plot(line, scale = 0.93, x = 0.12, y = 0.023) # 添加线图到热图上
图形导出
代码语言:javascript
复制ggsave(plot, file = "heatmap.pdf", width = 4.59, height = 8.33, dpi = 300) # 设置文件名、尺寸和分辨率