复现Nature子刊图,换数据即可用!
本次使用R语言复现一下Nature food中的1张图!
✅读入测试数据,
✅关键代码,
ggplot(data, aes(.data[[xvar]], obesity)) +
# 气泡图层:shape = 21 支持分别控制填充和边框
geom_point(
aes(
size = pop, # 气泡大小映射人口/权重
fill = group, # 填充色:国家分组
colour = group # 边框色:国家分组
),
shape = 21, # 空心圆
alpha = 0.45, # 透明度
stroke = 1.1# 边框粗细
) +
scale_fill_manual(values = cols_fill) + # 手动指定填充色
scale_colour_manual(values = cols_border) + # 手动指定边框色
scale_size_area(max_size = BUBBLE_MAX_SIZE) + # 气泡大小按面积缩放
# 标题与坐标轴标签
labs(
title = title,
x = xlab,
y = if (show_y) "AAPC of obesity prevalence (%)"elseNULL
) +
# 右下角标注相关系数
annotate(
"text", x = Inf, y = -Inf,
label = rlab,
hjust = 1.1, vjust = -0.4,
size = 5, family = "Arial", fontface = "italic"
) +
# y轴范围与刻度
scale_y_continuous(
limits = Y_LIMITS,
breaks = Y_BREAKS
)
✅该图将分面图 + 气泡图用到极致,系统展示了实体和数字零售食品环境变化率(AAPC)同国家层面肥胖趋势变化率之间的关联,信息密度高但不乱,整体就是一张“全球零售生态×肥胖趋势”的高维关系地图。
第一行、第二行,是2009–2022年的实体零售,包括连锁和非连锁门店密度、两者比值、连锁渠道销售占比和不健康食品销售结构; 第三行,是2014–2022年的数字零售人均销售额,专门盯住新兴渠道的增长。y轴统一用肥胖患病率的AAPC,所有子图共用同一尺度和刻度,方便跨面板直接比大小、看方向。 每个气泡代表一个国家,面积对应2022年的人口规模,颜色区分收入水平。 右下角标了未校正的Spearman相关系数r,用来说明零售环境变化率和肥胖变化率之间的单调关联强度。
整个图只用到ggplot2的分面 + geom_point等基础方法。
本期结束!
(加入学习,收费,备注:299)