当前位置:首页>python>期刊图片复现|Python绘制机器学习模型特征重要性及其对预测结果影响方向的环形SHAP组合图

期刊图片复现|Python绘制机器学习模型特征重要性及其对预测结果影响方向的环形SHAP组合图

  • 2026-06-30 11:05:30
期刊图片复现|Python绘制机器学习模型特征重要性及其对预测结果影响方向的环形SHAP组合图

代码绘制成果展示

论文:Environmental gradients explain nearshore microplastic distribution patterns: insights from machine learning models
论文原图
机器学习模型特征重要性及其对预测结果影响方向的环形SHAP组合图,左上角标号表明为子图编号。图中心标注的文本说明当前解释的是什么模型,同时表明是保留了95%置信区间内的样本分布。图最外围一圈标注了特征变量名称;左上方的径向刻度尺用于量化SHAP值的范围,图中加粗黑色实线圆对应着SHAP=0的基准分界线。特征名称对应的每一列散点代表了数据集中具体样本的SHAP值分布情况,底部图例表明了不同颜色的点代表的含义,散点的聚集宽度直观反映了数值的集中密度。三条闭合的多边形折线分别表示了各个特征正向SHAP均值,负向SHAP均值的,SHAP绝对值全局平均值。
注意:此为我个人理解,做法可能与原文存在出入,使用前请阅读原文
仿图
多种配色

代码解释

第一部分

库的导入以及字体设置
# =========================================================================================# ====================================== 1. 环境设置 =======================================# =========================================================================================import osimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_split, GridSearchCV

第二部分

颜色库
# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================COLOR_SCHEMES = {    1: ('#B63232''#2A72B5''#E88B46'),}

第三部分

单个模型环形SHAP图绘制函数:参数初始化与均值计算,均匀分配角度,计算每个特征的全局SHAP绝对值均值(用于衡量总体特征重要性),所有大于0的SHAP值的均值,所有小于等于0的SHAP值的均值。
# =========================================================================================# ======================================3.单个模型环形SHAP图绘制函数=======================================# =========================================================================================def draw_model_circular_shap(ax, model_name, shap_vals, feature_names, color_pos, color_neg, color_mean, letter):    n_features = len(feature_names) #输入特征总数量    angles = np.linspace(02 * np.pi, n_features, endpoint=False#生成等间距的极坐标角度    angles_closed = np.append(angles, angles[0]) #将第一个角度值添加到数组末尾,闭合    mean_abs_shap = np.mean(np.abs(shap_vals), axis=0#计算各特征在所有样本上的SHAP值绝对值的平均值    mean_pos_shap = np.zeros(n_features) #各特征正向SHAP均值    mean_neg_shap = np.zeros(n_features) #各特征负向SHAP均值        mean_pos_shap[i] = np.mean(pos_vals) if len(pos_vals) > 0 else 0        mean_neg_shap[i] = np.mean(neg_vals) if len(neg_vals) > 0 else 0    #将均值数组闭合,首尾相接    mean_abs_shap_closed = np.append(mean_abs_shap, mean_abs_shap[0])    mean_pos_shap_closed = np.append(mean_pos_shap, mean_pos_shap[0])    mean_neg_shap_closed = np.append(mean_neg_shap, mean_neg_shap[0])

第四部分

单个模型环形SHAP图绘制函数:范围设定与坐标轴清理
    real_min_val = np.min(shap_vals) #SHAP值全局最小值    real_max_val = np.max(shap_vals) #SHAP值全局最大值    val_span = real_max_val - real_min_val #计算极差    ax.set_theta_offset(np.pi / 2#起始角度    ax.set_theta_direction(-1#顺时针    ax.set_ylim(r_min, r_outer) #径向范围    ax.grid(False#去掉默认网格线    ax.spines['polar'].set_visible(False#去掉边框    ax.set_yticks([]) #去掉径向刻度标签

第五部分

