大数跨境
0
0

审稿人:散点图要自信,也可以发Nature!

审稿人:散点图要自信,也可以发Nature! 科研代码
2025-11-27
6
导读:散点图的终极代码!

1 散点图为什么不好看?

散点图算是科研里最常用的图形之一,但说句实话,它也可能是最容易“看着难受”的图。点一多就乱,颜色稍微一鲜艳就有点“彩虹泡泡机”的既视感。以前在组会上,我几乎不太爱用散点图,但很多时候又必须用它,比如展示两个连续变量的关系、趋势判断、对比分布……论文里也经常出现,所以今天的更新,我想把自己这几年摸索的配色风格的经验打包一下,专门聊聊:散点图到底怎么做,才能既好看又专业?


2 Nature 风格的三条核心审美原则

还是按照以前的风格,我们的审美还是向Nature靠拢。来看2种Nature风格的散点图,一种是单独的一种是分组比较的散点图。 至于美学优化方面,把握以下三个原则:

第一,颜色克制。 低饱和度、柔和色,不要大红大紫,一看就很舒服。

第二,大面积留白。 背景干净,不堆网格、不堆线条,视觉焦点完全留给数据。

第三,重点突出但不夸张。 需要趋势线就轻轻画一下,需要分组就自然地区分,不用粗暴强调。


3 Nature 风格散点图示例 1

极简专业风:单色 + 透明度 + 轻趋势线

第一种风格尤其适合展示趋势关系,干净且高级。

library(ggplot2)

# Nature-like minimalist scatter
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) +
  geom_point(color = "#325D88", alpha = 0.6, size = 2) +   # 低饱和蓝色
  geom_smooth(method = "lm", se = FALSE, color = "#2C3E50", linewidth = 0.8) + 
  theme_minimal(base_size = 14) +
  theme(
    panel.grid = element_blank(),
    axis.title = element_text(size = 13),
    axis.text = element_text(size = 12, color = "black"),
    axis.line = element_line(color = "black", linewidth = 0.6),
    plot.title = element_text(hjust = 0.5, size = 15, face = "plain")
  ) +
  labs(
    x = "Sepal Length",
    y = "Petal Length",
    title = "Minimalist Nature-style Scatter Plot"
  )

4 Nature 风格散点图示例 2

分组色系:低饱和自然色 + 图例标题

第二种风格适用于分组比较,同时保持 Nature 的简约美学。

library(ggplot2)

# 自定义 Nature-style 低饱和色系
nature_pal <- c(
  setosa     = "#4C72B0",   # muted blue
  versicolor = "#55A868",   # muted green
  virginica  = "#C44E52"# muted red
)

# Grouped Nature-style scatter with legend title
ggplot(iris, aes(x = Sepal.Width, y = Petal.Width, color = Species)) +
  geom_point(alpha = 0.7, size = 2) +
  scale_color_manual(values = nature_pal) +
  theme_classic(base_size = 14) +
  theme(
    panel.grid = element_blank(),
    axis.title = element_text(size = 13),
    axis.text = element_text(size = 12, color = "black"),
    axis.line = element_line(color = "black", linewidth = 0.6),
    legend.title = element_text(size = 12, face = "plain"),  # 图例标题
    legend.position = "right",
    plot.title = element_text(hjust = 0.5, size = 15, face = "plain")
  ) +
  labs(
    x = "Sepal Width",
    y = "Petal Width",
    color = "Species",   # 图例标题内容
    title = "Grouped Scatter Plot in Nature-style Color Palette"
  )

这种图特别适合生物学、医学、环境科学这种多组比较的文章。


5 小结

今天我们聊了很多技巧,但核心就是通过简化配色来突出数据趋势,低饱和色搭配适当透明度,是最简单也最有效的提升方式。两段R代码可以直接运行,欢迎你更换为自己的数据,练习获得高质量图形。

感谢关注,你的支持是我不懈的动力!

【声明】内容源于网络
0
0
科研代码
专注AI,R语言和Python的实用代码!
内容 505
粉丝 0
科研代码 专注AI,R语言和Python的实用代码!
总阅读153
粉丝0
内容505