当前位置:首页>行情>Plotly量化专用K线图(行情分析必备)

Plotly量化专用K线图(行情分析必备)

  • 2026-05-17 12:02:37
Plotly量化专用K线图(行情分析必备)

行情分析是量化策略落地的基础,而K线图则是行情分析的核心工具——通过红绿K线、上下影线,能直观呈现股价/期货价格的开盘、收盘、最高、最低点位,判断市场趋势和多空力量。传统绘制K线常用mplfinance,但操作繁琐、样式单一,且缺乏交互式体验;Plotly可轻松绘制专业K线图,支持红绿涨跌区分、叠加均线/布林带/成交量,还能优化时间轴、标注关键点位,操作更简洁、可视化效果更优,本篇将手把手教大家实操,所有代码可直接复制复用,新手也能快速上手,独立完成股票/期货行情分析和策略复盘。

📌 核心说明

本文适配Python 3.8+、Plotly 5.0+,无需额外配置环境(默认已完成中文、显示方式配置);学习前建议掌握Plotly基础语法及Pandas数据处理技巧,能通过AkShare、Tushare等工具获取行情数据(包含开盘价、收盘价、最高价、最低价、成交量)。

落地成果:学完能独立绘制专业交互式K线图,实现红绿涨跌区分、叠加均线/布林带/成交量,优化时间轴、标注关键点位,替代mplfinance简化操作,适配股票/期货行情分析、策略复盘需求。

📈 Plotly K线图核心原理(极简理解)

Plotly绘制K线图,核心依赖plotly.graph_objects(go)模块(区别于之前的px模块),通过Candlestick(烛台图)函数实现K线绘制,重点控制4个核心参数:开盘价(open)、收盘价(close)、最高价(high)、最低价(low),再通过自定义配置实现红绿涨跌区分、上下影线显示,后续可叠加其他指标(均线、布林带),形成完整的行情分析图表。

核心优势:无需手动拼接K线组件,一行代码即可生成专业K线;支持交互式操作(悬浮查看详细行情、缩放时间区间);可灵活叠加各类技术指标,操作比mplfinance更简洁,适配量化复盘场景。

🔧 实战场景1:基础K线图(红绿涨跌+上下影线)

基础K线图是行情分析的基础,重点实现“红绿涨跌区分”(收盘价>开盘价为涨,显示红色;收盘价<开盘价为跌,显示绿色)、清晰呈现上下影线,同时优化时间轴,适配A股/期货行情习惯。

import plotly.graph_objects as goimport pandas as pdimport numpy as np# 1. 准备行情数据(模拟A股日线数据,可替换为AkShare/Tushare真实数据)# 日期范围:2024年1-3月(60个交易日)date = pd.date_range(start="2024-01-01", periods=60, freq="D")np.random.seed(42)# 模拟开盘价、收盘价、最高价、最低价(贴合A股股价范围)open_price = np.round(np.random.uniform(304060), 2)close_price = np.round(open_price + np.random.uniform(-1.51.560), 2)high_price = np.round(np.maximum(open_price, close_price) + np.random.uniform(0.10.860), 2)low_price = np.round(np.minimum(open_price, close_price) - np.random.uniform(0.10.860), 2)# 整理成DataFrame(Plotly K线图首选格式)df = pd.DataFrame({    "日期": date,    "开盘价": open_price,    "收盘价": close_price,    "最高价": high_price,    "最低价": low_price})# 2. 绘制基础K线图(核心代码)fig = go.Figure(data=[go.Candlestick(    x=df["日期"],    open=df["开盘价"],    high=df["最高价"],    low=df["最低价"],    close=df["收盘价"],    # 红绿涨跌区分(适配A股习惯:涨红跌绿)    increasing_line_color="#FF6B6B",  # 上涨K线颜色(红色)    increasing_fillcolor="#FF6B6B",    decreasing_line_color="#4ECDC4",  # 下跌K线颜色(绿色)    decreasing_fillcolor="#4ECDC4",    line_width=1,  # K线边框粗细    whiskerwidth=0.5  # 上下影线宽度)])# 3. 优化布局(适配行情分析,重点调整时间轴)fig.update_layout(    title=dict(text="A股某股票日线K线图(2024年1-3月)", font=dict(size=14, weight="bold"), x=0.5),    xaxis=dict(        title="日期",        title_font=dict(size=12),        tickfont=dict(size=10),        tickangle=45,        # 时间轴优化:显示每月1号标记,避免日期过于密集        tickformat="%Y-%m-%d",        rangeslider_visible=False  # 隐藏时间范围滑块,避免冗余(按需开启)    ),    yaxis=dict(        title="股价(元)",        title_font=dict(size=12),        tickfont=dict(size=10),        # 股价轴优化:显示网格线,方便判断价格区间        gridcolor="#EEEEEE",        zeroline=False    ),    margin=dict(l=50, r=50, t=50, b=80),    plot_bgcolor="white",    hovermode="x unified"  # 悬浮时显示同一日期的所有行情数据)# 4. 显示并保存fig.show()fig.write_html("基础K线图.html")  # 交互版,用于行情分析fig.write_image("基础K线图.png", scale=3)  # 高清图片版,用于复盘报告

