当前位置:首页>python>Python绘制UMAP状态图谱与特征热图(含代码)

Python绘制UMAP状态图谱与特征热图(含代码)

  • 2026-06-30 03:20:32
Python绘制UMAP状态图谱与特征热图(含代码)
案例代码见文末,感谢您关注PFC小姐姐,麻烦您多多对推文点赞、收藏及转发,并衷心希望您多多指教🙏,帮助PFC小姐姐进步提升。

引言

在数据分析中,我们经常会遇到高维数据。比如工程监测数据中,一个样本可能同时包含位移均值、位移波动、应变峰值、孔压水平、降雨强度、残差得分、损伤指标、刚度退化和安全系数变化等多个特征。单独查看这些变量,很难判断样本之间是否存在状态差异,也不容易看出不同状态由哪些关键特征区分。对于这类问题,常见做法是先用降维方法把高维样本投影到二维空间中,再结合特征热图解释不同样本簇的差异来源。UMAP 可以把高维数据中的相似样本尽量放在相邻位置,从而形成一个二维状态图谱;特征热图则可以进一步展示每一类状态在不同指标上的高低变化。本文用 Python 随机生成一组高维科研数据,模拟稳定状态、轻微扰动、渐进变形、高风险状态和异常状态五类样本,并绘制两张图:第一张是 UMAP 高维状态图谱,用来观察样本在二维空间中的聚集结构;第二张是状态—特征热图,用来解释不同状态之间的特征差异。两张图放在一起,可以形成一套比较完整的高维数据可视化表达。

1、UMAP 高维状态图谱

该图展示的是 UMAP 降维后的二维状态图谱。图中每一个点代表一个高维样本,不同颜色表示不同工程状态,包括稳定状态、轻微扰动、渐进变形、高风险状态和异常状态。相互接近的点表示这些样本在原始高维特征空间中更加相似,相互远离的点则说明它们在多个特征上存在更明显差异。这张图的作用是把高维数据的整体结构压缩到一个二维平面中。原本每个样本可能有十几个甚至几十个特征,直接用表格很难观察整体模式。通过 UMAP 图,可以直观看到不同状态是否形成独立簇,不同簇之间是否存在过渡区域,以及异常状态是否明显偏离正常样本。图中每个状态簇附近加入了标签和密度轮廓线,可以增强图谱的可读性。标签用于说明不同颜色代表的状态类型,轮廓线则帮助观察每一类样本的聚集范围。如果某一类样本分布紧凑,说明该状态内部差异较小;如果某一类样本分布分散,说明该状态可能包含更复杂的内部变化。

2、状态—特征热图

