当前位置:首页>python>期刊配图复现 | 手把手教你用 Python 绘制 SHAP 全局与局部解释组合图

期刊配图复现 | 手把手教你用 Python 绘制 SHAP 全局与局部解释组合图

  • 2026-01-29 18:10:55
期刊配图复现 | 手把手教你用 Python 绘制 SHAP 全局与局部解释组合图

01

前言

在机器学习辅助材料发现(Materials Discovery)的浪潮中,我们经常面临一个痛点:模型跑分很高,但审稿人总问“Why?”—为什么你的模型认为这个材料好?这时候,单纯的R^2或 RMSE 已经无法满足顶刊对“机理解释”的渴望。

今天要复刻的这张图,来自 Journal of Environmental Chemical Engineering (2025) 的一篇关于 MOF 甲烷吸附的研究 。作者不仅仅预测了吸附量,更使用了 SHAP (Shapley Additive Explanations) 方法,通过一张极其优雅的 “Bar + Beeswarm” 组合图(即文中 Fig. 3),一站式展示了特征的全局重要性(Global Importance)和局部影响方向(Local Interpretation) 。

这张图的精妙之处在于:左边告诉你“谁重要”,右边告诉你“它是怎么影响结果的(正相关还是负相关)”。很多同学直接调用 shap 库的默认绘图函数,往往面临字体无法统一、DPI 不够、无法排版进大图的尴尬。

今天,我们就用 Python (Matplotlib),把这张图从底层逻辑完整复现。我们要做的不是简单的“调包”,而是像搭积木一样,把左边的条形图和右边的蜂群图精准对齐,并注入符合出版要求的审美灵魂。

02

原图解析

在写代码之前,我们需要像外科医生一样,先对这张图进行“解剖”。只有看懂了结构,才能写对代码。

论文原图

Sub-section 2: 读懂神图 (Scientific Decoding)

别光顾着画,这图到底说了个啥?如果你看不懂图里的科学逻辑,画出来也是没有灵魂的躯壳。来,我带你读懂它:

这张图揭示了在 5.8 bar 低压条件下,哪些 MOF 特征决定了甲烷吸附量 。

看懂了吗?左边看“地位”,右边看“态度”。

03

代码复刻

Step 1 全局配置

“高手画图,都是先立规矩。” 我们先定义好字体、字号和线条粗细,确保出图就是期刊标准,不用后期在 AI 里一个个改字。

import matplotlib.pyplot as pltimport matplotlib.font_manager as fmimport warnings# 全局关闭非关键警告,保证绘图输出整洁,看着清爽warnings.filterwarnings('ignore')# --- 顶刊风格内核锁定 (Journal Aesthetics) ---# 字体设置:优先使用 Times New Roman,这是 SCI 的标配plt.rcParams['font.family'] = ['Times New Roman''Arial''SimHei']plt.rcParams['mathtext.fontset'] = 'stix'       # 公式字体使用 STIX (类似 LaTeX)# 基础字号与线条定义:线条要粗,字要大,这就是“高级感”的来源plt.rcParams['font.size'] = 16                  # 默认字号plt.rcParams['axes.linewidth'] = 1.5            # 坐标轴线宽 (Bold)plt.rcParams['lines.linewidth'] = 2.0           # 数据线宽plt.rcParams['xtick.direction'] = 'in'          # 刻度朝内,更紧凑plt.rcParams['ytick.direction'] = 'in'plt.rcParams['savefig.bbox'] = 'tight'          # 自动切除白边plt.rcParams['savefig.dpi'] = 600               # 印刷级分辨率

Step 2 画布构建

这里不能简单用 plt.subplots(1, 2)。因为原文中,左图(Bar)和右图(Beeswarm)的宽度比例不是 1:1,而且中间的间距(wspace)需要精细控制。我们要用 GridSpec 来切蛋糕。

# 2. 构建画布与网格布局fig = plt.figure(figsize=(106), dpi=150)# width_ratios=[1, 1.5]: 让右边的散点图宽一点,展示更多细节# wspace=0.05: 让两张图紧紧挨在一起,看起来像一张图gs = gridspec.GridSpec(13, width_ratios=[0.81.20.05], wspace=0.05)ax_bar = fig.add_subplot(gs[0])       # 左面板ax_bee = fig.add_subplot(gs[1])       # 右面板ax_cbar = fig.add_subplot(gs[2])      # 色条面板 (最右侧细条)# 锁定 Y 轴范围,确保两图每一行严格对齐y_pos = np.arange(n_features)ax_bar.set_ylim(-0.5, n_features - 0.5)ax_bee.set_ylim(-0.5, n_features - 0.5)# 隐藏右图的 Y 轴刻度标签,因为它共享左图的标签ax_bee.set_yticks([]) # 但保留 Y 轴的 Tick 线吗?原文中右图中间有一条灰线,我们稍后处理
Step 3 左面板:条形图 (Bar Chart)

这一步比较基础,但要注意细节:颜色选择深蓝色,加上黑色边框增加质感。

# 3. 绘制左图:Global Interpretation(Bar Chart)# 使用 barh 绘制水平条形图bars = ax_bar.barh(y_pos, importance, height=0.6                   color='#1f77b4', edgecolor='black', linewidth=0.8, zorder=3)# 设置标签ax_bar.set_yticks(y_pos)ax_bar.set_yticklabels(feature_names, fontsize=11, fontweight='bold')ax_bar.set_xlabel('mean absolute SHAP value', fontsize=11)# 美化左图:去顶线和右线ax_bar.spines['top'].set_visible(False)ax_bar.spines['right'].set_visible(False)ax_bar.xaxis.set_ticks_position('bottom')ax_bar.yaxis.set_ticks_position('left')# 添加网格线,放在底层 (zorder=0)ax_bar.grid(axis='x', linestyle='--', alpha=0.5, zorder=0)# 反转 X 轴?不,原文是正常的。但为了好看,我们可以留点余量ax_bar.set_xlim(0, max(importance) * 1.1)# 标题ax_bar.set_title("Global interpretation", fontsize=12, pad=10)

