[Vue/HTML]ECharts 使用指南:从入门到绘制各种常用图表

------------数据可视化必备,一篇搞定折线图、柱状图、饼图、散点图

什么是 ECharts?

ECharts 是一款由百度开源、Apache 基金会孵化的纯 JavaScript 图表库。它底层依赖轻量级的 Canvas 库 ZRender,提供直观、交互丰富、可高度个性化定制的数据可视化图表。支持折线图、柱状图、饼图、散点图、地图、雷达图、K线图等几十种图表类型,且兼容绝大多数现代浏览器(包括移动端)。

**核心优势**:

  • 丰富的图表类型和交互效果(缩放、拖拽、tooltip)

  • 大数据量下高性能渲染

  • 支持 Canvas 和 SVG 双引擎

  • 配置文件完全基于 JSON,上手简单

快速上手

引入 ECharts

**方法一:直接下载或 CDN**

```html

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>ECharts 示例</title>

<!-- 引入 ECharts 主库 -->

<script src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>

</head>

<body>

<!-- 准备一个容器 -->

<div id="main" style="width: 800px; height: 500px;"></div>

<script>

// 此处写初始化代码

</script>

</body>

</html>

```
**方法二:npm 安装(用于 Vue/React 项目)**

```bash

npm install echarts --save

```

```javascript

import * as echarts from 'echarts';

// 或按需引入:import { init, use } from 'echarts/core';

```

ECharts绘图

折线图:

**效果**:一条带平滑曲线和填充区域的折线图,鼠标悬停显示数据点。

复制代码
option = {
  title: {
    text: '2025年某商品销量趋势'
  },
  tooltip: {
    trigger: 'axis'
  },
  xAxis: {
    type: 'category',
    data: ['1月', '2月', '3月', '4月', '5月', '6月']
  },
  yAxis: {
    type: 'value',
    name: '销量(件)'
  },
  series: [
    {
      name: '销量',
      type: 'line',
      data: [120, 200, 150, 80, 70, 110],
      smooth: true,
      lineStyle: { width: 3, color: '#5470c6' },
      areaStyle: { opacity: 0.2 }
    }
  ]
};

柱状图:

多系列柱状图(分组或堆叠)只需在 `series` 数组中添加更多对象,并配置

复制代码
var option = {
    tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
    xAxis: { type: 'category', data: ['苹果', '华为', '小米', 'OPPO', 'vivo'] },
    yAxis: { type: 'value', name: '市场份额 (%)' },
    series: [{
        name: '2024年Q4',
        type: 'bar',
        data: [28, 22, 18, 15, 12],
        itemStyle: {
            borderRadius: [5, 5, 0, 0],
            color: '#ee6666'
        },
        label: { show: true, position: 'top' }   // 显示数值标签
    }]
};

饼图(Pie Chart):

展示各部分占总体的比例。

复制代码
var option = {
    title: { text: '某网站用户来源', left: 'center' },
    tooltip: { trigger: 'item', formatter: '{b}: {d}%' },
    series: [{
        name: '来源',
        type: 'pie',
        radius: '55%',          // 饼图半径(可设为 ['40%', '70%'] 变成环形图)
        data: [
            { value: 1048, name: '搜索引擎', itemStyle: { color: '#5470c6' } },
            { value: 735, name: '直接访问' },
            { value: 580, name: '社交媒体' },
            { value: 484, name: '邮件营销' }
        ],
        emphasis: { scale: true, label: { show: true } },
        label: { show: true, position: 'outside', formatter: '{b}: {d}%' }
    }]
};

散点图(Scatter Plot):

观察两个变量间的相关性,如身高与体重。

复制代码
var option = {
    xAxis: { name: '身高 (cm)', min: 140, max: 200 },
    yAxis: { name: '体重 (kg)', min: 40, max: 100 },
    series: [{
        type: 'scatter',
        data: [
            [160, 55], [170, 65], [180, 75], [155, 50],
            [175, 70], [185, 80], [165, 60], [190, 85]
        ],
        symbolSize: 12,
        itemStyle: { color: '#fac858' }
    }]
};

南丁格尔玫瑰图:

在饼图基础上突出量级差异,适合周期性数据。

复制代码
var option = {
    series: [{
        type: 'pie',
        radius: ['20%', '80%'],
        roseType: 'radius',          // 关键:半径模式
        data: [
            { value: 30, name: '玫瑰1' }, { value: 45, name: '玫瑰2' },
            { value: 28, name: '玫瑰3' }, { value: 60, name: '玫瑰4' }
        ]
    }]
};

仪表盘:

展示完成率、KPI指标。

复制代码
var option = {
    series: [{
        type: 'gauge',
        center: ['50%', '50%'],
        radius: '70%',
        min: 0,
        max: 100,
        progress: { show: true, width: 18 },
        axisLine: { lineStyle: { width: 18, color: [[0.8, '#91cc75']] } },
        axisTick: { show: false },
        splitLine: { show: false },
        axisLabel: { show: false },
        pointer: { show: true, length: '60%', width: 8 },
        detail: { valueAnimation: true, fontSize: 24, offsetCenter: [0, 20] },
        title: { show: false },
        data: [{ value: 78, name: '完成率' }]
    }]
};

大模型微调:(代码评论区回复获取)

**学习资源**:

希望这篇指南能帮你快速产出漂亮的图表。如果你有更好的实践或疑问,欢迎评论区交流。

相关推荐
jyp2012110718 分钟前
Vue3 Diff 算法
前端·vue.js
xn713328 分钟前
AI SDK 7 迁移实战:TypeScript 通过后,生产环境还会坏在哪里?
vue.js·人工智能·后端
smallcelebration1 小时前
139 @vueuse/core依赖介绍使用
前端·javascript·vue.js
蒜苔肉丝1 小时前
Vue3 动态表单:模块复用 + 动态增删行 + 数据回显
前端·javascript·vue.js
杨超越luckly3 小时前
Agent应用指南:长三角41城跨城人口流动OD数据分析
python·数据挖掘·数据分析·html·可视化
不好听61311 小时前
HTML 事件监听机制:从 DOM Level 0 到 React 合成事件
前端·react.js·html
daols8811 小时前
vxe-table 渲染器教程一:实现金额输入控件
javascript·vue.js·vxe-table
不好听61311 小时前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
腻害兔13 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
腻害兔14 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程