Griffin Chow / 图表功能测试 - ECharts Map/GL 与 Markmap 多实例

Created Fri, 24 Oct 2025 00:00:00 +0000 Modified Thu, 06 Nov 2025 04:24:59 +0000
4114 Words

图表渲染功能测试

本文档用于测试新集成的图表功能,包括 ECharts 地图组件、3D/GL 组件以及 Markmap 多实例渲染。

1. ECharts 基础图表测试

1.1 柱状图(主题自适应测试)

{
  "title": {
    "text": "月度销售数据",
    "subtext": "主题自动适配测试"
  },
  "tooltip": {
    "trigger": "axis"
  },
  "legend": {
    "data": ["销售额"]
  },
  "xAxis": {
    "type": "category",
    "data": ["一月", "二月", "三月", "四月", "五月", "六月", "七月"]
  },
  "yAxis": {
    "type": "value"
  },
  "series": [{
    "name": "销售额",
    "data": [120, 200, 150, 80, 70, 110, 130],
    "type": "bar",
    "itemStyle": {
      "color": "#5470c6"
    }
  }]
}

1.2 折线图(多系列)

{
  "title": {
    "text": "网站流量统计"
  },
  "tooltip": {
    "trigger": "axis"
  },
  "legend": {
    "data": ["访问量", "注册量", "购买量"]
  },
  "grid": {
    "left": "3%",
    "right": "4%",
    "bottom": "3%",
    "containLabel": true
  },
  "xAxis": {
    "type": "category",
    "boundaryGap": false,
    "data": ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
  },
  "yAxis": {
    "type": "value"
  },
  "series": [
    {
      "name": "访问量",
      "type": "line",
      "data": [120, 132, 101, 134, 90, 230, 210]
    },
    {
      "name": "注册量",
      "type": "line",
      "data": [220, 182, 191, 234, 290, 330, 310]
    },
    {
      "name": "购买量",
      "type": "line",
      "data": [150, 232, 201, 154, 190, 330, 410]
    }
  ]
}

2. ECharts 高级图表测试

2.1 雷达图

{
  "title": {
    "text": "能力评估雷达图"
  },
  "tooltip": {},
  "legend": {
    "data": ["实际得分", "预期得分"]
  },
  "radar": {
    "indicator": [
      { "name": "编程能力", "max": 100 },
      { "name": "沟通能力", "max": 100 },
      { "name": "项目经验", "max": 100 },
      { "name": "学习能力", "max": 100 },
      { "name": "团队协作", "max": 100 }
    ]
  },
  "series": [{
    "name": "能力评估",
    "type": "radar",
    "data": [
      {
        "value": [85, 70, 75, 90, 80],
        "name": "实际得分"
      },
      {
        "value": [90, 85, 80, 95, 90],
        "name": "预期得分"
      }
    ]
  }]
}

2.2 桑基图

{
  "title": {
    "text": "用户流转桑基图"
  },
  "tooltip": {
    "trigger": "item",
    "triggerOn": "mousemove"
  },
  "series": [{
    "type": "sankey",
    "layout": "none",
    "emphasis": {
      "focus": "adjacency"
    },
    "data": [
      {"name": "首页"},
      {"name": "产品页"},
      {"name": "详情页"},
      {"name": "购物车"},
      {"name": "结算"},
      {"name": "支付成功"}
    ],
    "links": [
      {"source": "首页", "target": "产品页", "value": 5000},
      {"source": "产品页", "target": "详情页", "value": 3000},
      {"source": "详情页", "target": "购物车", "value": 1500},
      {"source": "购物车", "target": "结算", "value": 800},
      {"source": "结算", "target": "支付成功", "value": 600}
    ]
  }]
}

3. ECharts 3D/GL 组件测试

3.1 3D 柱状图

{
  "title": {
    "text": "3D 柱状图示例"
  },
  "tooltip": {},
  "visualMap": {
    "max": 100,
    "inRange": {
      "color": ["#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8", "#ffffbf", "#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026"]
    }
  },
  "xAxis3D": {
    "type": "category",
    "data": ["A", "B", "C", "D", "E"]
  },
  "yAxis3D": {
    "type": "category",
    "data": ["X", "Y", "Z"]
  },
  "zAxis3D": {
    "type": "value"
  },
  "grid3D": {
    "boxWidth": 200,
    "boxDepth": 80,
    "viewControl": {
      "autoRotate": false
    }
  },
  "series": [{
    "type": "bar3D",
    "data": [
      [0, 0, 50], [0, 1, 70], [0, 2, 60],
      [1, 0, 80], [1, 1, 90], [1, 2, 75],
      [2, 0, 65], [2, 1, 85], [2, 2, 95],
      [3, 0, 55], [3, 1, 65], [3, 2, 70],
      [4, 0, 60], [4, 1, 75], [4, 2, 80]
    ],
    "shading": "color",
    "label": {
      "show": false
    },
    "emphasis": {
      "label": {
        "show": true
      },
      "itemStyle": {
        "color": "#900"
      }
    }
  }]
}

