图表组件

📎 引用文件

本文引用的文件 - CandlestickChart.tsx - EquityChart.tsx - CorrelationMatrix.tsx - DistributionChart.tsx - MonteCarloPathsChart.tsx - RegimeTimeline.tsx - ValidationPanel.tsx - WalkForwardChart.tsx - MiniEquityChart.tsx - echarts.ts - chart-theme.ts

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本文件为 Vibe-Trading 前端应用的图表组件提供系统化文档,覆盖 K线图(CandlestickChart)、权益曲线图(EquityChart)、相关性矩阵(CorrelationMatrix)、分布图(DistributionChart)、蒙特卡洛路径图(MonteCarloPathsChart)、制度时间线(RegimeTimeline)、验证面板(ValidationPanel)、滚动前向测试图(WalkForwardChart)与迷你权益图(MiniEquityChart)。内容包含: - 数据格式要求、配置选项、交互功能 - ECharts 集成方式与主题系统 - 性能优化策略与最佳实践 - 自定义图表开发指南

项目结构

图表组件集中于 frontend/src/components/charts,统一通过 lib/echarts 注册 ECharts 模块,并通过 lib/chart-theme 获取主题色。各组件遵循“受控 props + useEffect 初始化实例 + setOption 更新”的 React 模式,并使用 ResizeObserver 进行自适应。

graph TB subgraph "图表组件" A["K线图<br/>CandlestickChart"] B["权益曲线图<br/>EquityChart"] C["相关性矩阵<br/>CorrelationMatrix"] D["分布图<br/>DistributionChart"] E["蒙特卡洛路径图<br/>MonteCarloPathsChart"] F["制度时间线<br/>RegimeTimeline"] G["验证面板<br/>ValidationPanel"] H["滚动前向测试图<br/>WalkForwardChart"] I["迷你权益图<br/>MiniEquityChart"] end subgraph "公共库" L["ECharts 注册与连接<br/>lib/echarts.ts"] T["主题系统<br/>lib/chart-theme.ts"] end A --> L B --> L C --> L D --> L E --> L F --> L G --> D G --> E G --> H H --> L I --> L A --> T B --> T C --> T D --> T E --> T F --> T G --> T H --> T I --> T

图示来源 - CandlestickChart.tsx:1-10 - EquityChart.tsx:1-7 - CorrelationMatrix.tsx:1-5 - DistributionChart.tsx:1-5 - MonteCarloPathsChart.tsx:1-7 - RegimeTimeline.tsx:1-6 - ValidationPanel.tsx:1-6 - WalkForwardChart.tsx:1-6 - MiniEquityChart.tsx:1-4 - echarts.ts:1-37 - chart-theme.ts:1-66

章节来源 - CandlestickChart.tsx:1-329 - EquityChart.tsx:1-125 - CorrelationMatrix.tsx:1-123 - DistributionChart.tsx:1-110 - MonteCarloPathsChart.tsx:1-140 - RegimeTimeline.tsx:1-145 - ValidationPanel.tsx:1-237 - WalkForwardChart.tsx:1-108 - MiniEquityChart.tsx:1-59 - echarts.ts:1-37 - chart-theme.ts:1-66

核心组件

章节来源 - CandlestickChart.tsx:29-329 - EquityChart.tsx:9-125 - CorrelationMatrix.tsx:7-123 - DistributionChart.tsx:6-110 - MonteCarloPathsChart.tsx:9-140 - RegimeTimeline.tsx:8-145 - ValidationPanel.tsx:8-237 - WalkForwardChart.tsx:10-108 - MiniEquityChart.tsx:6-59

架构总览

所有图表均基于 ECharts 构建,通过统一的注册入口启用所需图表类型与组件,并共享主题系统。多个图表可加入同一分组以实现联动(如缩放同步)。

sequenceDiagram participant R as "React组件" participant E as "ECharts实例" participant T as "主题系统" participant U as "UI事件/Resize" R->>T : 获取主题色 R->>E : init(容器) R->>E : setOption(系列/坐标轴/提示框等) U-->>R : 尺寸变化 R->>E : resize() Note over R,E : 使用分组实现多图联动

