程序员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 常见图表类型
    • ECharts 请求数据
    • ECharts 事件处理
    • ECharts 高级功能
      • 1. 自定义样式
        • 1.1 itemStyle 自定义图表元素样式
        • 1.2 lineStyle 自定义折线图样式
      • 2. 数据视图与导出
        • 2.1 toolbox 配置项
        • 2.2 工具栏功能详解
      • 3. 数据缩放
        • 3.1 dataZoom 组件配置
        • 3.2 dataZoom 组件参数说明
    • Mock 生成随机数据
  • Apache ECharts
  • ECharts
scholar
2024-08-12
目录

ECharts 高级功能

# ECharts 高级功能详解

ECharts 提供了许多高级功能来增强图表的表现力和交互性,例如自定义样式、数据视图与导出功能、数据缩放功能等。通过这些功能,开发者可以创建更加专业和功能丰富的图表。

# 1. 自定义样式

ECharts 允许通过 itemStyle、lineStyle 等配置项来自定义图表元素的样式。这些配置项可以用来修改图表的颜色、宽度、边框样式等属性,从而实现个性化的视觉效果。

# 1.1 itemStyle 自定义图表元素样式

itemStyle 是 ECharts 中常用的样式配置项,可以应用于柱状图、折线图、散点图等多个图表类型。它可以配置颜色、阴影、透明度等属性。

const option = {
  series: [{
    name: '销量', // 数据系列名称
    type: 'bar', // 图表类型:柱状图
    data: [5, 20, 36, 10, 10, 20], // 数据系列数据
    itemStyle: {
      color: '#a83232', // 自定义柱状图的颜色
      borderColor: '#000', // 设置柱状图边框颜色
      borderWidth: 2, // 设置柱状图边框宽度
      borderType: 'solid', // 设置边框类型,支持'solid', 'dashed', 'dotted'
      shadowBlur: 10, // 设置阴影模糊度
      shadowColor: 'rgba(0, 0, 0, 0.5)', // 设置阴影颜色
      shadowOffsetX: 5, // 设置阴影X轴偏移
      shadowOffsetY: 5 // 设置阴影Y轴偏移
    }
  }]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 1.2 lineStyle 自定义折线图样式

lineStyle 用于自定义折线图的线条样式,包括线条颜色、宽度、类型等。

const option = {
  series: [{
    name: '趋势', // 数据系列名称
    type: 'line', // 图表类型:折线图
    data: [820, 932, 901, 934, 1290, 1330, 1320], // 数据系列数据
    lineStyle: {
      color: '#32a852', // 自定义折线颜色
      width: 3, // 设置折线宽度
      type: 'dashed', // 设置折线类型,支持'solid', 'dashed', 'dotted'
      shadowBlur: 5, // 设置阴影模糊度
      shadowColor: 'rgba(0, 0, 0, 0.5)', // 设置阴影颜色
      shadowOffsetX: 3, // 设置阴影X轴偏移
      shadowOffsetY: 3 // 设置阴影Y轴偏移
    }
  }]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 2. 数据视图与导出

ECharts 提供了丰富的工具栏功能,可以让用户导出图表、查看数据等。这些功能可以通过 toolbox 组件来实现,toolbox 组件可以包含多个工具,如保存图表为图片、查看数据视图、数据区域缩放、还原等。

# 2.1 toolbox 配置项

toolbox 提供了图表操作的快捷工具,如导出图片、查看数据、数据缩放等。通过配置 feature 属性,可以开启相应的功能。

const option = {
  toolbox: {
    feature: {
      saveAsImage: {
        type: 'png', // 导出图片类型,支持 'png' 和 'jpeg'
        name: 'chart', // 导出图片的名称
        backgroundColor: '#fff', // 图片背景颜色
        title: '保存为图片' // 保存按钮的标题
      },
      dataView: {
        show: true, // 是否显示数据视图
        readOnly: false, // 数据视图是否为只读
        title: '数据视图', // 数据视图按钮的标题
        lang: ['数据视图', '关闭', '刷新'], // 数据视图中的语言
        optionToContent: function(opt) {
          const series = opt.series[0].data;
          let table = '<table style="width:100%;text-align:center"><tbody>';
          series.forEach((data, index) => {
            table += `<tr><td>项${index + 1}</td><td>${data}</td></tr>`;
          });
          table += '</tbody></table>';
          return table;
        } // 自定义数据视图的内容
      },
      restore: { title: '还原' }, // 还原图表初始状态
      dataZoom: { title: '区域缩放' }, // 区域缩放工具
      magicType: { type: ['line', 'bar'], title: { line: '折线图', bar: '柱状图' } } // 动态类型切换
    }
  },
  series: [{
    type: 'bar',
    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
31
32
33
34

# 2.2 工具栏功能详解

  • saveAsImage: 将图表保存为图片,支持 png 和 jpeg 格式。
  • dataView: 查看图表的原始数据,支持编辑和刷新。
  • restore: 还原图表的初始状态。
  • dataZoom: 启用数据区域缩放功能。
  • magicType: 切换图表类型,如从折线图切换为柱状图。

# 3. 数据缩放

dataZoom 组件允许用户在图表中选择和缩放特定区域的数据,适用于时间序列数据和大数据量的显示。它支持滑动条和内部缩放两种形式。

# 3.1 dataZoom 组件配置

dataZoom 组件可以配置为滑动条(slider)或内部缩放(inside),用于控制图表数据的显示范围。

const option = {
  dataZoom: [{
    type: 'slider', // 滑动条缩放
    start: 0, // 缩放开始位置(百分比)
    end: 100, // 缩放结束位置(百分比)
    handleSize: '100%', // 控制手柄的尺寸
    handleIcon: 'path://M 2,2 L 12,2 L 12,12 L 2,12 Z', // 自定义控制手柄的图标
    handleStyle: {
      color: '#a83232', // 手柄颜色
      borderColor: '#000', // 手柄边框颜色
      borderWidth: 2 // 手柄边框宽度
    }
  }, {
    type: 'inside', // 内部缩放
    start: 0, // 缩放开始位置
    end: 100 // 缩放结束位置
  }],
  xAxis: {
    type: 'category', // 类目轴
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] // X轴数据
  },
  yAxis: {
    type: 'value' // 数值轴
  },
  series: [{
    type: 'line', // 折线图
    data: [820, 932, 901, 934, 1290, 1330, 1320] // 数据系列
  }]
};
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

# 3.2 dataZoom 组件参数说明

  • type: dataZoom 的类型,slider 为滑动条,inside 为内部缩放。
  • start 和 end: 定义缩放的起始和结束位置,值为 0-100 的百分比。
  • handleSize: 滑动条手柄的尺寸,可以是像素值或百分比。
  • handleIcon: 自定义手柄的形状,支持 SVG 路径。
  • handleStyle: 手柄的样式配置项,支持颜色、边框、阴影等。

总结

  • 自定义样式:通过 itemStyle 和 lineStyle 等配置项,开发者可以灵活地调整图表元素的样式,以适应不同的设计需求。
  • 数据视图与导出:toolbox 提供了丰富的功能,允许用户导出图表、查看数据、还原初始状态、进行数据区域缩放等操作,增强了图表的交互性。
  • 数据缩放:dataZoom 组件可以为图表添加缩放功能,适用于时间序列数据和大数据量的场景,使用户能够专注于特定的数据范围。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
ECharts 事件处理
Mock 生成随机数据

← ECharts 事件处理 Mock 生成随机数据→

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