Step 4 右面板:蜂群散点图 (Beeswarm Plot)

这是整张图的灵魂。我们需要模拟 shap 库的抖动效果。这里我用了一个简单的随机抖动(Jitter)技巧来实现蜂群效果,配合颜色映射。

# 4. 绘制右图:Local Interpretation(Beeswarm Style)# 定义颜色映射:从蓝(低)到红(高)cmap = plt.get_cmap('coolwarm')norm = mcolors.Normalize(vmin=0, vmax=1) # 归一化特征值# 循环绘制每一行特征的散点for i in range(n_features):    # 提取当前特征的数据    s_vals = shap_vals[i] # SHAP 值 (X坐标)    f_vals = feature_vals[i] # 特征值 (颜色)    # 核心技巧:计算 Jitter (Y坐标抖动)    # 这里用简单的随机抖动模拟蜂群效果    # 实际项目中可以使用核密度估计来做更完美的 beeswarm    y_jitter = np.random.normal(loc=i, scale=0.08, size=n_samples)    # 限制抖动范围,防止点溢出到别的行    y_jitter = np.clip(y_jitter, i - 0.3, i + 0.3)    # 绘制散点    sc = ax_bee.scatter(s_vals, y_jitter,                         c=f_vals, cmap=cmap, norm=norm,                         s=15, alpha=0.7, edgecolors='none', zorder=3)# 添加基准线 x=0ax_bee.axvline(x=0, color='gray', linestyle='-', linewidth=1, zorder=1)# 添加行分割虚线for y in y_pos:    ax_bee.axhline(y=y, color='gray', linestyle=':', alpha=0.3, zorder=0)ax_bee.set_xlabel('SHAP value', fontsize=11)ax_bee.set_title("Local interpretation", fontsize=12, pad=10)# 美化右图:只保留底轴ax_bee.spines['top'].set_visible(False)ax_bee.spines['left'].set_visible(False) # 这一步很关键,隐藏左轴线ax_bee.spines['right'].set_visible(False)

Step 5 注入灵魂

最后,我们要把色条(Legend)加上去。原文的色条不是在下面,而是在右侧,并且标注了 "Low" 和 "High"。

# 5. 添加色条 (Colorbar)# 在我们预留的 ax_cbar 上画色条cb = plt.colorbar(sc, cax=ax_cbar, orientation='vertical')# 设置色条标签:只显示 Low 和 Highax_cbar.set_ylabel('Feature value', fontsize=11, labelpad=10)# 隐藏中间刻度,只保留两端文本cb.set_ticks([]) # 手动添加文本ax_cbar.text(1.50.02'Low', transform=ax_cbar.transAxes, ha='left', va='center', color='black')ax_cbar.text(1.50.98'High', transform=ax_cbar.transAxes, ha='left', va='center', color='black')# 调整色条样式cb.outline.set_visible(False) # 去掉色条边框,更有现代感# 最终布局调整plt.tight_layout() # 虽然用了GridSpec,有时候微调还是需要的plt.show()

对比我们生成的图(复刻图)和原图 :

  • 结构:左右面板的比例和对齐方式完全复刻了原图的逻辑。

  • 细节:左图的 Bar 带有黑色边框,增加了硬朗感;右图的散点通过 alpha 参数处理了重叠,这在原图处理几万个数据点时尤为重要。

  • 改进:原图中右侧散点图的 y 轴其实有一条灰色的轴线(spine),我们在代码中通过 ax_bee.spines['left'].set_visible(False) 去掉了,这在现代审美中更显干净,当然如果你想 100% 还原,可以设为 True 并把颜色设淡。

复刻图

04

多配色参考

多配色参考

05

代码获取

👇 关注公众号【嗡嗡的Python日常】

🚫 关于源码: 本文核心代码为原创定制,暂不免费公开。

✅ 如果你需要:

  • 购买本项目完整源码 + 数据

  • 定制类似的科研绘图

  • 请直接添加号主微信沟通(有偿分享☕️): Wjtaiztt0406

微信号丨Wjtaiztt0406

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 15:07:42 HTTP/2.0 GET : https://f.mffb.com.cn/a/469319.html
  2. 运行时间 : 0.192876s [ 吞吐率:5.18req/s ] 内存消耗:4,675.30kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=f028a56713ea333b47e68d4f129fc31a
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000510s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000656s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001225s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.003799s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000558s ]
  6. SELECT * FROM `set` [ RunTime:0.001155s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000662s ]
  8. SELECT * FROM `article` WHERE `id` = 469319 LIMIT 1 [ RunTime:0.006229s ]
  9. UPDATE `article` SET `lasttime` = 1770534463 WHERE `id` = 469319 [ RunTime:0.006603s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000270s ]
  11. SELECT * FROM `article` WHERE `id` < 469319 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000448s ]
  12. SELECT * FROM `article` WHERE `id` > 469319 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.009839s ]
  13. SELECT * FROM `article` WHERE `id` < 469319 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005962s ]
  14. SELECT * FROM `article` WHERE `id` < 469319 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.011425s ]
  15. SELECT * FROM `article` WHERE `id` < 469319 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.074593s ]
0.194607s