图示来源 - echarts.ts:16-34 - chart-theme.ts:25-65 - CandlestickChart.tsx:87-110 - EquityChart.tsx:18-24

详细组件分析

K线图(CandlestickChart)

flowchart TD Start(["初始化"]) --> BuildBase["构建基础数组<br/>dates/candles/volume"] BuildBase --> CalcIndicators["计算指标缓存<br/>MA/EMA/BOLL/MACD/RSI/KDJ"] CalcIndicators --> OverlaySel{"是否启用叠加?"} OverlaySel --> |是| AddOverlay["添加均线/通道系列"] OverlaySel --> |否| SkipOverlay["跳过"] AddOverlay --> SubSel{"选择子图"} SkipOverlay --> SubSel SubSel --> Vol["成交量"] SubSel --> MACD["MACD"] SubSel --> RSI["RSI"] SubSel --> KDJ["KDJ"] Vol --> Render["setOption 渲染"] MACD --> Render RSI --> Render KDJ --> Render Render --> Interact["交互: 范围/指标/子图"]

图示来源 - CandlestickChart.tsx:53-85 - CandlestickChart.tsx:112-268

章节来源 - CandlestickChart.tsx:29-329

权益曲线图(EquityChart)

章节来源 - EquityChart.tsx:9-125

相关性矩阵(CorrelationMatrix)

章节来源 - CorrelationMatrix.tsx:7-123

分布图(DistributionChart)

章节来源 - DistributionChart.tsx:6-110

蒙特卡洛路径图(MonteCarloPathsChart)

章节来源 - MonteCarloPathsChart.tsx:9-140

制度时间线(RegimeTimeline)

章节来源 - RegimeTimeline.tsx:8-145

验证面板(ValidationPanel)

章节来源 - ValidationPanel.tsx:8-237

滚动前向测试图(WalkForwardChart)

章节来源 - WalkForwardChart.tsx:10-108

迷你权益图(MiniEquityChart)

章节来源 - MiniEquityChart.tsx:6-59

依赖关系分析

graph LR EC["echarts.ts"] --> CC["CandlestickChart"] EC --> EQ["EquityChart"] EC --> CM["CorrelationMatrix"] EC --> DC["DistributionChart"] EC --> MC["MonteCarloPathsChart"] EC --> RT["RegimeTimeline"] EC --> WF["WalkForwardChart"] EC --> ME["MiniEquityChart"] TH["chart-theme.ts"] --> CC TH --> EQ TH --> CM TH --> DC TH --> MC TH --> RT TH --> WF TH --> ME VP["ValidationPanel"] --> DC VP --> MC VP --> WF

图示来源 - echarts.ts:16-34 - chart-theme.ts:25-65 - ValidationPanel.tsx:4-6

章节来源 - echarts.ts:1-37 - chart-theme.ts:1-66 - ValidationPanel.tsx:1-237

性能考量

[本节为通用指导,无需特定文件引用]

故障排查指南

章节来源 - MiniEquityChart.tsx:15-18 - chart-theme.ts:25-65 - echarts.ts:25-34 - CandlestickChart.tsx:206-256

结论

本套图表组件基于 ECharts 构建了统一的前端可视化体系,具备丰富的交互能力与良好的性能表现。通过主题系统与模块化注册,保证了视觉一致性与扩展性。建议在实际使用中遵循数据预处理、实例复用与响应式优化的最佳实践,以获得流畅的用户体验。

[本节为总结,无需特定文件引用]

附录

ECharts 集成要点

章节来源 - echarts.ts:1-37 - chart-theme.ts:25-65

数据可视化最佳实践

[本节为通用指导,无需特定文件引用]

自定义图表开发指南

章节来源 - CandlestickChart.tsx:87-110 - EquityChart.tsx:18-24 - chart-theme.ts:25-65