3.2 3D 散点图

{
  "title": {
    "text": "3D 散点图"
  },
  "tooltip": {},
  "xAxis3D": {
    "type": "value"
  },
  "yAxis3D": {
    "type": "value"
  },
  "zAxis3D": {
    "type": "value"
  },
  "grid3D": {
    "viewControl": {
      "autoRotate": true,
      "autoRotateSpeed": 10
    }
  },
  "series": [{
    "type": "scatter3D",
    "symbolSize": 12,
    "data": [
      [1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4], [5, 5, 5],
      [1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7],
      [1, 5, 2], [2, 4, 3], [3, 3, 4], [4, 2, 5], [5, 1, 6]
    ],
    "itemStyle": {
      "opacity": 0.8
    }
  }]
}

3.3 3D 曲面图

{
  "title": {
    "text": "3D 曲面图(数学函数曲面)"
  },
  "tooltip": {},
  "visualMap": {
    "show": false,
    "min": -1,
    "max": 1,
    "inRange": {
      "color": ["#313695", "#4575b4", "#74add1", "#abd9e9", "#fee090", "#fdae61", "#f46d43", "#d73027"]
    }
  },
  "xAxis3D": {
    "type": "value",
    "min": -3,
    "max": 3
  },
  "yAxis3D": {
    "type": "value",
    "min": -3,
    "max": 3
  },
  "zAxis3D": {
    "type": "value"
  },
  "grid3D": {
    "viewControl": {
      "autoRotate": true,
      "autoRotateSpeed": 10
    }
  },
  "series": [{
    "type": "surface",
    "wireframe": {
      "show": false
    },
    "shading": "color",
    "data": [
      [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 0.9, 0.8, 0.7, 0.6],
      [0.6, 0.7, 0.8, 0.9, 1.0, 0.9, 0.8, 0.7, 0.6, 0.5],
      [0.7, 0.8, 0.9, 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4],
      [0.8, 0.9, 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3],
      [0.9, 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2],
      [1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1],
      [0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0],
      [0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0, -0.1],
      [0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0, -0.1, -0.2],
      [0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0, -0.1, -0.2, -0.3]
    ]
  }]
}

3.4 3D 折线图

{
  "title": {
    "text": "3D 折线图"
  },
  "tooltip": {},
  "xAxis3D": {
    "type": "value"
  },
  "yAxis3D": {
    "type": "value"
  },
  "zAxis3D": {
    "type": "value"
  },
  "grid3D": {
    "viewControl": {
      "projection": "perspective",
      "autoRotate": false
    }
  },
  "series": [{
    "type": "line3D",
    "data": [
      [0, 0, 0], [1, 1, 2], [2, 0.5, 3],
      [3, 2, 4], [4, 1.5, 5], [5, 3, 6],
      [6, 2.5, 5], [7, 4, 4], [8, 3.5, 3],
      [9, 5, 2], [10, 4.5, 1]
    ],
    "lineStyle": {
      "width": 4,
      "color": "#1e90ff"
    }
  }]
}

4. ECharts 地图组件测试

注意:地图数据已集成,会自动加载 chinaworld 地图的 GeoJSON 数据。

4.1 中国地图(散点)

中国地图会自动加载地理数据,无需手动注册。

{
  "title": {
    "text": "主要城市分布",
    "subtext": "中国主要城市分布图"
  },
  "tooltip": {
    "trigger": "item"
  },
  "geo": {
    "map": "china",
    "roam": true,
    "label": {
      "show": true,
      "fontSize": 10
    },
    "emphasis": {
      "label": {
        "show": true
      }
    }
  },
  "series": [{
    "name": "城市",
    "type": "scatter",
    "coordinateSystem": "geo",
    "data": [
      {"name": "北京", "value": [116.4074, 39.9042, 100]},
      {"name": "上海", "value": [121.4737, 31.2304, 200]},
      {"name": "广州", "value": [113.2644, 23.1291, 150]}
    ],
    "symbolSize": 15,
    "itemStyle": {
      "color": "#c23531"
    }
  }]
}

4.2 世界地图(散点)

世界地图会自动加载地理数据,无需手动注册。

{
  "title": {
    "text": "全球主要城市",
    "subtext": "世界主要城市分布图"
  },
  "tooltip": {
    "trigger": "item"
  },
  "geo": {
    "map": "world",
    "roam": true,
    "label": {
      "show": false
    }
  },
  "series": [{
    "name": "城市",
    "type": "scatter",
    "coordinateSystem": "geo",
    "data": [
      {"name": "纽约", "value": [-74.006, 40.7128, 150]},
      {"name": "伦敦", "value": [-0.1276, 51.5074, 120]},
      {"name": "东京", "value": [139.6917, 35.6895, 180]}
    ],
    "symbolSize": 12
  }]
}