关键说明:

✅ 涨跌颜色配置:通过increasing(上涨)、decreasing(下跌)参数设置颜色,贴合A股“涨红跌绿”习惯,也可根据需求调整为美股“涨绿跌红”;

✅ 时间轴优化:rangeslider_visible=False 隐藏底部时间滑块,避免冗余;tickformat设置日期格式,避免标签重叠;

✅ 交互式体验:悬浮时可清晰查看当日开盘价、收盘价、最高价、最低价,无需手动标注,适配行情复盘。

🔧 实战场景2:K线图叠加均线/布林带(技术分析必备)

行情分析中,仅看K线不够,需叠加均线(MA)、布林带(BOLL)等技术指标,辅助判断趋势和支撑压力位。Plotly可通过“多图表叠加”实现,将K线与均线、布林带同屏显示,操作简洁,无需额外拼接代码。

import plotly.graph_objects as goimport pandas as pdimport numpy as np# 1. 准备行情数据+技术指标数据date = pd.date_range(start="2024-01-01", periods=60, freq="D")np.random.seed(42)open_price = np.round(np.random.uniform(304060), 2)close_price = np.round(open_price + np.random.uniform(-1.51.560), 2)high_price = np.round(np.maximum(open_price, close_price) + np.random.uniform(0.10.860), 2)low_price = np.round(np.minimum(open_price, close_price) - np.random.uniform(0.10.860), 2)# 计算均线(MA5:5日均线,MA10:10日均线,MA20:20日均线)df = pd.DataFrame({    "日期": date,    "开盘价": open_price,    "收盘价": close_price,    "最高价": high_price,    "最低价": low_price})df["MA5"] = df["收盘价"].rolling(window=5).mean()  # 5日均线df["MA10"] = df["收盘价"].rolling(window=10).mean()  # 10日均线df["MA20"] = df["收盘价"].rolling(window=20).mean()  # 20日均线# 计算布林带(BOLL:中轨=MA20,上轨=MA20+2*标准差,下轨=MA20-2*标准差)df["中轨"] = df["收盘价"].rolling(window=20).mean()df["标准差"] = df["收盘价"].rolling(window=20).std()df["上轨"] = df["中轨"] + 2 * df["标准差"]df["下轨"] = df["中轨"] - 2 * df["标准差"]# 2. 绘制K线图+均线+布林带(核心:多图表叠加)fig = go.Figure()# 第一步:添加K线图(基础层)fig.add_trace(go.Candlestick(    x=df["日期"],    open=df["开盘价"],    high=df["最高价"],    low=df["最低价"],    close=df["收盘价"],    increasing_line_color="#FF6B6B",    increasing_fillcolor="#FF6B6B",    decreasing_line_color="#4ECDC4",    decreasing_fillcolor="#4ECDC4",    line_width=1,    whiskerwidth=0.5,    name="K线"))# 第二步:添加均线(中层)fig.add_trace(go.Scatter(    x=df["日期"],    y=df["MA5"],    mode="lines",    line=dict(color="#F9C74F", width=1.5),    name="MA5(5日均线)"))fig.add_trace(go.Scatter(    x=df["日期"],    y=df["MA10"],    mode="lines",    line=dict(color="#1E88E5", width=1.5),    name="MA10(10日均线)"))fig.add_trace(go.Scatter(    x=df["日期"],    y=df["MA20"],    mode="lines",    line=dict(color="#9C27B0", width=1.5),    name="MA20(20日均线)"))# 第三步:添加布林带(顶层,填充效果)fig.add_trace(go.Scatter(    x=df["日期"],    y=df["上轨"],    mode="lines",    line=dict(color="#90EE90", width=1, dash="dash"),    name="上轨(BOLL)"))fig.add_trace(go.Scatter(    x=df["日期"],    y=df["下轨"],    mode="lines",    line=dict(color="#90EE90", width=1, dash="dash"),    fill="tonexty",  # 填充上轨和下轨之间的区域    fillcolor="rgba(144, 238, 144, 0.2)",  # 半透明绿色填充    name="布林带区间"))fig.add_trace(go.Scatter(    x=df["日期"],    y=df["中轨"],    mode="lines",    line=dict(color="#90EE90", width=1),    name="中轨(BOLL)"))# 3. 布局优化(突出技术指标,适配分析)fig.update_layout(    title=dict(text="K线图+均线+布林带(技术分析版)", font=dict(size=14, weight="bold"), x=0.5),    xaxis=dict(        title="日期",        title_font=dict(size=12),        tickfont=dict(size=10),        tickangle=45,        rangeslider_visible=False    ),    yaxis=dict(        title="股价(元)",        title_font=dict(size=12),        tickfont=dict(size=10),        gridcolor="#EEEEEE"    ),    legend=dict(        font=dict(size=10),        x=0.02,        y=0.98,        align="left",        bgcolor="white",        bordercolor="gray",        borderwidth=1    ),    margin=dict(l=50, r=50, t=50, b=80),    plot_bgcolor="white",    hovermode="x unified")# 4. 显示并保存fig.show()fig.write_html("K线+均线+布林带.html")fig.write_image("K线+均线+布林带.png", dpi=300)

