pythonic生物人

复现Nature子刊图,换数据即可用!

本次使用R语言复现一下Nature food中的1张图!

s43016-025-01134-x原图
s43016-025-01134-x原图
❤️复现效果图❤️
❤️复现效果图❤️

✅读入测试数据,

Image

✅关键代码,

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
  )
Image

✅该图将分面图 + 气泡图用到极致,系统展示了实体和数字零售食品环境变化率(AAPC)同国家层面肥胖趋势变化率之间的关联,信息密度高但不乱,整体就是一张“全球零售生态×肥胖趋势”的高维关系地图。

  • 第一行、第二行,是2009–2022年的实体零售,包括连锁和非连锁门店密度、两者比值、连锁渠道销售占比和不健康食品销售结构;
  • 第三行,是2014–2022年的数字零售人均销售额,专门盯住新兴渠道的增长。y轴统一用肥胖患病率的AAPC,所有子图共用同一尺度和刻度,方便跨面板直接比大小、看方向。
  • 每个气泡代表一个国家,面积对应2022年的人口规模,颜色区分收入水平。
  • 右下角标了未校正的Spearman相关系数r,用来说明零售环境变化率和肥胖变化率之间的单调关联强度。

整个图只用到ggplot2的分面 + geom_point等基础方法。


本期结束!

测试数据+详细代码将加入👉:《保姆级R可视化教程2.0》,39个章节,20w字+,数百张图,旨在引导如何系统学习R语言可视化,部分展示如下:
图片
图片
图片
图片
图片
图片
复现效果图-abcd图❤️
复现效果图-b图❤️
图片
❤️复现效果图-ABCD图❤️
图片
❤️复现效果图-bcd图❤️
图片
图片
❤️复现效果图-b图❤️
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片

图片

图片
图片

(加入学习,收费,备注:299)

图片