前些天跟朋友老赵参加学术会议,吃饭的时候,社交达人老赵新加的朋友突然来一句:“NC 那么水,还发它干嘛?”我当时差点没忍住笑出来。老实说,科研圈这种“吃不到葡萄说葡萄酸”实在太常见了。你让他说一句实话:如果有机会挂在 NC 上,哪怕是第十作者,他可能比谁都跑得快。 的确有很多大团队的人是不喜欢NC的,但是吧~对于大多数学生和老师来说,发NC也是比较很成功的业绩了,咱微信公众号就别玩知乎那种年薪百万的风格了,这里是现实主义者的交流平台!
铺垫了这么多,我想说:NC 的审美和图形风格真的很稳、很耐看。尤其是它的配色、留白、图片组合方式,都值得初学者学一学。你不用追求各种华丽的包,反而是 NC 这种“干净利落”的风格,可以让科研图瞬间提升质感。
今天我们就用 R 语言,来复刻 NC 风格的三类常见图形:柱状图、箱线图和热图。代码简单易懂,适合初学者上手。
1 我为什么推荐初学者对齐 NC 风格?
一个很现实的点: 初学者的审美很容易被网图、教程图、五颜六色的主题带偏。蓝紫渐变、彩虹色、荧光色……看着“酷炫”,但科研图的关键目的是“传递清晰信息”,不是“炫技”。
而 NC 的三大优点刚好能让你快速建立正确审美:
- 配色克制但有力量
常见的蓝—绿—红体系,低饱和、对比强,看久了不累。 - 布局简单但信息清晰
两栏排版、均匀留白、图例固定位置,整体观感特别干净。 - 风格统一不用乱想
字体、线条粗细、图例样式统一,审美立马提升一档。
说实话,我自己做图的时候,也常常对照 NC 的风格来调颜色、调留白,尤其在组合多图(A、B、C、D)的场景下,NC 的排版逻辑真的很值得模仿。
2 三类图,带你从零复刻 NC 的“干净风”
为了演示清楚,我用最经典的 iris 数据做三个图:柱状图、箱线图、热图。 所有代码都尽量保持简洁,风格对齐 NC:低饱和配色 + 统一字体 + 清爽留白。
2.1 NC 风格柱状图(Bar Plot)
思路很朴素: 均值 + 标准差 + 稳重配色 + 干净背景。
library(ggplot2)
library(dplyr)
df_bar <- iris %>%
group_by(Species) %>%
summarise(mean_SL = mean(Sepal.Length),
sd_SL = sd(Sepal.Length))
p_bar <- ggplot(df_bar, aes(Species, mean_SL, fill = Species)) +
geom_col(width = 0.6, color = "black", size = 0.3) +
geom_errorbar(aes(ymin = mean_SL - sd_SL, ymax = mean_SL + sd_SL),
width = 0.15, size = 0.3) +
scale_fill_manual(values = c("#4C72B0", "#55A868", "#C44E52")) +
theme_bw(base_size = 13) +
theme(
panel.grid = element_blank(),
legend.position = "none",
axis.title = element_text(size = 14, face = "bold"),
axis.text = element_text(size = 12)
) +
labs(x = "", y = "Mean Sepal Length")
p_bar
2.2 NC 风格箱线图(Boxplot)
箱线图的关键是:线条细一点、颜色淡一点、背景干净一点。
p_box <- ggplot(iris, aes(Species, Sepal.Length, fill = Species)) +
geom_boxplot(width = 0.6, outlier.size = 1.5, size = 0.3, color = "black") +
scale_fill_manual(values = c("#4C72B0", "#55A868", "#C44E52")) +
theme_bw(base_size = 13) +
theme(
panel.grid = element_blank(),
legend.position = "none",
axis.title = element_text(size = 14, face = "bold"),
axis.text = element_text(size = 12)
) +
labs(x = "", y = "Sepal Length")
p_box
2.3 NC 风格热图(Heatmap)
热图是很多学生最容易做得“花”的图。NC 的风格反而更简洁: 蓝 → 白 → 红,对比清晰但不刺眼。
library(pheatmap)
mat <- scale(iris[, 1:4])
rownames(mat) <- paste0("S", 1:nrow(mat))
pheatmap(mat,
color = colorRampPalette(c("#4575B4", "white", "#D73027"))(100),
cluster_rows = TRUE,
cluster_cols = TRUE,
border_color = NA,
show_rownames = FALSE,
fontsize = 12,
fontsize_col = 12)
小结
很多人嘴上说 NC 水刊,但真给他机会,别说一作,十作都愿意上。我喜欢 NC 的一个主要原因,就是它的图形风格稳定、专业、不乱。对于初学者来说,模仿 NC 是最快提升审美的方式,成本最低但效果最好。快去练习起来吧!