核心技巧:

✅ 多图表叠加:按“K线→均线→布林带”的顺序添加,确保底层图表不被遮挡;

✅ 布林带填充:通过fill="tonexty"填充上轨和下轨之间的区域,半透明效果既突出区间,又不遮挡K线和均线;

✅ 均线区分:不同均线用不同颜色和粗细区分,方便快速识别,贴合技术分析习惯。

🔧 实战场景3:K线图叠加成交量(完整行情分析)

成交量是行情分析的重要辅助指标,能反映市场活跃度,判断趋势的有效性。Plotly可通过“子图布局”实现K线图与成交量图同屏显示,上半部分展示K线+技术指标,下半部分展示成交量,形成完整的行情分析图表,替代mplfinance的复杂操作。

import plotly.graph_objects as gofrom plotly.subplots import make_subplotsimport pandas as pdimport numpy as np# 1. 准备行情数据+成交量数据date = pd.date_range(start="2024-01-01", periods=60, freq="D")np.random.seed(42)open_price = np.round(np.random.uniform(304060), 2)close_price = np.round(open_price + np.random.uniform(-1.51.560), 2)high_price = np.round(np.maximum(open_price, close_price) + np.random.uniform(0.10.860), 2)low_price = np.round(np.minimum(open_price, close_price) - np.random.uniform(0.10.860), 2)# 模拟成交量(与涨跌正相关,贴合真实行情)volume = np.round(np.random.randint(50002000060) * (1 + (close_price - open_price) / open_price), 0)# 计算5日均线df = pd.DataFrame({    "日期": date,    "开盘价": open_price,    "收盘价": close_price,    "最高价": high_price,    "最低价": low_price,    "成交量": volume})df["MA5"] = df["收盘价"].rolling(window=5).mean()# 2. 创建子图布局(上:K线+均线,下:成交量,比例3:1)fig = make_subplots(    rows=2, cols=1,    shared_xaxes=True,  # 共享x轴(日期),避免重复    vertical_spacing=0.05,  # 子图之间的间距    row_heights=[0.70.3]  # 上子图占70%,下子图占30%)# 3. 上子图:添加K线+均线fig.add_trace(go.Candlestick(    x=df["日期"],    open=df["开盘价"],    high=df["最高价"],    low=df["最低价"],    close=df["收盘价"],    increasing_line_color="#FF6B6B",    increasing_fillcolor="#FF6B6B",    decreasing_line_color="#4ECDC4",    decreasing_fillcolor="#4ECDC4",    line_width=1,    whiskerwidth=0.5,    name="K线"), row=1, col=1)fig.add_trace(go.Scatter(    x=df["日期"],    y=df["MA5"],    mode="lines",    line=dict(color="#F9C74F", width=1.5),    name="MA5(5日均线)"), row=1, col=1)# 4. 下子图:添加成交量(柱状图,涨跌颜色区分)fig.add_trace(go.Bar(    x=df["日期"],    y=df["成交量"],    # 成交量颜色与K线一致:涨红跌绿    marker_color=np.where(df["收盘价"] > df["开盘价"], "#FF6B6B""#4ECDC4"),    name="成交量"), row=2, col=1)# 5. 布局优化(适配完整行情分析)fig.update_layout(    title=dict(text="K线图+均线+成交量(完整行情版)", font=dict(size=14, weight="bold"), x=0.5),    xaxis=dict(        title="日期",        title_font=dict(size=12),        tickfont=dict(size=10),        tickangle=45,        rangeslider_visible=False    ),    yaxis=dict(        title="股价(元)",        title_font=dict(size=12),        tickfont=dict(size=10),        gridcolor="#EEEEEE"    ),    yaxis2=dict(        title="成交量(手)",        title_font=dict(size=12),        tickfont=dict(size=10),        gridcolor="#EEEEEE"    ),    legend=dict(        font=dict(size=10),        x=0.02,        y=0.98,        xanchor="left",        bgcolor="white",        bordercolor="gray",        borderwidth=1    ),    margin=dict(l=50, r=50, t=50, b=80),    plot_bgcolor="white",    hovermode="x unified")# 6. 显示并保存fig.show()fig.write_html("K线+成交量.html")fig.write_image("K线+成交量.png", scale=3)

