复现Nature顶刊图,换数据即可用!
本次使用R复现Nature子刊上的以下B图,
上图为桑基图(Sankey Diagram),是一种用于可视化不同节点间流动关系的图表,通过宽度不一的流动带直观表示数量大小,展示从一个状态到另一个状态的转移或分布过程。其特点是起始流量与结束流量相等,主支和分支的宽度总和保持平衡,体现能量守恒。流动带的宽度按比例反映分支流量占比,不同节点的宽度则对应特定状态下的流量规模,类似于能量守恒定律。
下面分享ggplot2结合其扩展快速绘制桑基图。
数据准备
# 读取原始数据(三列:layer1 layer2 layer3)
df_raw <- read_tsv(
"r_data/sankey2_countrys.txt",
col_names = c("layer1", "layer2", "layer3"),
show_col_types = FALSE
)
head(df_raw, n=10)
R绘制Sankey plot
代码很简单,
# 5. 绘制三层 Sankey 图
p <- ggplot(
df_alluvial,
aes(
x = layers, # 横轴:层级
stratum = regions, # 节点类别
alluvium = alluvium, # 流向 ID
y = value, # 流量大小
fill = regions, # 按类别填充颜色
label = regions # 节点标签
)
) +
# 设置层级顺序与间距
scale_x_discrete(
limits = c("layer1", "layer2", "layer3"),
labels = c("Layer 1", "Layer 2", "Layer 3"),
expand = c(0.1, 0)
) +
# 绘制流向
geom_flow(
width = 1/4,
alpha = 0.6
) +
# 绘制节点(stratum)
geom_stratum(
width = 1/4,
alpha = 0.6,
color = "grey90"
) +
# 在节点内添加自适应文本标签
ggfittext::geom_fit_text(
stat = "stratum",
width = 1/4,
min.size = 3
)
本期结束!
获取绘图代码+测试数据+数据处理方法+依赖包安装方法,
👇(备注:299)
-推荐阅读-
复现Nature子刊上3张图,换数据即可用!
复现Nature“水”子刊上配图,换数据即可用!
喜提“Acceptance”,多亏这两张图,能顶60张图的工作量!
复现Nature正刊上3张图,换数据即可用!
复现IF50.0期刊上6张图,换数据即可用!
复现中科院IF 25.9期刊上3张图,换数据即可用!
复现Nature子刊中的2张图,换个数据即可用!
复现IF 48.5的期刊图,这个图帮你省下50%版面费!
喜提“Major Revision”,太多图,被质疑在堆工作量......
审稿人:凭这个3D Heatmap,必须给minor revision
复现Nature子刊上3张图,换数据即可用!
复现Nature“水”子刊上配图,换数据即可用!
喜提“Acceptance”,多亏这两张图,能顶60张图的工作量!
复现Nature正刊上3张图,换数据即可用!
复现IF50.0期刊上6张图,换数据即可用!
复现中科院IF 25.9期刊上3张图,换数据即
👉:《保姆级R可视化教程》!包含49个章节,数百张图,旨在引导如何系统学习R语言可视化,
(加入学习,备注:299)