单个模型环形SHAP图绘制函数:绘制参考线(背景的虚线圆圈,实线径向线,shap=0的圆圈)与边界(中心白色圆的外圈)
    theta_full = np.linspace(02 * np.pi, 300#生成均匀角度用于绘制平滑的参考圆圈    grid_radii = np.linspace(r_inner, real_max_val + val_span * 0.055#背景虚线圈半径    #遍历半径    for r in grid_radii:        #绘制背景虚线圈        ax.plot(theta_full, #角度                np.full_like(theta_full, r), #半径                color='gray'#颜色                linestyle='--'# 设置线条样式为虚线                linewidth=1# 设置线条宽度为0.8                alpha=0.5# 设置透明度为0.5(半透明)                zorder=1# 设置绘图层级置底    #中心圆的外框    ax.plot(theta_full,  #角度            np.full_like(theta_full, r_inner), #半径            color='black'#颜色            linestyle='-'#样式            linewidth=1.5#线宽            zorder=2#层    #SHAP=0的分界圆    ax.plot(theta_full, #角度            np.full_like(theta_full, 0), #半径            color='#404040'#颜色            linestyle='-'#样式            linewidth=2.5#线宽            zorder=2#层

第六部分

单个模型环形SHAP图绘制函数:绘制带抖动的散点图,绘制时剔除掉前后2.5%的极端SHAP值。 把极径范围切分成多个箱子,统计每个箱子内有多少个数据点。然后将落入同一个箱子里的数据点依次安排在不同的角度轨道上。优先排列在特征的中心基准线上,随后左右交替扩散。 最后,将过滤及加入角度抖动后的点,按照SHAP值正负分别绘制成不同颜色的半透明散点。
    #遍历特征绘制散点图    for i inrange(n_features):        angle = angles[i] #角度        vals = shap_vals[:, i] #获取该特征的所有样本SHAP值        low_bound, high_bound = np.percentile(vals, [2.597.5]) #计算95%置信区间的上下限        mask_95 = (vals >= low_bound) & (vals <= high_bound) #剔除前2.5%和后2.5%的极端异常值        vals_filtered = vals[mask_95] #剔除后数据        #绘制正SHAP值        ax.scatter(angle + jitter_vals_filtered[pos_mask], #角度+偏移                   vals_filtered[pos_mask], #半径                   color=color_pos, #填充颜色                   s=18#大小                   alpha=0.65#透明度                   zorder=3#层                   edgecolors='none'#不绘制边        #绘制负SHAP值        ax.scatter(angle + jitter_vals_filtered[neg_mask], #角度+偏移                   vals_filtered[neg_mask],  #半径                   color=color_neg, #填充颜色                   s=18#大小                   alpha=0.65#透明度                   zorder=3#图                   edgecolors='none')  #不绘制边

第七部分

单个模型环形SHAP图绘制函数:绘制均值闭合线
   #SHAP绝对值均值闭合线    ax.plot(angles_closed, #角度            mean_abs_shap_closed, #半径            color=color_mean, #颜色            linewidth=2#线            zorder=5#层    #均值曲线上对应特征的角点标记    ax.scatter(angles, #角度               mean_abs_shap, #半径               color=color_mean, #颜色               s=10#大小               zorder=5#层    #SHAP正向均值的闭合线    ax.plot(angles_closed, #角度            mean_pos_shap_closed, #半径            color=color_pos, #颜色            linewidth=1.0#线宽            zorder=5#层    #SHAP负向均值的闭合线    ax.plot(angles_closed,#角度            mean_neg_shap_closed, #半径            color=color_neg, #颜色            linewidth=1.0#线宽            zorder=4#层

第八部分

单个模型环形SHAP图绘制函数:绘制刻度线,中心文本,子图编号
    axis_angle = np.deg2rad(-20#用于绘制数值刻度轴的角度    #数值刻度轴    ax.plot([axis_angle, axis_angle], #角度            [r_inner, real_max_val + val_span * 0.05], #半径范围            color='black'#颜色            linewidth=1.0#线宽            zorder=5#层    all_ticks = np.linspace(real_min_val, real_max_val, 7#生成均匀分布的刻度点    d_theta = 0.04 #刻度线长    ax.text(0#x            r_min, #y            f"{model_name}\n95% CI"#文本            ha='center'#水平            va='center'#垂直            fontsize=14#字体大小            fontweight='bold'#加粗            zorder=6#层    #子图编号    ax.text(-0.05#x            1.15#Y            letter, #编号            transform=ax.transAxes, #坐标系            fontsize=32#大小            fontweight='bold'#加粗            va='top'#垂直定            ha='right'#水平

第九部分

主绘图函数:绘制子图和组合图,并分别进行保存
# =========================================================================================# ======================================4.主绘图函数=======================================# =========================================================================================def plot_circular_shap_charts(shap_data_dict, top_features_dict, scheme_id=1):    fig, axes = plt.subplots(1#行                             3#列                             figsize=(258), #尺寸                             subplot_kw=dict(polar=True)) #极坐标        #调用绘图函数绘制组合图        draw_model_circular_shap(axes[idx], #画布                                 model_name, #模型                                 top_shap_vals, #SHAP                                 top_features, #特征                                 color_pos, #正颜色                                 color_neg, #负颜色                                 color_mean, #均值颜色                                 letters[idx]) #子图编号        #创建子图画布        fig_single, ax_single = plt.subplots(figsize=(88), subplot_kw=dict(polar=True))        #绘制子图        draw_model_circular_shap(ax_single, model_name, top_shap_vals, top_features,color_pos, color_neg, color_mean, letters[idx])        # 创建用于独立图表图例说明的定制线条对象(此处为空线条)        mean_line_s = mlines.Line2D([], #占位                                    [],#占位                                    color=color_mean, #颜色                                    marker='o'#圆形                                    markersize=20#大小                                    label='SHAP mean'#图例文本                                    linestyle='None'#不绘制线        # 创建用于独立图表正向值的图例空对象        pos_dot_s = mlines.Line2D([], #占位                                  [],#占位                                  color=color_pos, #颜色                                  marker='o'#圆形                                  markersize=20#大小                                  label='SHAP positive'#图例文本                                  linestyle='None'#不绘制线        single_save_dir = os.path.join(base_path, model_name)        os.makedirs(single_save_dir, exist_ok=True)        #保存        fig_single.savefig(os.path.join(single_save_dir, f'shap_circular_{model_name}_scheme_{scheme_id}.png'), dpi=300,bbox_inches='tight')        fig_single.savefig(os.path.join(single_save_dir, f'shap_circular_{model_name}_scheme_{scheme_id}.pdf'),bbox_inches='tight')        plt.close(fig_single) #关闭    #创建组合图图例    #均值    mean_line = mlines.Line2D([], #占位                              [],#占位                              color=color_mean, #颜色                              marker='o'#圆形                              markersize=26# 大小                              label='SHAP mean'#文本

第十部分

执行部分:读取了主数据集和独立验证集,拆分成特征X和目标y,主数据集划分为训练和测试集。定义了RF、XGB、CatBoost等模型的参数字典。通过交叉验证网格搜索寻找三个模型各自的最优超参数组合,并将最优模型存入字典中。遍历模型,在独立验证集上解析模型特征贡献度。由于这是多分类问题,代码首先将所有分类的SHAP绝对值求均值来衡量特征的总体实力,从大到小对特征进行排序,筛选出排名前12的特征。最后,取出目标类别的SHAP值保留后续画图。执行可视化绘制出图。
# =========================================================================================# ======================================5.执行部分=======================================# =========================================================================================if __name__ == '__main__':    excel_filename = r'\simulated_microplastic_data.xlsx'  #模型数据集    df_main = pd.read_excel(excel_filename)  #读取    feature_names = df_main.drop(columns=['Target_Class']).columns.tolist()  #特征名    X_main = df_main.drop(columns=['Target_Class']).values  #特征数据    y_main = df_main['Target_Class'].values  #目标数据    #划分训练集与测试集    best_models = {}  #存放最佳模型    model_names = ['Random Forest''XGBoost''CatBoost']  #模型名称    #超参数网格    rf_param = {'n_estimators': [50100],                'max_depth': [510None]}    #配置网格搜索    rf_grid = GridSearchCV(RandomForestClassifier(random_state=42, class_weight='balanced'), rf_param, cv=3, n_jobs=-1)    rf_grid.fit(X_train, y_train)  #拟合    best_models['Random Forest'] = rf_grid.best_estimator_  #最佳RF模型    #超参数网格    xgb_param = {'n_estimators': [50100],                 'max_depth': [35],                 'learning_rate': [0.10.2]}    #配置网格搜索    xgb_grid = GridSearchCV(XGBClassifier(random_state=42, eval_metric='mlogloss'), xgb_param, cv=3, n_jobs=-1)    xgb_grid.fit(X_train, y_train)  #拟合    best_models['XGBoost'] = xgb_grid.best_estimator_  #最佳XGBoost模型    #超参数网格    cb_param = {'iterations': [50100],                'depth': [46],                'learning_rate': [0.1]}    #配置网格搜索    cb_grid = GridSearchCV(CatBoostClassifier(random_state=42, verbose=0, auto_class_weights='Balanced'), cb_param,                           cv=3, n_jobs=-1)    cb_grid.fit(X_train, y_train)  #拟合    best_models['CatBoost'] = cb_grid.best_estimator_  #最佳CatBoost模型    shap_data_dict = {}  #存放SHAP结果    top_features_dict = {}  #按各模型存放筛选后头部特征    k_features = 12  #要呈现的上限,top    plot_all = True    if plot_all:        for i in COLOR_SCHEMES.keys():            plot_circular_shap_charts(shap_data_dict, top_features_dict, scheme_id=i)    else:        target_scheme = 1        plot_circular_shap_charts(shap_data_dict, top_features_dict, scheme_id=target_scheme)

如何应用到你自己的数据

1.设置是一次绘制一张图还是一次性绘制出所有配色的图,执行部分:

plot_all = True

2.设置模型数据集路径,执行部分:

excel_filename = r'data.xlsx'  #模型数据集

3.设置独立验证数据集路径,执行部分:

ind_excel_filename = r'independent_validation_data.xlsx'

4.设置目标数据,执行部分:

y_main = df_main['Target_Class'].values  #目标数据

5.设置特征数据,执行部分:

X_main = df_main.drop(columns=['Target_Class']).values  #特征数据

6.设置超参数网格,执行部分:

rf_param = {'n_estimators': [50100],            'max_depth': [510None]}

7.设置要绘制的特征,执行部分:

k_features = 12  #要呈现的上限,top

8.设置保存路径,主绘图函数部分:

base_path = r''

推荐

期刊图片复现|Python绘制二维偏依赖PDP图
期刊复现|python绘制基于SHAP分析和GAM模型拟合的单特征依赖图
期刊复现|用Python绘制SHAP特征重要性总览图、依赖图、双特征交互效应SHAP图,解锁XGBoost模型的终极奥秘
期刊图片复现|Python绘制shap重要性蜂巢图+单特征依赖图+交互效应强度气泡图+交互效应依赖图(回归+二分类+分类)

获取方式

公众号中的所有所有的免费代码都已经下架了,都并入到付费部分里了,付费合集代码和数据的购买通道已经开通,全部合集100元,后续将会持续更新,决定购买请后台私信我,注意只会分享练习数据和代码文件,不会提供答疑服务,代码文件中已经包含了每行代码的完整注释,购买前请确保真的需要!!!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 04:20:44 HTTP/2.0 GET : https://f.mffb.com.cn/a/490423.html
  2. 运行时间 : 0.172249s [ 吞吐率:5.81req/s ] 内存消耗:4,462.23kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=83139da40f694659b8c430de11ead254
  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.000569s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000741s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.007946s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.008137s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000586s ]
  6. SELECT * FROM `set` [ RunTime:0.001008s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000549s ]
  8. SELECT * FROM `article` WHERE `id` = 490423 LIMIT 1 [ RunTime:0.007209s ]
  9. UPDATE `article` SET `lasttime` = 1783110044 WHERE `id` = 490423 [ RunTime:0.016652s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000679s ]
  11. SELECT * FROM `article` WHERE `id` < 490423 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.010302s ]
  12. SELECT * FROM `article` WHERE `id` > 490423 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.005284s ]
  13. SELECT * FROM `article` WHERE `id` < 490423 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003794s ]
  14. SELECT * FROM `article` WHERE `id` < 490423 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.011402s ]
  15. SELECT * FROM `article` WHERE `id` < 490423 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008609s ]
0.173738s