关键说明:

✅ 子图布局:用make_subplots创建上下子图,shared_xaxes=True实现x轴共享,避免日期重复,提升可读性;

✅ 成交量颜色:与K线涨跌颜色一致,直观反映“量价配合”情况(上涨放量、下跌缩量等);

✅ 比例调整:row_heights=[0.7, 0.3] 合理分配上下子图比例,重点突出K线行情,同时清晰展示成交量。

🔧 实战场景4:关键点位标注(策略复盘必备)

策略复盘时,需要在K线图上标注关键点位(如买入点、卖出点、支撑位、压力位),Plotly可通过add_annotation函数实现,自定义标注样式、颜色和文字,清晰呈现策略的交易逻辑和行情关键节点。

import plotly.graph_objects as goimport pandas as pdimport numpy as np# 1. 准备行情数据+关键点位数据date = pd.date_range(start="2024-01-01", periods=60, freq="D")np.random.seed(42)open_price = np.round(np.random.uniform(304060), 2)close_price = np.round(open_price + np.random.uniform(-1.51.560), 2)high_price = np.round(np.maximum(open_price, close_price) + np.random.uniform(0.10.860), 2)low_price = np.round(np.minimum(open_price, close_price) - np.random.uniform(0.10.860), 2)df = pd.DataFrame({    "日期": date,    "开盘价": open_price,    "收盘价": close_price,    "最高价": high_price,    "最低价": low_price})# 模拟关键点位(买入点、卖出点、支撑位、压力位)buy_date = df.iloc[15]["日期"]  # 第15个交易日为买入点buy_price = df.iloc[15]["收盘价"]sell_date = df.iloc[45]["日期"]  # 第45个交易日为卖出点sell_price = df.iloc[45]["收盘价"]support_price = 32.5  # 支撑位resistance_price = 38.5  # 压力位# 2. 绘制K线图+关键点位标注fig = go.Figure(data=[go.Candlestick(    x=df["日期"],    open=df["开盘价"],    high=df["最高价"],    low=df["最低价"],    close=df["收盘价"],    increasing_line_color="#FF6B6B",    increasing_fillcolor="#FF6B6B",    decreasing_line_color="#4ECDC4",    decreasing_fillcolor="#4ECDC4",    line_width=1,    whiskerwidth=0.5)])# 3. 添加关键点位标注# 买入点标注(绿色三角形,标注文字)fig.add_annotation(    x=buy_date,    y=buy_price,    text="买入点",    font=dict(size=10, color="white", weight="bold"),    bgcolor="#4ECDC4",  # 标注背景色(绿色)    bordercolor="black",    borderwidth=1,    arrowhead=2,  # 箭头样式    arrowsize=1,    arrowcolor="#4ECDC4",    ax=0,    ay=-30  # 标注位置偏移,避免遮挡K线)# 卖出点标注(红色三角形,标注文字)fig.add_annotation(    x=sell_date,    y=sell_price,    text="卖出点",    font=dict(size=10, color="white", weight="bold"),    bgcolor="#FF6B6B",  # 标注背景色(红色)    bordercolor="black",    borderwidth=1,    arrowhead=2,    arrowsize=1,    arrowcolor="#FF6B6B",    ax=0,    ay=30)# 支撑位标注(水平直线+文字)fig.add_hline(    y=support_price,    line_color="#9C27B0",    line_width=1,    line_dash="dash",    annotation_text="支撑位:32.5元",    annotation_position="right",    annotation_font=dict(size=10, color="#9C27B0"))# 压力位标注(水平直线+文字)fig.add_hline(    y=resistance_price,    line_color="#F9C74F",    line_width=1,    line_dash="dash",    annotation_text="压力位:38.5元",    annotation_position="right",    annotation_font=dict(size=10, color="#F9C74F"))# 4. 布局优化fig.update_layout(    title=dict(text="K线图+关键点位标注(策略复盘版)", font=dict(size=14, weight="bold"), x=0.5),    xaxis=dict(        title="日期",        title_font=dict(size=12),        tickfont=dict(size=10),        tickangle=45,        rangeslider_visible=False    ),    yaxis=dict(        title="股价(元)",        title_font=dict(size=12),        tickfont=dict(size=10),        gridcolor="#EEEEEE"    ),    margin=dict(l=50, r=100, t=50, b=80),  # 右侧留足空间,避免标注被截断    plot_bgcolor="white",    hovermode="x unified")# 5. 显示并保存fig.show()fig.write_html("K线+关键点位标注.html")fig.write_image("K线+关键点位标注.png", scale=3)

