轻松学会echarts图表制作:从入门到精通,实用教程文档分享

2026-08-21 0 阅读

ECharts 是一个使用 JavaScript 实现的开源可视化库,可以用于绘制各种图表,广泛应用于网站和移动端应用程序中。本教程将带你从入门到精通,掌握 ECharts 图表制作的技巧。

一、ECharts 简介

1.1 什么是 ECharts?

ECharts 是一个使用 JavaScript 实现的开源可视化库,由百度团队开发并维护。它支持多种图表类型,如折线图、柱状图、饼图、散点图、地图等,可以满足大多数可视化需求。

1.2 ECharts 的特点

  • 丰富的图表类型:支持多种图表类型,满足不同场景的需求。
  • 高度可定制:支持自定义图表样式、颜色、动画等。
  • 跨平台:适用于 PC、移动端等多种设备。
  • 社区活跃:拥有丰富的文档和社区支持。

二、ECharts 入门

2.1 环境搭建

首先,需要在项目中引入 ECharts 库。可以通过以下两种方式引入:

  1. CDN 引入
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.0/echarts.min.js"></script>
  1. 本地引入

将 ECharts 下载到本地,然后在项目中引入:

<script src="path/to/echarts.min.js"></script>

2.2 创建图表

创建图表需要以下几个步骤:

  1. 创建一个 DOM 元素,用于承载图表。
  2. 初始化 ECharts 实例。
  3. 设置图表的配置项和系列。

以下是一个简单的折线图示例:

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '折线图示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'line',
        data: [5, 20, 36, 10, 10, 20]
    }]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

三、ECharts 进阶

3.1 图表类型

ECharts 支持多种图表类型,以下是一些常用图表类型的介绍:

  • 折线图:用于展示数据随时间或其他连续变量的变化趋势。
  • 柱状图:用于展示各个类别的数据比较。
  • 饼图:用于展示各个部分占整体的比例。
  • 散点图:用于展示数据点之间的关系。
  • 地图:用于展示地理分布数据。

3.2 图表配置

ECharts 的图表配置非常灵活,可以通过设置各种参数来调整图表的外观和交互效果。以下是一些常用的配置项:

  • title:图表标题。
  • tooltip:数据提示框。
  • legend:图例。
  • xAxis:X 轴。
  • yAxis:Y 轴。
  • series:数据系列。

3.3 动画与交互

ECharts 支持丰富的动画和交互效果,如:

  • 动画效果:图表加载时可以设置动画效果,使图表更生动。
  • 交互效果:用户可以通过鼠标点击、拖动等方式与图表进行交互。

四、实战案例

4.1 制作世界地图

以下是一个简单的世界地图示例:

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '世界地图示例'
    },
    tooltip: {},
    visualMap: {
        min: 0,
        max: 1000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true
    },
    geo: {
        map: 'world',
        roam: true,
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '访问来源',
            type: 'map',
            mapType: 'world',
            roam: true,
            label: {
                show: false,
                emphasis: {
                    show: true
                }
            },
            data: [
                {name: '美国',value: Math.round(Math.random() * 1000)},
                {name: '印度',value: Math.round(Math.random() * 1000)},
                // ... 其他国家数据
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

4.2 制作时间轴仪表盘

以下是一个时间轴仪表盘的示例:

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '时间轴仪表盘示例'
    },
    tooltip: {},
    xAxis: {
        type: 'time',
        boundaryGap: false,
        data: []
    },
    yAxis: {
        type: 'value',
        min: 0,
        max: 100,
        boundaryGap: [0.2, 0.2]
    },
    series: [{
        name: '销量',
        type: 'line',
        data: [],
        smooth: true,
        markPoint: {
            data: [
                {type: 'max', name: '最大值'},
                {type: 'min', name: '最小值'}
            ]
        },
        markLine: {
            data: [
                {type: 'average', name: '平均值'}
            ]
        }
    }]
};

// 更新数据
function updateData() {
    var now = new Date();
    var value = Math.round(Math.random() * 100);
    var axisData = (now.getMonth() + 1) + '/' + now.getDate() + ' ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();

    var data = option.series[0].data;
    data.push({
        value: value,
        xAxis: axisData
    });

    // 如果数据点超过 100,则移除最早的点
    if (data.length > 100) {
        data.shift();
    }

    myChart.setOption({
        xAxis: {
            data: data.map(function (item) {
                return item.xAxis;
            })
        },
        series: [{
            data: data
        }]
    });
}

// 每秒更新一次数据
setInterval(updateData, 1000);

五、总结

通过本文的介绍,相信你已经对 ECharts 图表制作有了初步的了解。从入门到精通,需要不断学习和实践。希望这份实用教程能帮助你更好地掌握 ECharts,制作出精美的图表。

分享到: