You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中TradingView Lightweight图表能否将横轴从日改为分钟显示?

在Swift中为TradingView Lightweight图表设置分钟刻度替代日期显示

要实现将TradingView Lightweight图表的时间轴从日期刻度替换为分钟刻度,核心是通过配置时间轴(Time Scale)的自定义格式化器和刻度规则,以下是具体实现步骤:

1. 自定义时间刻度格式化逻辑

通过TimeScaleOptions中的timeFormatter和tickMarkFormatter,将时间戳转换为分钟维度的显示文本(比如时分格式HH:mm,或相对于起始时间的累计分钟数)。

2. 配置时间轴刻度间隔

强制设置时间轴的最小间隔,确保图表按分钟粒度渲染刻度。

Swift代码示例

import LightweightCharts

// 假设已准备好符合要求的CandlestickData数组,time字段为毫秒级时间戳
let yourCandlestickData: [CandlestickData] = // 你的K线数据

// 初始化图表配置
let chartOptions = ChartOptions()
chartOptions.timeScale = TimeScaleOptions()

// 自定义主时间刻度文本格式(显示时分)
chartOptions.timeScale?.timeFormatter = { timestamp in
    let date = Date(timeIntervalSince1970: timestamp / 1000)
    let formatter = DateFormatter()
    formatter.dateFormat = "HH:mm"
    return formatter.string(from: date)
}

// 自定义刻度标记的文本格式
chartOptions.timeScale?.tickMarkFormatter = { tickMark in
    guard let timestamp = tickMark.timestamp else { return "" }
    let date = Date(timeIntervalSince1970: timestamp / 1000)
    let formatter = DateFormatter()
    formatter.dateFormat = "HH:mm"
    return formatter.string(from: date)
}

// 设置最小刻度间隔,适配分钟粒度
chartOptions.timeScale?.minBarSpacing = 1
// 可选:固定左侧边缘,避免刻度偏移
chartOptions.timeScale?.fixLeftEdge = true

// 创建图表并加载数据
let chart = Chart(frame: CGRect(x: 0, y: 0, width: 300, height: 200), options: chartOptions)
let candlestickSeries = chart.addCandlestickSeries()
candlestickSeries.setData(yourCandlestickData)

注意事项

  • 确认传入的CandlestickData.time为毫秒级时间戳(Lightweight Charts默认时间单位),若为秒级需乘以1000转换。
  • 若需严格按整分钟刻度对齐,需保证数据的时间戳对应整分钟节点(例如每60000毫秒一个数据点)。
  • 可通过chart.timeScale().setVisibleRange(from: startTimestamp, to: endTimestamp)控制显示的时间范围,让分钟刻度更清晰。

内容的提问来源于stack exchange,提问作者usr324

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:25:18