核心技巧:

✅ 标注样式:买入/卖出点用带箭头的标注框,支撑/压力位用水平虚线+文字,清晰区分不同类型的关键点位;

✅ 位置偏移:通过ax、ay参数调整标注位置,避免遮挡K线,提升图表可读性;

✅ 颜色统一:标注颜色与图表整体风格一致,贴合量化复盘报告的专业感。

🔄 与mplfinance对比(核心优势,简化操作)

很多人用mplfinance绘制K线图,但操作繁琐、样式单一,对比Plotly,两者核心差异如下,帮你快速选择合适的工具:

# 【mplfinance 绘制K线图(简化版)】import matplotlib.pyplot as pltimport mplfinance as mpfimport pandas as pdimport numpy as np# 配置 matplotlib 中文字体,解决乱码问题plt.rcParams["font.sans-serif"] = ["SimHei""Microsoft YaHei"]plt.rcParams["axes.unicode_minus"] = Falsedate = pd.date_range(start="2024-01-01", periods=60, freq="D")open_price = np.round(np.random.uniform(304060), 2)close_price = np.round(open_price + np.random.uniform(-1.51.560), 2)high_price = np.round(np.maximum(open_price, close_price) + np.random.uniform(0.10.860), 2)low_price = np.round(np.minimum(open_price, close_price) - np.random.uniform(0.10.860), 2)df = pd.DataFrame({    "Open": open_price,    "High": high_price,    "Low": low_price,    "Close": close_price}, index=date)# 创建支持中文的自定义样式custom_style = mpf.make_mpf_style(    base_mpf_style="yahoo",    rc={"font.family""SimHei""axes.unicode_minus"False})# 绘制K线图(需手动配置样式,叠加指标繁琐)mpf.plot(    df,    type="candle",    style=custom_style,    title="mplfinance K线图",    ylabel="股价(元)",    figratio=(12,6))# 【Plotly 绘制K线图(简化版)】import plotly.graph_objects as gofig = go.Figure(data=[go.Candlestick(    x=df.index,    open=df["Open"],    high=df["High"],    low=df["Low"],    close=df["Close"])])fig.update_layout(title="Plotly K线图", xaxis_title="日期", yaxis_title="股价(元)")fig.show()

核心差异总结:

✅ mplfinance:样式固定,叠加均线、成交量需额外配置,图表静态,无交互式体验,操作繁琐;

✅ Plotly:语法简洁,无需手动配置基础样式,支持交互式操作,可灵活叠加均线、布林带、成交量,标注关键点位,适配量化复盘和报告展示,完全可替代mplfinance。

💡 新手避坑提醒

1.  绘制K线图需使用plotly.graph_objects(go)模块,而非之前的px模块,注意导入方式正确;

2.  行情数据必须包含“开盘价、收盘价、最高价、最低价”四个核心字段,缺失会导致K线无法正常显示;

3.  叠加多个指标(均线、布林带)时,注意添加顺序,避免底层图表被遮挡,同时合理设置颜色和粗细,确保清晰可辨;

4.  时间轴优化时,rangeslider_visible参数可根据需求开启/关闭,避免冗余;标注关键点位时,注意位置偏移,避免遮挡K线。

最新文章

随机文章

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