Academic Figure Style & Layout Standards (CCC Persona)
This skill defines the mandatory design, layout, and narrative rules for creating scientific figures in top-tier journals (e.g., Cement and Concrete Composites, Cement and Concrete Research, Nature family).
0. Universal Mandatory Color Palette & Contrast Selection Rules (全图强制统一色系与对比度选取原则)
核心法则(全图默认强制执行): 所有学术图表(包括散点图、折线图、柱状图、直方图、时序曲线、等高线、SHAP分析等)必须且只能遵循以下统一的 6 阶蓝红渐变色阶系统,辅以专属的高亮亮黄色:
1. 基础 6 阶蓝红标准色板 (6-Step Blue-to-Red Palette)
BLUE_RED_6 = [
"#2F6AB9", # 阶1: 深海蓝 (Dark Sapphire Blue - 极低值/基线)
"#69AADB", # 阶2: 浅海蓝 (Light Sky Blue - 次低值)
"#97C6E6", # 阶3: 柔和冰蓝 (Soft Ice Blue - 中低值)
"#F6B7B2", # 阶4: 柔和浅红 (Soft Peach Red - 中高值)
"#EA7B7D", # 阶5: 珊瑚深粉 (Coral Rose - 次高值)
"#F14040", # 阶6: 绯红强色 (Crimson Vivid Red - 极高值/峰值)
]
HIGHLIGHT_YELLOW = "#FEC211" # 专属特别高亮/趋势线/最优标注亮黄色
2. 颜色数量选取与最大对比度策略 (Color Selection & Maximum Contrast Strategy)
- 物理量含义映射:
- 蓝色系(
#2F6AB9系列):严格代表参数值低(Low Value)、物理量基线(Baseline)、训练集、未受损状态等; - 红色系(
#F14040系列):严格代表参数值高(High Value)、实测/目标对比值、测试集、高应力/高温/高损伤等;
- 蓝色系(
- 2 种颜色需求(最常用):
- 必须优先取首尾两端最大对比度色:
#2F6AB9(深海蓝)与#F14040(绯红强色)。
- 必须优先取首尾两端最大对比度色:
- 3~5 种颜色需求(从两头向中间渐进扩展,确保对比度最大化):
- 3 种颜色:
#2F6AB9(低值/首端)、#97C6E6(中间值)或#5D6D7E(中性灰)、#F14040(高值/尾端); - 4 种颜色:
#2F6AB9(阶1)、#69AADB(阶2)、#EA7B7D(阶5)、#F14040(阶6); - 5 种颜色:
#2F6AB9(阶1)、#69AADB(阶2)、#97C6E6(阶3)、#EA7B7D(阶5)、#F14040(阶6);
- 3 种颜色:
- 6 种颜色需求(连续/阶梯物理参数分布):
- 严格按数值从低到高依次完整映射 6 个色阶:
["#2F6AB9", "#69AADB", "#97C6E6", "#F6B7B2", "#EA7B7D", "#F14040"];
- 严格按数值从低到高依次完整映射 6 个色阶:
- 特别突出/高亮指示需求:
- 当需要对某个关键数据点、最优模型 Callout、核平滑趋势线或核心结论进行特别强调时,统一且唯一采用
#FEC211亮黄色(半透明无黑色描边或专属高亮外框)。
- 当需要对某个关键数据点、最优模型 Callout、核平滑趋势线或核心结论进行特别强调时,统一且唯一采用
1. Page Layout & Compactness (版面紧凑度与间距)
- No Page-Wasting Single Figures: A single figure should never occupy an entire page unless it is a 9-panel complex diagnostic map. Use compact aspect ratios ($4:3$ or $16:9$).
- Subfigure Grid Optimization: Group related panels into $1\times 3$, $2\times 2$, or $3\times 3$ subfigure grids using Matplotlib
subplotsor LaTeXsubfigure. Set explicitwspace($0.2\sim 0.3$) andhspace($0.25\sim 0.35$). - Margin Compliance: Ensure all figure labels, colorbars, and legend text fit strictly within standard journal margins ($2.0\text{--}2.5,\text{cm}$).
2. Text-First Narrative Flow & Anti-Blank Space (先文后图,排版节奏与严禁滥用 FloatBarrier)
- Forbidden Rule (忌讳): Never place two large figures sequentially back-to-back without analytical paragraphs between them ("图堆图"属于论文排版大忌).
- Text-First Principle: Every figure float (
\begin{figure}) and table float (\begin{table}) must be preceded by 1–2 paragraphs of quantitative analysis explaining:- What evidence the figure/table presents;
- The key metrics or trend transitions;
- The physical mechanism or engineering implication.
- Independent Narrative for Every Table and Figure (一表一文、一图一文,严禁图表合并笼统带过):
- 一图一叙事原则(One Figure, One Story):每个表格(Table)与每个图表(Figure)必须各自拥有独立的专属深度分析段落。严禁出现“如 Fig. 4 与 Fig. 6 所示……”这种跨多图混合、泛泛而谈的粗糙写法。
- 每张图在正文中必须遵循标准的四步分析闭环:
- 引导看图:明确引出图表(如“基于 Multi-Otsu 分割得到的水泥浆体三相组成随水化时间演化如图 4 所示……”);
- 定量读数:从图表与各子图中提取具体数值、变化幅度、特征拐点(如“体积分数由 23 h 的 $23.13%$ 显著降至 668 h 的 $13.01%$”);
- 机理解释:结合材料科学或物理机制深入阐释现象背后的原因(如“熟料溶解、C-S-H 凝胶沉淀导致毛细孔道充填细化”);
- 小结与过渡:得出该图的核心结论,并自然引出下一阶段的分析或后续图表。
- 表格分析段落:重点聚焦多维度分层数据(Subsets)、横向基线模型衬托对比(突出当前模型在恶劣工况下的断层优势);
- 图表分析段落:必须紧密结合各子图编号(如 (a), (b), (c), (d))逐面板展开细致拆解,详细说明瞬态时序演化轨迹、单步变化量捕捉、1:1 散点对角线拟合精度以及分层误差柱状图分布。
- Caption vs. Body Text Division of Labor (图题注自解释性与正文深度分析的严格职责分工):
- 图题注(Caption - Self-contained & Reviewer-Intuitive 原则):图题注的职责是**“让土木与工程审稿人脱离正文单独看图也能一眼看懂图的物理内容与核心结论”**。包括:
- 简洁精炼的主标题(告诉读者图的主题),严禁堆砌生僻算法黑话(如严禁写 conflict-aware gradient stiffness diagnosis manifold,一律写成直观明了的表达如 Loss weighting procedure: evaluating gradient influences prior to training to establish fixed bounds);
- 各子图面板的准确物理含义(如
(a) 三相体积分数的堆叠面积演化; (b) 孔隙率与水化产物双轴曲线); - 关键测试条件或控制参数(如材料配合比 $w/c=0.35$、边界条件);
- 严禁在 Caption 中堆砌大段机理推导、长篇结论或重复正文叙述。
- 正文描述(Body Text - 深度剖析):承担全部的定量对比、数据挖掘、物理机理解释与逻辑推进。正文必须显式引用具体子图编号(如
Fig. 4a,Fig. 4b)。
- 图题注(Caption - Self-contained & Reviewer-Intuitive 原则):图题注的职责是**“让土木与工程审稿人脱离正文单独看图也能一眼看懂图的物理内容与核心结论”**。包括:
- Strict Anti-FloatBarrier Abuse (严禁滥用 FloatBarrier 导致双栏空洞):
- 严禁在
\section{...}之前或段落间盲目使用\FloatBarrier。在双栏 LaTeX (如elsarticle) 中,\FloatBarrier会强制清空浮动队列,极易导致上一页右栏大面积抛空(Blank Column)或产生单行文本后全页留白。
- 严禁在
- Double-Column Figure (
figure*) Placement Anchor:figure*跨栏大图只能置于页顶。若将其写在\subsection{...}段落中间,会导致小节标题与文本被切断并产生巨型空白洞。正确做法是将figure*源码直接调整至\section{...}头部或页面起点,交由 LaTeX 浮动引擎自然浮动至页顶。
- Matplotlib / SHAP MathTeX Subscript Rule:
- 在 Python 绘图脚本中,所有带下标的物理量/特征标签(如 $\mu_e$, $\sigma_c$, $\varepsilon_c$)在传给 Matplotlib 或 SHAP
summary_plot时,必须显式声明为 Raw LaTeX Math 格式(如r"$\mu_e$"),严禁使用普通 Unicode 文本(如"μe")。
- 在 Python 绘图脚本中,所有带下标的物理量/特征标签(如 $\mu_e$, $\sigma_c$, $\varepsilon_c$)在传给 Matplotlib 或 SHAP
3. Bar Chart Aesthetics & Typography (柱状图设计与字体排版标准)
3.1 No Decorative Callout Boxes (禁止装饰性圆角标签框)
- 结论标注默认采用简短、无边框的文本,直接靠近对应数据点、柱顶或趋势线。
- 禁止使用大面积圆角
bbox、彩色实心标签框或演示稿式气泡框;它们会遮挡数据并破坏论文图的视觉层级。 - 如确实需要突出核心结论,只允许使用 CCC 亮黄色
#FEC211的短文本、细线或小型箭头,且不能形成大块背景。 - 默认不在图内添加额外结论 callout;关键结论应放在 caption 或正文中。只有用户明确要求时才加入短标签。
3.2 Compact 3D Panel Labels (三维结构图面板标签简洁化)
3D 结构对比图禁止在每个面板顶部堆叠长句式标题;结构本身必须是视觉主体。
每个面板只保留底部居中的短标签,例如
(a) Source,(b) Role-only,(c) Role + mechanics,(d) Final optimum。网格、视角、尺度和色条在同一组面板中必须保持一致,避免标签和装饰元素分散读者注意力。
Universal Typography (全图强制采用 Times New Roman 字体):
- 图中所有文本(包括轴标题、刻度标签、图例、数据标注、高亮 Callout、子图题注)必须统一采用 Times New Roman 字体(
plt.rcParams['font.family'] = 'Times New Roman',plt.rcParams['font.serif'] = ['Times New Roman', 'DejaVu Serif', 'serif'],数学公式设置plt.rcParams['mathtext.fontset'] = 'stix')。
- 图中所有文本(包括轴标题、刻度标签、图例、数据标注、高亮 Callout、子图题注)必须统一采用 Times New Roman 字体(
Subpanel Captions Mandatory at Bottom Centered (多子图/组图题注 (a)/(b)/(c) 必须置于各子图正下方居中):
- 严禁顶部堆叠或偏离居中:严禁将
(a),(b),(c)题注、子图标题或顶角英文字母(如A,B)放置在子图顶部。 - 统一居中置底标准:所有横向并排或网格排布的多子图(如 $1\times 2$, $2\times 2$, $2\times 3$, $2\times 4$),各子图题注必须统一置于该子图 x 轴下方居中位置:
ax.text(0.5, -0.26, "(a) Subplot Description", transform=ax.transAxes, ha="center", va="top", fontsize=8.0, fontweight="bold", fontfamily="Times New Roman") - 留足底部间距:生成图形时必须通过
fig.tight_layout(rect=[0, 0.05, 1, 1])或subplots_adjust(bottom=0.20~0.25)预留充分的底部空间,杜绝文字被图片边界裁切。
- 严禁顶部堆叠或偏离居中:严禁将
White Interior / Hollow Center (柱体留白/白底):
- Never use heavy, dark solid block fills for bars.
- Set
color='white'(or very light pastel fill) with bold colored borders (edgecolor=COLOR,linewidth=1.8~2.0). - Subtle academic hatch patterns (
hatch='//',\\\\,..); all bar hatch/fill lines must be white (hatch.color='white') so the pattern remains clean and consistent across CCC figures.
Palette Coordination (同组配色一致):
- Match bar border colors strictly to the line plots or scatter markers in adjacent panels within the same figure group.
Universal Inward Tick Marks & Clean Boxed Spines (全图强制刻度线朝内、上/右边框刻度关闭规范):
- 刻度线朝内强制规则:所有学术图表(包括折线、散点、柱状、雷达、SHAP、等高线等)的刻度线必须严格全部朝内(
direction='in')。Matplotlib 默认的朝外刻度(out)属于非专业草稿风格,必须全局覆写为朝内。 - 上框线与右框线刻度关闭(No Top and Right Ticks):四周矩形全围合边框必须保留(
top,bottom,left,right边框线宽 $0.8\sim 1.0,\text{pt}$,颜色中性深灰或黑色#222222),但顶部和右侧边框一律关闭刻度线(除非包含显式ax.twinx()双坐标轴):
在单个子图内设置时统一使用:plt.rcParams['xtick.direction'] = 'in' plt.rcParams['ytick.direction'] = 'in' plt.rcParams['xtick.top'] = False plt.rcParams['ytick.right'] = False plt.rcParams['xtick.minor.visible'] = False plt.rcParams['ytick.minor.visible'] = Falseax.tick_params(direction='in', top=False, right=False)。确保刻度线仅在左轴与底轴精致内向展示,上/右边框保持干净利落。
- 刻度线朝内强制规则:所有学术图表(包括折线、散点、柱状、雷达、SHAP、等高线等)的刻度线必须严格全部朝内(
Callout Annotations & Arrow Optimization (结论高亮框与指引箭头规范):
- 核心增益指标直接在柱体上方或内部配置高对比度 Callout 框(
bbox=dict(boxstyle="round,pad=0.35", fc="#EFF6FF", ec=COLOR, lw=1.2))。 - 指引箭头严禁交叉乱穿:箭头必须采用清晰利落的垂直单向指引(如从高亮框垂直指向柱顶
xytext=(x, y_high), xy=(x, y_bar))或规整弧线,严禁箭头横跨其他柱体、穿过数据数值或遮挡图例。对于超高柱体,可直接将 Callout 徽章内嵌于空心柱体内部居中展示。
- 核心增益指标直接在柱体上方或内部配置高对比度 Callout 框(
4. 3D Volumetric Rendering Consistency (三维渲染一致性)
- 3D Depth & Lighting: Enhance 3D perspective depth by adding subtle bounding boxes and axis grids.
- Color Uniformity Across Subfigures (彻底消除多图色差):
- For multi-panel 3D renders (e.g. comparing 7 hydration ages), set explicit single hex colors for pore spaces (e.g. Electric Sapphire Cyan
#00A3FF). - Disable auto-shading (
shade=Falsein Matplotlib 3D surfaces/voxels) to prevent lighting direction from altering hex colors across subfigures.
- For multi-panel 3D renders (e.g. comparing 7 hydration ages), set explicit single hex colors for pore spaces (e.g. Electric Sapphire Cyan
5. Durability & Physical Storytelling (材料与耐久性故事主线)
- Focus on Engineering Outcomes: In material/durability papers (CCC persona), do not stop at abstract coefficients ($D_e/D_0$). Always connect transport bias to concrete engineering consequences (e.g., chloride ingress depth $C(x,t)$, steel depassivation initiation time $T_{\text{crit}}$).
- Evidence Chain Structure: Align figures sequentially along a 5-step evidence chain:
Microstructure -> Geometric Metrics -> Steady Transport -> Transient Ingress -> Service Life Impact.
6. Research Intake & Literature Search Protocol (科研前置文献检索规范)
- Mandatory Pre-project Requirement (新项目启动前置流程):
- 每次启动新的科研课题或项目之前,必须首先总结并输出该领域的核心关键词。
- 使用关键词前往 Web of Science (WOS) / OpenAlex / EuropePMC 搜索并筛选相关高水平文献。
- 下载带摘要的 BibTeX 条目 (
.bib文件) 并保存至本地项目目录(如paper/references.bib或dataset/literature/)。 - 对本地带摘要的文献条目进行系统化提炼与分析,梳理出研究空白(Research Gap)、已有方法局限性及本研究的切入点后,方可开展具体的代码与实验设计。
7. Radar Chart Design & Metric Polarity Alignment Standards (学术雷达图设计与极性统一规范)
- Monotonic Area-Performance Rule (面积单调性法则 / 外圈最优原则):
- 在学术雷达图中,多边形所包围的几何面积必须严格单调反映模型的综合优越性(面积越大 = 综合性能越强)。
- 雷达图的最外圈(归一化刻度 1.0)必须严格对应最佳性能点,中心点(刻度 0.0)必须严格对应最劣/失效性能点。
- Metric Polarity Inversion (极性反转与正负指标归一化):
- 正向指标(越大越好,如 $R^2 \uparrow$、准确率 $\mathrm{Acc} \uparrow$、相关系数 $r \uparrow$、鲁棒性指标): 直接正向归一化至 $[0, 1]$: $$\text{Score} = \frac{\text{Value} - \text{Min}}{\text{Max} - \text{Min}}$$
- 负向/误差指标(越小越好,如 $\mathrm{RMSE} \downarrow$、$\mathrm{MAE} \downarrow$、计算延迟 $\mathrm{Latency} \downarrow$、滞后步长误差): 必须执行反向映射(Inverted Scaling): $$\text{Score} = \frac{\text{Max} - \text{Value}}{\text{Max} - \text{Min}} \quad \text{或} \quad \text{Score} = 1 - \frac{\text{Value} - \text{Min}}{\text{Max} - \text{Min}}$$ 确保误差越小、耗时越低、偏离度越低的模型,其多边形顶点向最外圈 1.0 扩张,而严重误差被压缩在中心 0.0 区域。
- Explicit Metric Direction Notation (各轴方向指示与物理量标注):
- 每个雷达轴标签必须显式标注指标极性方向符号(如
$\uparrow$或$\downarrow$,或使用逆误差形式如$\mathrm{RMSE}^{-1} \uparrow$),严禁使用无方向概念的抽象模糊英文。
- 每个雷达轴标签必须显式标注指标极性方向符号(如
- Individual Axis Scaling & Callout (独立轴刻度与可解释性):
- 避免让审稿人产生“无量纲失真”误解,各轴归一化基准区间必须在图表附注或正文中透明声明;对于关键瓶颈轴,需在轴端或顶点清晰标注真实物理量级(如标注最佳值与基线值)。
- Subpanel Captions at Bottom (题注必须置于底部居中):
- 雷达图子图编号
(a) ...必须置于雷达图正下方居中(ax.text(0.5, -0.25, '(a) ...', transform=ax.transAxes, ha='center', va='top')),预留充足底部间距(pad_inches=0.08),严禁顶部堆叠或偏离居中。
- 雷达图子图编号
8. SHAP Dependence & Feature Interaction Scatter Standards (SHAP 依赖与非线性特征交互图标准)
- Unified 6-Step Blue-to-Red Colormap (标准 6 阶蓝红渐变色带):
- 散点图的次级交互特征(Secondary Interaction Feature)颜色映射与侧边 Colorbar 必须严格采用 6 阶科学蓝红渐变:
from matplotlib.colors import LinearSegmentedColormap BLUE_RED_6 = ["#2F6AB9", "#69AADB", "#97C6E6", "#F6B7B2", "#EA7B7D", "#F14040"] blue_red_cmap = LinearSegmentedColormap.from_list("BlueRed6", BLUE_RED_6, N=256)
- 散点图的次级交互特征(Secondary Interaction Feature)颜色映射与侧边 Colorbar 必须严格采用 6 阶科学蓝红渐变:
- Colorbar Tick & Padding Optimization (色条微型紧凑化与短刻度规范):
- 色条必须使用
make_axes_locatable(ax)依附于子图右侧,宽度紧凑(size="4.0%",pad=0.05)。 - 色条刻度线长必须改短(Short Ticks):严禁用过长、粗糙的默认刻度,必须通过
cbar.ax.tick_params(labelsize=6.0, length=1.8, width=0.5, pad=1)缩短刻度线长度至 $1.5\sim 2.0,\text{pt}$,保证色带边缘精致利落。
- 色条必须使用
- Golden Trendline without Border (亮黄平滑拟合趋势线):
- 在散点图上方叠加高斯加权核平滑趋势线(Gaussian Kernel Smoothing Trendline),颜色固定采用亮黄色
#FEC211。 - 严禁使用黑色描边外框,设置半透明度
alpha=0.5,线宽linewidth=2.0,确保既清晰指明整体非线性响应走势,又不遮挡底层散点分布。
- 在散点图上方叠加高斯加权核平滑趋势线(Gaussian Kernel Smoothing Trendline),颜色固定采用亮黄色
- Subpanel Bottom-Centered Lowercase Captions (子图编号全部小写并居中置底):
- 所有多子图编号必须严格采用小写
(a), (b), (c), (d), (e), (f), (g), (h)。 - 标题必须置于子图底部居中:
ax.set_title(f"({letter}) {feat_title}", fontsize=8.5, fontweight="bold", loc="center", y=-0.35)。
- 所有多子图编号必须严格采用小写
- Standard Python Implementation Template (标准绘图代码范例):
import matplotlib.pyplot as plt from matplotlib.colors import LinearSegmentedColormap from mpl_toolkits.axes_grid1 import make_axes_locatable import numpy as np BLUE_RED_6 = ["#2F6AB9", "#69AADB", "#97C6E6", "#F6B7B2", "#EA7B7D", "#F14040"] blue_red_cmap = LinearSegmentedColormap.from_list("BlueRed6", BLUE_RED_6, N=256) fig, axes = plt.subplots(2, 4, figsize=(12.0, 4.2)) axes_flat = axes.flatten() for idx, (x_vals, y_vals, c_vals, label_x, label_c, feat_name, letter) in enumerate(specs): ax = axes_flat[idx] # 1. 真实散点 sc = ax.scatter(x_vals, y_vals, c=c_vals, cmap=blue_red_cmap, s=8, alpha=0.65, edgecolors="none", zorder=2) # 2. 高斯核平滑 #FEC211 趋势线 (无描边,alpha=0.5) sort_mask = np.argsort(x_vals) x_s, y_s = x_vals[sort_mask], y_vals[sort_mask] x_line = np.linspace(x_s.min(), x_s.max(), 120) h = max((x_s.max() - x_s.min()) / 12.0, 1.0) w = np.exp(-0.5 * ((x_line[:, None] - x_s[None, :]) / h) ** 2) y_line = np.sum(w * y_s[None, :], axis=1) / np.maximum(np.sum(w, axis=1), 1e-6) ax.plot(x_line, y_line, color="#FEC211", linewidth=2.0, alpha=0.5, zorder=4) # 3. 轴标签与底部居中小写题注 ax.axhline(0, color="gray", linestyle="--", linewidth=0.7, zorder=1) ax.set_xlabel(label_x, fontsize=7.5, labelpad=2) ax.set_ylabel(f"SHAP Value for {feat_name}", fontsize=7.5, labelpad=2) ax.set_title(f"({letter}) {feat_name}", fontsize=8.5, fontweight="bold", loc="center", y=-0.35) ax.grid(True, linestyle=":", alpha=0.35) # 4. 紧凑色条与短刻度线 (length=1.8) divider = make_axes_locatable(ax) cax = divider.append_axes("right", size="4.0%", pad=0.05) cbar = fig.colorbar(sc, cax=cax) cbar.set_label(label_c, fontsize=6.8, labelpad=2) cbar.ax.tick_params(labelsize=6.0, length=1.8, width=0.5, pad=1) fig.tight_layout(pad=0.3, h_pad=0.4, w_pad=0.3)
7. Advanced Model Verification & Data Distribution Templates (模型验证与数据分布标准模板)
7.1 Strict Axis Tick Rule (全局刻度线铁律)
[!IMPORTANT] 绝对禁止在任何坐标轴出现顶部刻度线(Top Ticks)与未授权右侧刻度线(Right Ticks)! 任何出版级图表必须强制全局配置:
plt.rcParams['xtick.top'] = False plt.rcParams['ytick.right'] = False ax.tick_params(axis='both', which='major', direction='in', top=False, right=False) ax.tick_params(axis='both', which='minor', direction='in', top=False, right=False)仅在双 Y 轴(
ax.twinx())场景下,右侧坐标轴允许显示专属于右侧度量的刻度线(如 $R^2$ 轴),此时双轴顶部依然严禁出现任何刻度线!
7.2 Conformal Prediction Interval Coverage Plot (plot_conformal_prediction_intervals.py)
- 适用场景:回归模型的不确定性量化(UQ)与经验覆盖率检验(Conformal Prediction Intervals)。
- 设计标准:
- 测试样本按实测真值单调升序排列,形成平滑递增的对角真值基线。
- 浅蓝透明包络带(
#90caf9, alpha=0.52)展示 $95%$ 预测区间 $[\hat{y} - q_{0.95}, \hat{y} + q_{0.95}]$。 - 空心蓝菱形(
#1976d2)标示点预测值;空心红圆圈(#e53935)标示实测真值。 - 红色叉号标记未被区间覆盖的失效样本(Uncovered failure)。
- 右下/左下设置独立方框量化指标面板:包含经验覆盖率 $\mathbf{EC}$、平均区间全宽 $\mathbf{MIW}$、$R^2$ 及 $\mathrm{RMSE}$。
- 运行命令:
python plot_conformal_prediction_intervals.py --output conformal_uq_standard
7.3 Sample-Wise Prediction Tracking & Residual Dynamics (plot_sample_tracking_residuals.py)
- 适用场景:全样本(训练集 + 测试集)序列微观跟踪、逐点拟合精度与残差分布(Residual dynamics)。
- 设计标准:
- 上方曲线:青色实线(
#00b4d8)为实测曲线(Experiment);深蓝实线(#1565c0)为模型预测曲线(Model prediction)。 - 分割线:黑色虚线(
linestyle='--')贯通上下,清晰划分训练集与测试集;底部安全空余区间标注灰色Training Set与Testing Set。 - 下方残差:珊瑚红圆点线(
#e53935,半透散点圆),直观展示逐样本偏差 $e_i = \hat{y}_i - y_i$。 - 灰色包络虚线标注最大正偏差与最大负偏差界限,右侧边距标注具体数值(如
+9.6,-13.2)。
- 上方曲线:青色实线(
- 运行命令:
python plot_sample_tracking_residuals.py --output sample_tracking_residuals_standard
7.4 Multi-Variable Feature Distribution Horizontal Stacked Bars (plot_feature_distribution_bars.py)
- 适用场景:多输入参数物理区间离散分布与样本量统计(如材料粒径、几何尺寸、力学参数及配比)。
- 设计标准:
- 水平对齐堆叠长条,总长对应样本总数(如
Number of specimens = 228或600)。 - 柔和莫兰迪/柔粉学术色带(杏粉、浅鼠尾绿、淡紫、奶油黄、浅天蓝、柔玫瑰粉)。
- 区间分割线顶部标注精确物理阈值切割点;色块内部居中显示本区间离散试件数(Counts)。
- 左侧纵轴双行排版:第一行为参数符号与物理单位,第二行为小字
Counts。 - 底部仅显示零点与总样本数刻度,极简无边框设计。
- 水平对齐堆叠长条,总长对应样本总数(如
- 运行命令:
python plot_feature_distribution_bars.py --output feature_distribution_bars_standard
7.5 Dual Y-Axis Multi-Metric Model Evaluation Bar Chart (plot_dual_axis_model_evaluation_bars.py)
- 适用场景:跨数据集划分(Training Set vs Testing Set)与多模型(如 Model A vs Model B)在多指标(MAE, RMSE, MAPE, $R^2$)下的综合横向性能比对。
- 设计标准:
- 左侧 Y 轴表征绝对/相对误差指标(MAE, RMSE, MAPE),右侧 Y 轴专用于决定系数 $R^2$(高对比皇家蓝轴线与刻度)。
- 柱体采用垂直线性渐变填充(Teal->White, Sky Blue->White, Orange->White, Red->White)搭配 $0.85\mathrm{pt}$ 精致边框。
- 柱顶标注数值($R^2$ 柱顶为深蓝色数值,误差柱顶为深灰/紫数值)。
- 柱体底座内部文字旋转 $90^\circ$ 竖排标注模型代号(如
TL,MLP)。 - 左上角 $2\times 2$ 规整图例,白色底色加深灰细边框。
- 运行命令:
python plot_dual_axis_model_evaluation_bars.py --output dual_axis_model_evaluation_bars_standard
7.6 Model Evaluation Matrix Heatmap Table (plot_model_evaluation_table_heatmap.py)
- 适用场景:多预测模型在多任务(如抗压强度、流动度)与双数据集(Train vs Test)下四大核心指标(MAE, RMSE, MAPE, $R^2$)的紧凑矩阵热图展示。
- 设计标准:
- 双板块红蓝对称布局(Dual Red-Blue Architecture):左侧
Train集合统一采用 CCC 经典深海蓝系,右侧Test集合统一采用 CCC 经典绯红系,板块间留有微空白间隔,直观建立训练集与测试集的鲜明学术对比。 - 表头层次分明:
Train表头采用 CCC 深海蓝(#1F4E79),Test表头采用 CCC 深绯红(#A81C1C),搭配纯白加粗文字(MAE,RMSE,MAPE, $\mathbf{R^2}$)。 - 单元格渐进收敛填充:
Train单元格填充 CCC 经典深海蓝-冰蓝连续渐变色阶(#FFFFFF$\rightarrow$#CFE2F7$\rightarrow$#2F6AB9);Test单元格填充 CCC 经典绯红-柔粉连续渐变色阶(#FFFFFF$\rightarrow$#FAD4D6$\rightarrow$#E63939);- 纯白细边框分隔(
linewidth=1.2),颜色深浅直观对应指标向“理想值(ideal value)”的收敛程度(误差类指标越接近0越深,$R^2$越接近1越深)。
- 最优模型黄金徽标双重聚焦:测试集最优决定系数 $R^2$ 强制以 CCC 专属标志性亮黄色边框(
#FEC211,linewidth=2.0)结合纯白加粗字体高亮醒目标出。 - 底部图例栏左右分区对称:左侧展示
Train Error与Train R^2(深海蓝渐变),右侧展示Test Error与Test R^2(绯红渐变),右端理想值对齐并在上方清晰标注ideal value。
- 双板块红蓝对称布局(Dual Red-Blue Architecture):左侧
- 运行命令:
python plot_model_evaluation_table_heatmap.py
7.7 Multilevel Parallel Categories Alluvial Sankey Diagram (plot_parallel_categories_sankey_ccc.py)
- 适用场景:多阶段配比参数与多目标性能之间的流向演化、多层级分类归属、帕累托解集(Pareto Front)物理权衡可视化。
- 设计标准:
- 7 个连续阶段竖轴,平滑三次贝塞尔多边形流带(
Path.CURVE4,dx = (x1 - x0) * 0.48)。 - CCC 经典学术三色:绯红强色(
#F14040,表征高强优先队列)、深海蓝(#2F6AB9,表征高流动/基线队列)、金黄高亮色(#FEC211,表征折衷平衡 Knee 点)。 - 节点矩形为极浅石板白底色(
#F8FAFC),细灰边框(#94A3B8),文字居中排列,留有充裕白边内边距。 - 底部配比参数与性能目标分别设置黑色水平分组框线(Bracket),标明
Mixture design parameters与Multi-objective performance。
- 7 个连续阶段竖轴,平滑三次贝塞尔多边形流带(
- 运行命令:
python plot_parallel_categories_sankey_ccc.py
7.8 6-Panel Composite Material and Property Distribution Plot (plot_six_panel_material_distribution.py)
- 适用场景:复合胶凝材料/无机灌浆材料多组分原材料分布与多目标力学/工作性演化复合多面板展示(Nature/Elsevier 顶刊经典 6 面板全景)。
- 设计标准:
- (a) 宏观水胶比与砂胶比:提琴图(Violin)+ 箱线图(Boxplot,白色底色,中位数深红粗线)+ 左侧抖动散点(Jittered Scatter)。
- (b) 基础胶凝基质(硅酸盐水泥占比 wt%):连续核密度估计曲线(KDE,浅蓝柔和半透填充)+ 底部红竖线 Rug 地毯标记。
- (c) 微量化学外加剂(减水剂 PCE、消泡剂 Defoamer、稳泡/增稠剂 VMA):抖动离散点阵 + 均值及标准差红色菱形误差棒(Mean $\pm$ SD)。
- (d) 地质聚合物前驱体与矿物掺合料(粉煤灰 FA、矿渣 GGBS、硅灰 SF):同轴重叠透明直方图(Histograms),清晰展现正偏态掺量级配。
- (e) 多龄期力学强度演化(1d, 3d, 7d, 28d):4 龄期连续半透明提琴图 + 紧凑箱线 + 数据散点。
- (f) 新拌工作性流动度分布:柱状图 + KDE 拟合平滑线 + 红色中位数虚线(如
Median: 307 mm)+ 金黄色工程设计目标基准虚线(如Target: 300 mm)。 - 严格 Times New Roman 字体,全内向刻度线,无上方及右侧刻度。
- 运行命令:
python plot_six_panel_material_distribution.py --output distribution_6panel_standard
7.9 Bivariate 2D Partial Dependence Interaction Surfaces (plot_bivariate_2d_pdp_interaction.py)
- 适用场景:机器学习黑盒解释性、特征交叉物理交互效应、双参数非线性耦合响应面分析(如龄期与水胶比、水胶比与砂胶比、减水剂与消泡剂)。
- 设计标准:
- CCC 专属红蓝发散色图(
#2F6AB9深蓝 ->#EAECEF极浅灰白中性色 ->#E63939绯红极值),色阶过渡平滑细腻(22 等高阶层)。 - 清晰白色等高线网络(
linewidth=0.85,alpha=0.90)搭配白色内嵌数值高程标签(clabel)。 - 每个子图右侧独立紧贴对齐的纵向 Colorbar(
size="5.5%",pad=0.08),刻度文字严格采用 Times New Roman 并使用内向刻度线。 - 彻底杜绝顶部与右侧刻度冗余(
top=False,right=False)。
- CCC 专属红蓝发散色图(
- 运行命令:
python plot_bivariate_2d_pdp_interaction.py --output pdp_2d_bivariate_standard
7.10 CCC Red-Blue Diverging Correlation Heatmap (plot_correlation_matrix_ccc.py)
- 适用场景:多输入特征与多输出目标之间的皮尔逊/斯皮尔曼相关性矩阵分析,或双数据集(如强度数据集 vs 流动度数据集)对角线上下三角矩阵拼合(Split Diagonal Triangle Matrix)。
- 设计标准:
- 严格采用 CCC 专属红蓝发散渐变色谱(负相关深蓝
#3172B7-> 零相关中性灰白#EAECEF-> 正相关艳红#E63939)。 - 单元格之间配置高清晰白色网格实线隔离带(
linewidth=1.8),网格层次立体。 - 单元格数值根据背景颜色自适应深浅文本对比(高绝对值区域白字,接近零区域深灰字),显著高相关加粗。
- 严格 Times New Roman 字体、倾斜 $45^\circ$ 横轴标签与右侧统一标定色条。
- 严格采用 CCC 专属红蓝发散渐变色谱(负相关深蓝
- 运行命令:
python plot_correlation_matrix_ccc.py --output correlation_matrix_ccc_standard
7.11 Joint Parity Plot with Marginal Distributions & Golden Drop Shadow (plot_parity_with_marginal_distributions.py)
- 适用场景:机器学习与深度学习回归模型 1:1 对角预测拟合分析(Parity / Actual vs Predicted Plot),兼顾检验模型在全域尺度上的数据分布保持性与边缘概率密度(Marginal Density Fidelity)。
- 设计标准:
- CCC 经典红蓝配色与明度校准:严格遵循 CCC 标准红蓝系统——训练集采用经典绯红(
#E63939),测试集采用皇家深海蓝(#2F6AB9)。 - 图例右下角 CCC 专属亮黄立体投影(3D Bright Yellow Drop Shadow):
- 图例框采用纯白底色(
facecolor='white')加极细黑边框(edgecolor='#222222',linewidth=1.05)。 - 采用
matplotlib.patheffects.SimplePatchShadow(offset=(2.8, -2.8), shadow_rgbFace='#FEC211', alpha=1.0)向右下方投射平实锐利的 CCC 标志性亮黄色阴影(#FEC211),带来精致立体的科技感与视觉聚焦。
- 图例框采用纯白底色(
- 顶部与右侧双向边际分布轴(Marginal Density Axes):
- 顶部边际轴:展示实验实测真值(Experimental ground truth)的概率密度分布曲线(KDE,
alpha=0.18轻薄透明羽化填充,红蓝双峰对比)。 - 右侧边际轴:旋转展示模型预测值(Predicted values)的纵向概率密度分布曲线(KDE,
alpha=0.18轻薄透明羽化填充)。 - 边际轴外边框全部去除(
despine),仅保留与主坐标轴交界的细分界线,无刻度文字冗余干扰。
- 顶部边际轴:展示实验实测真值(Experimental ground truth)的概率密度分布曲线(KDE,
- 中心主散点区域:
- 黑色主对角线($y=x$),细虚线标注 $\pm 15%$ 误差包络带,并在图例中动态统计容限内样本占比(如
70.8% points included)。 - 训练集空心圆圈(
edgecolors='#E63939'),测试集空心正方形(edgecolors='#2F6AB9',marker='s')。 - 严格 Times New Roman 字体、全内向精致刻度、无顶部与右侧刻度。
- 黑色主对角线($y=x$),细虚线标注 $\pm 15%$ 误差包络带,并在图例中动态统计容限内样本占比(如
- CCC 经典红蓝配色与明度校准:严格遵循 CCC 标准红蓝系统——训练集采用经典绯红(
- 运行命令:
python plot_parity_with_marginal_distributions.py --output parity_with_marginals_standard