程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • ECharts

    • ECharts 快速上手
    • ECharts 常用配置项
    • ECharts 常见图表类型
      • 1. 柱状图(Bar)
      • 2. 折线图(Line)
      • 3. 饼图(Pie)
      • 4. 散点图(Scatter)
      • 5. 雷达图(Radar)
      • 6. 仪表盘(Gauge)
      • 7. 树状图(Tree)
    • ECharts 请求数据
    • ECharts 事件处理
    • ECharts 高级功能
    • Mock 生成随机数据
  • Apache ECharts
  • ECharts
scholar
2024-08-12
目录

ECharts 常见图表类型

# ECharts 常见图表类型

# 1. 柱状图(Bar)

柱状图用于展示分类数据之间的比较,通过 series 中的 type 设置为 'bar',来表示数据的柱状图形式。

image-20240812091225154

// 配置柱状图的基本选项
const option = {
  title: {
    text: '销量统计', // 设置图表标题
    left: 'center' // 标题位置
  },
  tooltip: {
    trigger: 'axis' // 提示框触发类型为轴触发,适用于折线图、柱状图等
  },
  legend: {
    data: ['销量'], // 图例内容
    top: '10%' // 图例位置
  },
  xAxis: {
    type: 'category', // x 轴为类目轴,即离散的类别
    data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'], // x 轴数据
    axisTick: { alignWithLabel: true } // 刻度线与标签对齐
  },
  yAxis: {
    type: 'value' // y 轴为数值轴
  },
  series: [
    {
      name: '销量', // 数据系列名称
      type: 'bar', // 图表类型为柱状图
      barWidth: '60%', // 设置柱状条的宽度
      data: [5, 20, 36, 10, 10, 20] // 数据系列
    }
  ]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 2. 折线图(Line)

折线图用于展示数据随时间的变化趋势,通过 series 中的 type 设置为 'line',来表示数据的折线图形式。

image-20240812091314997

// 配置折线图的基本选项
const option = {
  title: {
    text: '每周销量趋势', // 设置图表标题
    left: 'center' // 标题位置
  },
  tooltip: {
    trigger: 'axis' // 提示框触发类型为轴触发
  },
  legend: {
    data: ['销量'], // 图例内容
    top: '10%' // 图例位置
  },
  xAxis: {
    type: 'category', // x 轴为类目轴
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], // x 轴数据(星期)
    boundaryGap: false // 折线图通常关闭两端的空隙
  },
  yAxis: {
    type: 'value' // y 轴为数值轴
  },
  series: [
    {
      name: '销量', // 数据系列名称
      type: 'line', // 图表类型为折线图
      data: [820, 932, 901, 934, 1290, 1330, 1320], // 数据系列
      smooth: true, // 使折线图平滑
      areaStyle: {} // 填充折线图下方区域
    }
  ]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 3. 饼图(Pie)

饼图用于展示数据在不同类别中的占比,通过 series 中的 type 设置为 'pie',来表示数据的饼图形式。

image-20240812091339030

// 配置饼图的基本选项
const option = {
  title: {
    text: '访问来源', // 设置图表标题
    subtext: '虚构数据', // 副标题
    left: 'center' // 标题位置
  },
  tooltip: {
    trigger: 'item' // 提示框触发类型为数据项触发,适用于饼图
  },
  legend: {
    orient: 'vertical', // 图例方向为竖直方向
    left: 'left', // 图例位置在左侧
    data: ['搜索引擎', '直接访问', '邮件营销', '联盟广告', '视频广告'] // 图例内容
  },
  series: [
    {
      name: '访问来源', // 数据系列名称
      type: 'pie', // 图表类型为饼图
      radius: '50%', // 饼图半径大小
      center: ['50%', '60%'], // 饼图中心位置
      data: [
        { value: 1048, name: '搜索引擎' }, // 每一部分的值和名称
        { value: 735, name: '直接访问' },
        { value: 580, name: '邮件营销' },
        { value: 484, name: '联盟广告' },
        { value: 300, name: '视频广告' }
      ],
      emphasis: {
        itemStyle: {
          shadowBlur: 10, // 突出部分的阴影模糊程度
          shadowOffsetX: 0, // 阴影水平方向偏移
          shadowColor: 'rgba(0, 0, 0, 0.5)' // 阴影颜色
        }
      }
    }
  ]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

# 4. 散点图(Scatter)

散点图用于展示两个变量之间的关系,通过 series 中的 type 设置为 'scatter',来表示数据的散点图形式。

image-20240812091427483

// 配置散点图的基本选项
const option = {
  title: {
    text: '身高与体重分布', // 设置图表标题
    left: 'center' // 标题位置
  },
  xAxis: {
    name: '身高 (cm)', // x 轴名称
    type: 'value' // x 轴为数值轴
  },
  yAxis: {
    name: '体重 (kg)', // y 轴名称
    type: 'value' // y 轴为数值轴
  },
  tooltip: {
    trigger: 'item', // 提示框触发类型为数据项触发
    formatter: function (params) {
      return `身高: ${params.value[0]}cm<br/>体重: ${params.value[1]}kg`; // 自定义提示框内容
    }
  },
  series: [
    {
      name: '身高与体重', // 数据系列名称
      type: 'scatter', // 图表类型为散点图
      data: [
        [160, 55], [165, 60], [170, 65], [175, 70], [180, 75], [185, 80]
      ], // 数据系列,表示每个数据点的 x 和 y 值
      symbolSize: function (data) {
        return data[1] / 2; // 根据 y 轴值设置每个点的大小
      }
    }
  ]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# 5. 雷达图(Radar)

雷达图用于展示多变量的比较,通过 series 中的 type 设置为 'radar',来表示数据的雷达图形式。

image-20240812091458059

// 配置雷达图的基本选项
const option = {
  title: {
    text: '技能评估', // 设置图表标题
    left: 'center' // 标题位置
  },
  tooltip: {
    trigger: 'item' // 提示框触发类型为数据项触发
  },
  legend: {
    data: ['甲', '乙'], // 图例内容
    top: '10%' // 图例位置
  },
  radar: {
    // 雷达图坐标系的配置
    indicator: [
      { name: '攻击', max: 100 }, // 雷达图每个维度的名称和最大值
      { name: '防御', max: 100 },
      { name: '速度', max: 100 },
      { name: '生命', max: 100 },
      { name: '智力', max: 100 }
    ]
  },
  series: [
    {
      name: '技能评估', // 数据系列名称
      type: 'radar', // 图表类型为雷达图
      data: [
        {
          value: [80, 90, 70, 85, 60], // 甲的评估数据
          name: '甲'
        },
        {
          value: [60, 80, 90, 70, 75], // 乙的评估数据
          name: '乙'
        }
      ],
      areaStyle: {} // 填充雷达图区域
    }
  ]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

# 6. 仪表盘(Gauge)

仪表盘用于展示某个关键数据的占比或状态,通过 series 中的 type 设置为 'gauge',来表示数据的仪表盘形式。

image-20240812091554688

// 配置仪表盘的基本选项
const option = {
  title: {
    text: 'CPU 使用率',

 // 设置图表标题
    left: 'center' // 标题位置
  },
  tooltip: {
    formatter: "{a} <br/>{b} : {c}%" // 提示框格式化
  },
  series: [
    {
      name: '业务指标', // 数据系列名称
      type: 'gauge', // 图表类型为仪表盘
      detail: { formatter: '{value}%' }, // 显示的详细数据格式
      data: [{ value: 50, name: 'CPU 使用率' }] // 仪表盘数据,表示当前值和名称
    }
  ]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 7. 树状图(Tree)

树状图用于展示层次结构的数据,通过 series 中的 type 设置为 'tree',来表示数据的树状图形式。

image-20240812091618260

// 配置树状图的基本选项
const option = {
  title: {
    text: '组织结构图', // 设置图表标题
    left: 'center' // 标题位置
  },
  tooltip: {
    trigger: 'item', // 提示框触发类型为数据项触发
    triggerOn: 'mousemove' // 鼠标移动到节点上时触发
  },
  series: [
    {
      type: 'tree', // 图表类型为树状图
      data: [
        {
          name: '公司', // 根节点名称
          children: [
            {
              name: '部门 A', // 子节点
              children: [
                { name: '员工 A1' },
                { name: '员工 A2' }
              ]
            },
            {
              name: '部门 B',
              children: [
                { name: '员工 B1' },
                { name: '员工 B2' }
              ]
            }
          ]
        }
      ],
      top: '1%', // 树状图的顶边距
      left: '7%', // 树状图的左边距
      bottom: '1%', // 树状图的底边距
      right: '20%', // 树状图的右边距
      symbolSize: 7, // 节点大小
      label: {
        position: 'left', // 标签位置
        verticalAlign: 'middle', // 垂直对齐方式
        align: 'right', // 水平对齐方式
        fontSize: 9 // 标签字体大小
      },
      leaves: {
        label: {
          position: 'right', // 叶子节点标签位置
          verticalAlign: 'middle', // 垂直对齐方式
          align: 'left' // 水平对齐方式
        }
      },
      expandAndCollapse: true, // 支持节点的展开和折叠
      animationDuration: 550, // 初始展开的动画时长
      animationDurationUpdate: 750 // 更新数据时的动画时长
    }
  ]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
ECharts 常用配置项
ECharts 请求数据

← ECharts 常用配置项 ECharts 请求数据→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式