4.3 不需要地图数据的地理坐标图

以下是直接使用经纬度坐标的图表,不需要地图 GeoJSON:

{
  "title": {
    "text": "地理坐标散点图"
  },
  "tooltip": {
    "trigger": "item"
  },
  "grid": {
    "left": "10%",
    "right": "10%",
    "bottom": "10%",
    "top": "15%"
  },
  "xAxis": {
    "type": "value",
    "name": "经度",
    "min": 100,
    "max": 130
  },
  "yAxis": {
    "type": "value",
    "name": "纬度",
    "min": 20,
    "max": 45
  },
  "series": [{
    "name": "城市",
    "type": "scatter",
    "data": [
      [116.4074, 39.9042],
      [121.4737, 31.2304],
      [113.2644, 23.1291],
      [114.0579, 22.5431],
      [104.0668, 30.5728]
    ],
    "symbolSize": 15,
    "itemStyle": {
      "color": "#5470c6"
    },
    "label": {
      "show": true,
      "position": "right",
      "formatter": "{b}"
    }
  }]
}

5. Markmap 多实例测试

5.1 第一个思维导图 - 项目管理流程

# 项目管理完整流程

## 启动阶段
- 项目立项
  - 需求收集
  - 可行性分析
  - 项目章程
- 干系人识别
- 团队组建

## 计划阶段
- 需求分析
  - 功能需求
  - 非功能需求
  - 约束条件
- 资源规划
  - 人力资源
  - 物资资源
  - 预算制定
- 时间规划
  - WBS分解
  - 进度安排
  - 里程碑设定

## 执行阶段
- 开发实施
  - 编码开发
  - 代码审查
  - 单元测试
- 集成测试
  - 功能测试
  - 性能测试
  - 安全测试
- 部署上线
  - 环境准备
  - 数据迁移
  - 灰度发布

## 监控阶段
- 性能监控
  - 系统指标
  - 业务指标
  - 用户体验
- 问题管理
  - Bug追踪
  - 优先级排序
  - 修复验证
- 持续优化
  - 性能调优
  - 功能迭代
  - 用户反馈

## 收尾阶段
- 项目验收
- 文档归档
- 经验总结

5.2 第二个思维导图 - 全栈技术栈

# 全栈开发技术栈

## 前端技术

### 框架
- React
  - React Hooks
  - React Router
  - Redux/Zustand
- Vue
  - Vue 3 Composition API
  - Vuex/Pinia
  - Vue Router
- Angular
  - TypeScript
  - RxJS
  - NgRx

### 构建工具
- Vite
- Webpack
- Rollup
- Parcel

### UI 框架
- Ant Design
- Element Plus
- Material-UI
- Tailwind CSS

## 后端技术

### 语言框架
- Node.js
  - Express
  - Koa
  - NestJS
- Python
  - Django
  - Flask
  - FastAPI
- Java
  - Spring Boot
  - MyBatis
  - Hibernate
- Go
  - Gin
  - Echo
  - Beego

### API 设计
- RESTful
- GraphQL
- gRPC
- WebSocket

## 数据库

### 关系型
- MySQL
- PostgreSQL
- Oracle
- SQL Server

### NoSQL
- MongoDB
- Redis
- Elasticsearch
- Cassandra

## DevOps

### 容器化
- Docker
- Kubernetes
- Docker Compose

### CI/CD
- Jenkins
- GitLab CI
- GitHub Actions
- Travis CI

### 云平台
- AWS
- Azure
- 阿里云
- 腾讯云

5.3 第三个思维导图 - 数据分析学习路径

# 数据分析学习路径

## 基础知识

### 数学基础
- 统计学
  - 描述性统计
  - 推断统计
  - 假设检验
- 概率论
  - 概率分布
  - 贝叶斯定理
  - 期望与方差
- 线性代数
  - 矩阵运算
  - 特征值
  - 向量空间

### 编程基础
- Python
  - 基础语法
  - 数据结构
  - 面向对象
- SQL
  - 查询语句
  - 聚合函数
  - 窗口函数
- R语言
  - 数据处理
  - 统计分析
  - 可视化

## 数据处理

### 数据采集
- 网络爬虫
  - BeautifulSoup
  - Scrapy
  - Selenium
- API调用
- 数据库查询

### 数据清洗
- Pandas
  - 缺失值处理
  - 异常值检测
  - 数据转换
- NumPy
  - 数组运算
  - 数学函数
  - 线性代数

### 数据存储
- 关系型数据库
  - MySQL
  - PostgreSQL
- NoSQL数据库
  - MongoDB
  - Redis