该图展示的是不同状态下各个特征的标准化均值。横轴是特征变量,例如位移、应变、孔压、降雨、残差得分、损伤指标、裂隙密度和安全损失等;纵轴是不同工程状态;颜色表示该状态在某个特征上的相对高低。红色表示该特征值高于总体平均水平,蓝色表示低于总体平均水平,颜色越深,偏离程度越大。这张图的作用是解释 UMAP 图中的状态差异。UMAP 图可以告诉我们样本形成了不同簇,但它本身并不能直接说明这些簇为什么会分开。特征热图可以进一步回答这个问题:高风险状态为什么高风险,异常状态到底在哪些指标上异常,稳定状态又在哪些指标上保持低值。从图中可以看到,稳定状态在多数变形、损伤和安全相关指标上都偏低,说明样本整体较平稳;轻微扰动状态的部分环境指标和响应指标略有升高,但整体变化幅度不大;渐进变形状态在位移、应变和损伤相关特征上开始升高,说明系统已经出现持续变化;高风险状态在多个响应指标上进一步增强;异常状态在残差得分、损伤指标、裂隙密度和安全损失等特征上表现出明显高值。

    具体Python如下:

    import osimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.preprocessing import StandardScalerfrom umap import UMAPnp.random.seed(2026)plt.rcParams["font.family"] = "Times New Roman"plt.rcParams["axes.unicode_minus"] = Falseplt.rcParams["figure.dpi"] = 160plt.rcParams["savefig.dpi"] = 600out_dir = "python_umap_heatmap_figures"os.makedirs(out_dir, exist_ok=True)# 随机生成高维科研数据#    假设这是工程监测 / 材料试验 / 模型诊断数据state_names = [    "Stable",    "Slight disturbance",    "Progressive deformation",    "High-risk",    "Abnormal"]feature_names = [    "Mean disp.",    "Disp. std",    "Max disp.",    "Strain peak",    "Strain energy",    "Pore pressure",    "Rainfall",    "Load level",    "Temperature",    "Freq. energy",    "Residual score",    "Damage index",    "Stiffness loss",    "Plastic zone",    "Velocity RMS",    "Crack density",    "Stress ratio",    "Safety loss"]n_states = len(state_names)n_features = len(feature_names)# 每类样本数量n_per_state = [420380360330310]# 构造每个状态的特征均值模式# 行:状态;列:特征state_mean = np.array([    # Stable    [-1.1, -1.0, -1.0, -1.1, -1.0, -0.7, -0.8, -0.6,  0.0, -0.8, -1.1, -1.1, -1.0, -1.1, -0.8, -1.0, -0.8, -1.2],    # Slight disturbance    [-0.3, -0.2, -0.2, -0.3, -0.2,  0.1,  0.2, -0.1,  0.2, -0.2, -0.3, -0.4, -0.2, -0.3,  0.0, -0.3, -0.1, -0.3],    # Progressive deformation    [ 0.4,  0.5,  0.5,  0.7,  0.6,  0.7,  0.6,  0.4,  0.1,  0.4,  0.5,  0.6,  0.7,  0.6,  0.5,  0.5,  0.5,  0.6],    # High-risk    [ 1.0,  1.1,  1.1,  1.4,  1.3,  1.1,  1.0,  0.8,  0.2,  0.9,  1.1,  1.3,  1.2,  1.2,  1.0,  1.2,  1.0,  1.3],    # Abnormal    [ 1.7,  1.9,  1.8,  2.0,  1.9,  1.5,  1.4,  1.3,  0.4,  1.6,  2.1,  2.0,  1.7,  1.9,  1.6,  2.0,  1.5,  2.1],])X_list = []y_list = []for k, n in enumerate(n_per_state):    # 基础噪声    Xk = np.random.normal(loc=0, scale=0.55, size=(n, n_features))    # 状态均值    Xk += state_mean[k]    # 构造一些相关结构,让数据更像真实高维数据    latent_deformation = np.random.normal(00.55, size=n)    latent_environment = np.random.normal(00.45, size=n)    latent_damage = np.random.normal(00.50, size=n)    # 位移与应变相关    Xk[:, [01234]] += latent_deformation[:, None] * np.array([0.80.70.90.80.7])    # 环境相关:孔压、降雨、温度    Xk[:, [568]] += latent_environment[:, None] * np.array([0.80.90.5])    # 损伤相关:残差、损伤、刚度损失、塑性区、裂隙、安全损失    Xk[:, [101112131517]] += latent_damage[:, None] * np.array([0.80.90.80.70.91.0])    X_list.append(Xk)    y_list.append(np.full(n, k))X = np.vstack(X_list)y = np.concatenate(y_list)# 标准化scaler = StandardScaler()X_scaled = scaler.fit_transform(X)# 2. UMAP 降维umap_model = UMAP(    n_components=2,    n_neighbors=35,    min_dist=0.12,    metric="euclidean",    random_state=2026)embedding = umap_model.fit_transform(X_scaled)# 3. 图1:UMAP 高维状态图谱colors = [    "#4C72B0",    "#55A868",    "#C44E52",    "#8172B2",    "#CCB974"]fig, ax = plt.subplots(figsize=(9.27.2))# 先画所有点的灰色背景,增加“图谱感”ax.scatter(    embedding[:, 0],    embedding[:, 1],    s=8,    color="#D0D0D0",    alpha=0.25,    linewidths=0)# 分状态绘制for k, name in enumerate(state_names):    idx = y == k    ax.scatter(        embedding[idx, 0],        embedding[idx, 1],        s=16,        color=colors[k],        alpha=0.72,        edgecolor="white",        linewidth=0.20,        label=name    )    # 状态中心标签    cx = np.median(embedding[idx, 0])    cy = np.median(embedding[idx, 1])    ax.text(        cx,        cy,        name,        fontsize=11,        weight="bold",        ha="center",        va="center",        bbox=dict(            boxstyle="round,pad=0.30",            facecolor="white",            edgecolor=colors[k],            linewidth=1.3,            alpha=0.88        ),        zorder=8    )    # 密度等值线:用二维直方图模拟局部密度    xs = embedding[idx, 0]    ys = embedding[idx, 1]    H, xedges, yedges = np.histogram2d(xs, ys, bins=60)    H = H.T    if np.max(H) > 0:        xcenters = (xedges[:-1] + xedges[1:]) / 2        ycenters = (yedges[:-1] + yedges[1:]) / 2        nonzero = H[H > 0]        if len(nonzero) > 10:            levels = np.quantile(nonzero, [0.720.88])            levels = np.unique(levels)            if len(levels) >= 1:                ax.contour(                    xcenters,                    ycenters,                    H,                    levels=levels,                    colors=[colors[k]],                    linewidths=1.0,                    alpha=0.55                )ax.set_title(    "UMAP Atlas of High-dimensional Engineering States",    fontsize=16,    pad=14)ax.set_xlabel("UMAP 1", fontsize=13)ax.set_ylabel("UMAP 2", fontsize=13)ax.legend(    frameon=True,    fontsize=10,    loc="best",    markerscale=1.4)ax.grid(alpha=0.18, linewidth=0.6)ax.spines["top"].set_visible(False)ax.spines["right"].set_visible(False)ax.text(    0.02,    0.98,    "Each point represents one high-dimensional sample\nColors indicate inferred engineering states",    transform=ax.transAxes,    ha="left",    va="top",    fontsize=10.5,    bbox=dict(        boxstyle="round,pad=0.35",        facecolor="white",        edgecolor="#999999",        alpha=0.88    ))plt.tight_layout()plt.savefig(    os.path.join(out_dir, "01_umap_state_atlas.png"),    bbox_inches="tight",    facecolor="white")# 4. 计算各状态的标准化特征均值cluster_means = np.zeros((n_states, n_features))for k in range(n_states):    cluster_means[k, :] = X_scaled[y == k].mean(axis=0)# 为了让热图更清楚,对数值做轻微截断heat_values = np.clip(cluster_means, -2.22.2)# 5. 图2:状态—特征聚类热图fig, ax = plt.subplots(figsize=(12.55.8))im = ax.imshow(    heat_values,    cmap="RdBu_r",    aspect="auto",    vmin=-2.2,    vmax=2.2)# 坐标标签ax.set_xticks(np.arange(n_features))ax.set_xticklabels(    feature_names,    rotation=45,    ha="right",    fontsize=10.5)ax.set_yticks(np.arange(n_states))ax.set_yticklabels(state_names, fontsize=11)# 网格线ax.set_xticks(np.arange(-0.5, n_features, 1), minor=True)ax.set_yticks(np.arange(-0.5, n_states, 1), minor=True)ax.grid(which="minor", color="white", linestyle="-", linewidth=1.1)ax.tick_params(which="minor", bottom=False, left=False)# 数值标注for i in range(n_states):    for j in range(n_features):        value = heat_values[i, j]        txt_color = "white" if abs(value) > 1.25 else "black"        ax.text(            j,            i,            f"{value:.1f}",            ha="center",            va="center",            fontsize=8.3,            color=txt_color        )# 给特征分组加浅色背景带# 这里用竖线划分几类特征group_edges = [591418]for edge in group_edges[:-1]:    ax.axvline(edge - 0.5, color="black", linewidth=1.1, alpha=0.55)# 顶部特征组标签group_labels = [    ("Deformation"04),    ("Environment"58),    ("Damage response"913),    ("Dynamic / safety"1417)]for label, start, end in group_labels:    xpos = (start + end) / 2    ax.text(        xpos,        -0.65,        label,        ha="center",        va="center",        fontsize=11,        weight="bold"    )cbar = fig.colorbar(im, ax=ax, shrink=0.85, pad=0.015)cbar.set_label("Standardized mean feature value", fontsize=12)cbar.ax.tick_params(labelsize=10)ax.set_xlabel("Features", fontsize=13)ax.set_ylabel("Engineering states", fontsize=13)ax.spines["top"].set_visible(False)ax.spines["right"].set_visible(False)plt.tight_layout()plt.savefig(    os.path.join(out_dir, "02_state_feature_heatmap.png"),    bbox_inches="tight",    facecolor="white")# 保存数据# 保存高维数据header = ",".join(feature_names) + ",state_id,state_name,UMAP_1,UMAP_2"state_name_array = np.array([state_names[i] for i in y], dtype=object)# 因为 np.savetxt 不方便混合字符串,这里分两份保存numeric_data = np.column_stack([    X,    y,    embedding[:, 0],    embedding[:, 1]])numeric_header = ",".join(feature_names) + ",state_id,UMAP_1,UMAP_2"

    特别声明:

    以上代码与文案均为网上资料整合而成,仅供广大同行们参考学习,如有侵权请联系删除。

    如有其他需要,欢迎关注我的咸鱼号:pfc小姐姐

    最新文章

    随机文章

    基本 文件 流程 错误 SQL 调试
    1. 请求信息 : 2026-07-03 02:19:23 HTTP/2.0 GET : https://f.mffb.com.cn/a/501618.html
    2. 运行时间 : 0.288401s [ 吞吐率:3.47req/s ] 内存消耗:4,848.03kb 文件加载:140
    3. 缓存信息 : 0 reads,0 writes
    4. 会话信息 : SESSION_ID=e9d10c0a6916760b80bc6a1d7128c60b
    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.000684s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
    2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000773s ]
    3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.021063s ]
    4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.003388s ]
    5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000628s ]
    6. SELECT * FROM `set` [ RunTime:0.004672s ]
    7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000665s ]
    8. SELECT * FROM `article` WHERE `id` = 501618 LIMIT 1 [ RunTime:0.016310s ]
    9. UPDATE `article` SET `lasttime` = 1783016363 WHERE `id` = 501618 [ RunTime:0.000650s ]
    10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000280s ]
    11. SELECT * FROM `article` WHERE `id` < 501618 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000469s ]
    12. SELECT * FROM `article` WHERE `id` > 501618 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000545s ]
    13. SELECT * FROM `article` WHERE `id` < 501618 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.010768s ]
    14. SELECT * FROM `article` WHERE `id` < 501618 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.015830s ]
    15. SELECT * FROM `article` WHERE `id` < 501618 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.034750s ]
    0.292158s