论文图需要配色时,最省事的办法是先看实际效果,再复制一组顺眼的色值。这里整理了五组传统色配色,覆盖折线、柱状、散点和面积图,可以直接放进 Matplotlib 使用。

Summary

五组配色共 25 个色值,选中后复制到绘图代码即可。

配色推荐

第一组以靛青、朱红和赭黄为主,颜色鲜明,适合多条折线、分组柱状图等需要清楚区分类别的图。

第二组以橘色、淡蓝和陶土色为主,整体柔和温暖,适合堆叠柱状图和组成结构图。

第三组由桃红、青绿和浅粉构成,画面轻快,放在散点图、分类对比图里比较醒目。

第四组以紫色、粉色和豆绿搭配浅色背景,适合堆叠面积图,也适合需要柔和层次的图。

第五组用藏蓝作为主色,其余四种浅绿作辅助,适合突出一条主曲线,同时保留多条背景曲线。

浅米色在白底上存在感较弱,更适合背景区域、网格线和辅助填充。画数据时优先使用每组前面的颜色。

复制色值

COLOR_SCHEMES = {
    "青绯": ["#436C85", "#B73F42", "#DE9960", "#82B29B", "#EEE6CB"],
    "陶土": ["#E76727", "#A8C3D1", "#A57E74", "#E9B693", "#EED7C6"],
    "桃青": ["#DE476A", "#76AEA6", "#D79E8F", "#E5D2C4", "#F0E0D3"],
    "藕紫": ["#7D5A8A", "#DE7294", "#90BBAA", "#E6D2C2", "#F0E0D3"],
    "青瓷": ["#165188", "#BFCF61", "#9FCBC3", "#BFD3BC", "#DDDAB4"],
}

需要让 Matplotlib 自动按顺序取色,可以把其中一组设成当前坐标轴的颜色循环。

from cycler import cycler
 
colors = COLOR_SCHEMES["青绯"]
ax.set_prop_cycle(cycler(color=colors))

之后正常调用 ax.plot()ax.scatter()ax.bar(),颜色会依次使用。

放进图里是什么效果

相关阅读

如果图中还需要同时显示中文、英文和公式,可以继续阅读 matplotlib 里如何设置中英文混排