- 数据仓库
  - Hive
  - ClickHouse

## 数据分析

### 探索性分析
- 描述性统计
- 数据分布
- 相关性分析
- 异常检测

### 统计建模
- 回归分析
  - 线性回归
  - 逻辑回归
  - 多元回归
- 分类算法
  - 决策树
  - 随机森林
  - SVM
- 聚类分析
  - K-means
  - DBSCAN
  - 层次聚类

### 机器学习
- 监督学习
- 无监督学习
- 深度学习
- 强化学习

## 数据可视化

### 可视化工具
- Matplotlib
- Seaborn
- Plotly
- ECharts

### BI工具
- Tableau
- Power BI
- FineBI
- 帆软

### Dashboard
- Streamlit
- Dash
- Grafana
- Superset

## 业务应用

### 业务分析
- 用户分析
- 产品分析
- 运营分析
- 财务分析

### 数据报告
- 数据指标体系
- 分析报告撰写
- 数据可视化呈现
- 业务洞察提炼

### A/B测试
- 实验设计
- 假设检验
- 结果分析
- 决策建议

5.4 第四个思维导图 - 机器学习算法分类

# 机器学习算法分类

## 监督学习

### 回归算法
- 线性回归
- 多项式回归
- 岭回归
- Lasso回归
- ElasticNet

### 分类算法
- 逻辑回归
- K近邻(KNN)
- 朴素贝叶斯
- 支持向量机(SVM)
- 决策树
  - CART
  - ID3
  - C4.5
- 集成学习
  - 随机森林
  - GBDT
  - XGBoost
  - LightGBM
  - CatBoost

### 神经网络
- 感知机
- 多层感知机
- 卷积神经网络(CNN)
- 循环神经网络(RNN)
- 长短期记忆网络(LSTM)
- Transformer

## 无监督学习

### 聚类算法
- K-means
- K-medoids
- DBSCAN
- 层次聚类
- 谱聚类
- 高斯混合模型(GMM)

### 降维算法
- 主成分分析(PCA)
- 线性判别分析(LDA)
- t-SNE
- 自编码器
- UMAP

### 关联规则
- Apriori
- FP-Growth
- Eclat

## 强化学习

### 基于价值
- Q-Learning
- SARSA
- DQN
- Double DQN
- Dueling DQN

### 基于策略
- Policy Gradient
- REINFORCE
- Actor-Critic
- A3C
- PPO

### 基于模型
- Dyna-Q
- Model-Based RL
- AlphaGo

## 半监督学习
- 自训练
- 协同训练
- 生成式方法
- 图方法

6. 功能验证清单

6.1 ECharts 基础功能

  • 柱状图渲染
  • 折线图渲染
  • 雷达图渲染
  • 桑基图渲染
  • 主题自动适配(亮/暗)

6.2 ECharts 3D/GL 功能

  • 3D 柱状图渲染
  • 3D 散点图渲染
  • 3D 曲面图渲染
  • 3D 折线图渲染
  • GL 扩展自动加载
  • 3D 图表主题适配
  • 自动旋转功能

6.3 ECharts 地图功能

  • 中国地图自动加载并渲染
  • 世界地图自动加载并渲染
  • 地理坐标散点图(不需要地图数据)
  • 地图数据动态注册机制

6.4 Markmap 功能

  • 单个 Markmap 渲染
  • 多个 Markmap 同时渲染(4个)
  • 每个实例独立工作
  • 工具栏功能(适配、复制、导出)
  • 自动调整大小
  • D3.js 正确加载

6.5 搜索功能

  • 排除 interviews 文件夹内容
  • 正常搜索其他内容

7. 主题切换测试

请尝试在浏览器中切换亮/暗主题,观察:

  • 所有图表文字颜色是否自动适配
  • 地图区域颜色是否适配主题
  • 3D 图表坐标轴颜色是否适配
  • Markmap 思维导图是否正常显示

8. 图表类型总结

本文档包含以下图表类型的测试:

基础图表 (4个):

  1. 柱状图 - 主题自适应
  2. 折线图 - 多系列
  3. 雷达图 - 能力评估
  4. 桑基图 - 用户流转

3D/GL 图表 (4个): 5. 3D 柱状图 - 热力分布 6. 3D 散点图 - 自动旋转 7. 3D 曲面图 - 网格数据 8. 3D 折线图 - 空间轨迹

地图相关 (3个): 9. 中国地图散点 - 需要 GeoJSON 10. 世界地图散点 - 需要 GeoJSON
11. 地理坐标散点 - 无需地图数据

思维导图 (4个): 12-15. Markmap 多实例测试

总计: 15 个图表示例


测试完成时间: 2025-10-24
功能状态: ✅ 基础图表、3D图表、地图全部正常
地图状态: ✅ 地图数据已集成并自动加载