参考资料:小红书、知乎、日常翻阅论文多积累。
生信相关可视化图表参考:Single Cell绘图【肘部图、PCA、UMAP、tSNE、热图、小提琴图、等高线图、密度图、火山图、山脊图、和弦图、GSEA富集图】
配色
参考网站
常见搭配
小红书@科研百味:
scAgents的一张配图(笔者自配):
1 | morandi_colors = { |
prompt
1 | 你是科研论文配图大师,擅长设计图表、配色、写python代码画图。 |
icon素材
参考网站
神经网络类绘图素材:
链接: https://pan.baidu.com/s/1CUkOiQz3YI8gdvYSMJR77w?pwd=9yab 提取码: 9yab
流程图
总体workflow
- 先把内容输入gpt,让gpt设计几个版本供自己参考布局。
- 图是撑满的、方形结构。常见布局类型见下例。
- 模块配色,统一黑白风格/同色系渐变彩色风格/红黄蓝绿经典对比色。
- 步骤标题用圆角框套叠,调整弧度。
eg:
AI Scientist的流程图:
CellForge的流程图:

GETER的流程图: 原文 (有点松散了,主要学习底色配色)
含LLM对话展示的流程图: 原文
具体流程组件参考流程图: 原文 (有一点点密)
模块详细架构
- 对应模块找对应icon(标题、专家小人、任务内容等),风格统一。
- svg格式可以换色,注意色系统一
- 适当添加输入输出的框,里面放例子。
- 框里套框,加一个合适的底色凸显内容。
- 靠字体大小粗细与宽度间隔区分,关系更紧密的内容靠的更近。
- 核心卖点必须放大,足够突出。
- 如果整体架构图有用底色区分模块(如整体中Module B为橙色),后续单独模块的配图颜色应统一于整体图(单一Moulde B详细图选择橙色系)。
eg:
Popper 的流程图对话框示例:
神经网络时序等组件类 的流程图示例:(这里的矩形ppt绘制/现成ppt素材库)
ppt绘制技巧
- 善用组合键与取消组合。
- 善用置于顶层、置于底层,尤其是调整文本框背景色的时候。
- 一些图形可以利用基础图形图标组合/遮挡创造出来。
结果可视化图表
柱状图
Bar Chart
作用
柱状图用于比较不同类别或组之间的数值大小,能够直观地展示数据的分布和对比关系。
参数
x:指定 x 轴的类别或组别,通常是离散的文本标签或分类变量。height:指定每个柱子的高度,表示对应的数值大小。width:指定柱子的宽度,默认值通常为 0.8,可通过调整该值改变柱子之间的间距和整体布局。bottom:指定柱子的起始位置,默认为 0,可用于堆叠柱状图等场景。align:指定柱子的对齐方式,默认为'center',也可选择'edge'。color:指定柱子的颜色,可以是单一颜色或颜色列表,用于区分不同的类别或组。
示例代码
1 | import matplotlib.pyplot as plt |
散点图
Scatter Plot
作用
散点图用于展示两个变量之间的关系,可以揭示数据的分布模式、相关性以及异常值等。
参数
x:指定 x 轴的数值变量。y:指定 y 轴的数值变量。s:指定点的大小,默认值通常为 20,可以是单一数值或数组,用于表示第三个变量的大小。c:指定点的颜色,默认为'blue',可以是单一颜色、颜色列表或数值数组(用于颜色映射)。marker:指定点的形状,默认为'o',可选择如','、'.'、's'、'P'等。alpha:指定点的透明度,默认为 1,可用于处理重叠点的可视化问题。
示例代码
1 | import seaborn as sns |
高级用法
- 添加回归线:
1 | # 在散点图上添加回归线 |
- 添加置信区间:
1 | # 添加置信区间 |
- 多子图展示:
1 | # 创建多个子图 |
- 添加核密度估计:
1 | # 添加核密度估计 |
- 自定义样式:
1 | # 设置 seaborn 样式 |
饼图
Pie Chart
作用
饼图用于展示各部分占整体的比例关系,强调各分类在总量中的占比情况。
参数
x:指定各部分的数值大小,决定了饼图中各扇形的面积占比。labels:指定各部分的标签,用于标识每个扇形代表的分类。explode:指定各扇形的偏移距离,默认为None,可用于突出显示某个部分。colors:指定各扇形的颜色,默认为 Matplotlib 的默认颜色循环,可以是颜色列表。autopct:指定在扇形内部显示的文本格式,如'%1.1f%%'用于显示百分比。startangle:指定饼图的起始角度,默认为 0,用于调整饼图的起始方向。
示例代码
1 | import matplotlib.pyplot as plt |
eg:
雷达图
Radar Chart
作用
雷达图用于展示多维数据的各个特征值,能够直观地比较不同样本在多个变量上的表现,常用于性能评估、特征分析等场景。
参数
data:指定每个样本在各个特征上的数值。labels:指定各个特征的标签,用于标注雷达图的轴。radar_range:指定每个特征的数值范围,默认通常为[0, 100],可根据实际数据调整,以确保数据在合理范围内展示。color:指定雷达图填充的颜色,默认为'blue',通过透明度和渐变效果展示不同样本的覆盖范围。fill:指定是否填充雷达图的区域,默认为True,用于突出样本的综合表现区域。alpha:指定填充区域的透明度,默认为 0.25,方便多个雷达图叠加时观察重叠区域。
示例代码
1 | import numpy as np |
箱线图
Boxplot
作用
箱线图用于展示数据的分布特征,包括中位数、四分位数、异常值等,能够快速识别数据的中心位置、离散程度以及异常值情况。
参数
data:指定输入数据,可以是数组或数组列表,用于绘制一个或多个箱线图。vert:指定箱线图的方向,默认为True(垂直),设置为False时为水平方向。widths:指定箱体的宽度,默认为 0.5,对于水平箱线图则是箱体的高度。patch_artist:指定是否使用PatchArtist绘制箱体,默认为False,设置为True时可以自定义箱体的颜色和样式。sym:指定异常值的标记样式,默认为'b+',可指定颜色和标记形状。whis:指定须的长度,默认为 1.5,表示须的范围是四分位距的 1.5 倍,超出此范围的值被视为异常值。
示例代码
1 | import matplotlib.pyplot as plt |
ROC 曲线
ROC Curve
作用
ROC 曲线用于评估二分类模型的性能,通过绘制真正例率与假正例率之间的关系,能够直观地展示模型在不同阈值下的分类能力,帮助选择最优的分类阈值。
参数
fpr:假正例率数组,表示在不同阈值下模型将负类错误分类为正类的比例。tpr:真正例率数组,表示在不同阈值下模型正确识别正类的比例。roc_auc:ROC 曲线下的面积(AUC),用于量化模型的整体性能,值越大表示模型性能越好。label:图例标签,默认为None,用于标识不同模型或条件下的 ROC 曲线。color:曲线的颜色,默认为'blue',可通过指定颜色参数区分多条曲线。lw:线宽,默认为 2,可根据需要调整曲线的粗细以增强可视化效果。
示例代码
1 | import numpy as np |
桑基图
Sankey Diagram
作用
桑基图用于展示数据的流向和转换关系,能够直观地呈现不同节点之间的流量或转移情况,常用于能源流向、资金流动、用户转化等场景。
参数
data:指定节点之间的流量数据,通常为包含源节点、目标节点和流量的列表或 DataFrame。nodeWidth:指定节点的宽度,默认通常为 20,可根据需要调整节点的大小以适应不同数据规模和布局。nodePadding:指定节点之间的间距,默认通常为 10,用于避免节点重叠,确保图表的可读性。splinePadding:指定流向曲线与节点之间的距离,默认通常为 8,用于调整曲线的形状和布局。colors:指定节点的颜色,默认为'd3.schemeCategory10',可通过颜色映射或自定义颜色列表区分不同节点类别。marginTop、marginRight、marginBottom、marginLeft:指定图表的上、右、下、左外边距,默认通常为 0,可根据需要调整图表在容器中的位置和布局。
示例代码
1 | from bokeh.plotting import figure, show, output_file |
网络图
Network Graph
作用
网络图用于展示实体之间的关系和连接结构,能够直观地呈现复杂系统中的交互关系,如社交网络、分子相互作用网络等。
参数
nodes:指定网络中的节点,可以是节点的列表或包含节点属性的列表。edges:指定节点之间的连接关系,通常为包含源节点和目标节点的列表或包含权重的列表。node_size:指定节点的大小,默认通常为 300,可根据节点的重要性和数据属性进行调整,如按度中心性大小设置节点尺寸,突出关键节点。node_color:指定节点的颜色,默认为'skyblue',可以是单一颜色或颜色列表,用于区分不同类型的节点或根据节点属性映射颜色。edge_color:指定边的颜色,默认为'black',可用于区分不同类型的关系或表示边的权重。width:指定边的宽度,默认为 1.0,可根据边的权重进行调整,反映关系的强弱。edge_cmap:指定边的颜色映射,默认为None,用于根据边的权重或其他属性进行颜色编码,增强关系的可视化效果。style:指定边的线条样式,默认为'solid',可选择如'dashed'、'dotted'等,用于区分不同类型的边。
示例代码
1 | import networkx as nx |


