大数跨境
0
0

Nature图表复现|热图叠加折线图

Nature图表复现|热图叠加折线图 R语言数据分析指南
2023-10-21
2

欢迎关注R语言数据分析指南

本节来复现「nature communications」中的一张论文图,「热图叠加折线图」。小编将通过一个精选案例进行详细演示,这里展示的图形仅做展示,折线图中的数据是经过人为构建的,过程仅供参考。希望能对各位观众老爷有所帮助。数据代码已经整合上传到2023VIP交流群,加群的观众老爷可自行下载,有需要的朋友可关注文末介绍加入VIP交流群

关注下方公众号下回更新不迷路

论文

原图

加载R包

library(tidyverse) 
library(cowplot)  

导入数据

df <- read_tsv("group.xls")

绘制热图

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(202002020),  # 设置绘图边距
    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(30.8),  # 设置图例位置
    legend.title = element_blank()  # 设置图例标题为空
  )

绘制线图

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(2220),  # 设置绘图边距
    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()  # 设置轴刻度为空
  )

拼图

plot <- heatmap %>% ggdraw() +
  draw_plot(line, scale = 0.93, x = 0.12, y = 0.023)  # 添加线图到热图上

图形导出

ggsave(plot, file = "heatmap.pdf", width = 4.59, height = 8.33, dpi = 300)  # 设置文件名、尺寸和分辨率

本节内容介绍到此结束,过程仅供参考;有需要学习个性化数据可视化的朋友,欢迎到小编的「淘宝店铺」 「R语言数据分析指南」购买「2023年度会员文档」同步更新中「售价149元」,内容主要包括各种「高分论文的图表分析复现以及一些个性化图表的绘制」均包含数据+代码;按照往年数据小编年产出约在150+以上

购买后微信发小编订单截图即邀请进新的会员交流群,小编的文档为按年售卖,只包含当年度的「除系列课程外」的文档,有需要往年文档的朋友也可下单购买,需要了解更多信息的朋友欢迎淘宝店铺交流咨询。

淘宝店铺(淘宝扫一扫)

2023会员群案例展示

【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读222
粉丝0
内容1.2k