【拒绝平庸】ECharts图表美化--折线图堆叠 详细说明

372 阅读4分钟

前言

告别千篇一律的默认样式!本文手把手教你通过自定义配色、渐变填充、动态阴影和交互动画,将ECharts图表升级为高颜值可视化作品

引用ecahrts图表

1.页面标签添加图表ID

<div style="width:100%;height:100%" id="chartId"></div>

2.图表渲染方法

    // 渲染图表
    doEcharts(){
      // 基于准备好的dom,初始化echarts实例
      var myCharts = echarts.init(document.getElementById('chartId'));  
      // 定义窗口大小变化处理函数
      const handleResize = () => {
        myCharts.resize();
      }; 
      // 添加窗口大小变化事件监听器
      window.addEventListener('resize', handleResize); 
      // 在组件销毁时移除事件监听器
      this.$once('hook:beforeDestroy', () => {
        window.removeEventListener('resize', handleResize);
      }); 
      // 指定图表的配置项和数据
      var option = {
        // option start -------------------------------------------------  
       
        // option end ---------------------------------------------------  
      }; 
      // 使用刚指定的配置项和数据显示图表。
      myCharts.setOption(option);
    }

下方可在线查看图表Demo完整代码

在线Demo

图表_tooltip配置

image.png

  1. 当鼠标悬停在图表上时,会显示一个半透明的白色提示框
  2. 提示框有轻微的阴影效果,看起来像是浮在图表上方
  3. 文字使用12px的深灰色字体
  4. 提示框不会超出图表区域
  5. 坐标轴指示器显示为淡淡的阴影效果
  tooltip: {  // 提示框组件配置 
    trigger: 'axis',  // 触发类型,'axis'表示坐标轴触发 
    confine: true,  // 是否将 tooltip 框限制在图表的区域内  
    axisPointer: {  // 坐标轴指示器配置 
      type: 'shadow',  // 指示器类型,'shadow'表示阴影指示器 
      shadowStyle: {  // 阴影样式设置 
        color: 'rgba(120,120,120,0.05)',  // 阴影颜色,半透明灰色 
      }
    }, 
    backgroundColor: 'rgba(255,255,255,0.95)',  // 提示框背景色,半透明白色 
    extraCssText: 'box-shadow:0 3px 8px rgba(0,0,0,0.1)',  // 额外CSS样式,添加阴影效果 
    borderWidth: 0,  // 边框宽度为0,表示无边框 
    textStyle: {  // 提示框文字样式 
      color: '#666',  // 文字颜色为深灰色 
      fontSize: 12,  // 文字大小为12px 
    }
  } 

图表_legend(图例)配置

legend: {                      // 图例组件配置 
  align: 'auto',               // 图例标记和文本的对齐方式(自动调整)
  itemHeight: 7,               // 图例标记的高度(7px)
  itemWidth: 7,                // 图例标记的宽度(7px)
  right: 0,                    // 图例距离容器右侧的距离(0px)
  textStyle: {                 // 图例文本样式 
    color: '#999',             // 文本颜色(灰色 #999)
    fontSize: 11,              // 字体大小(11px)
  }
}

图表_grid(网格/绘图区)配置

grid: { 
  left: '20',      // 网格左侧距离容器边缘的距离(单位 px 或 %)
  right: '30',     // 网格右侧距离容器边缘的距离 
  bottom: '0',     // 网格底部距离容器边缘的距离 
  top: '30',       // 网格顶部距离容器边缘的距离 
  containLabel: true  // 是否包含坐标轴的标签(防止标签溢出)
}

图表_xAxis(X 轴)配置

  xAxis: {                    // X 轴配置 
    type: 'category',         // 轴类型,'category' 表示类目轴(离散数据)
    boundaryGap: false,       // 坐标轴两端是否留白,false 表示不留白,从第一个数据点开始  
    axisTick: {               // 坐标轴刻度配置 
      show: false,            // 隐藏 X 轴刻度线 
    }, 
    axisLine: {               // 坐标轴线配置 
      show: true,             // 显示轴线 
      lineStyle: {            // 轴线样式 
        color: '#e6ecfe',     // 轴线颜色(浅色)
        width: 1,             // 轴线宽度 
      }
    },  
    axisLabel: {              // 坐标轴标签配置 
      color: '#999',          // 标签文字颜色(灰色)
      fontSize: 10,           // 标签文字大小(10px)
    }, 
    data: [...] // 类目数据,通常是一个字符串数组 
  }

图表_yAxis(Y轴)的配置

 yAxis: {
  type: 'value',            // 坐标轴类型为数值轴 
  name: '',                 // Y轴名称  
  axisTick: { 
    show: false,            // 隐藏Y轴刻度线(短横线)
  }, 
  axisLine: {
    show: false,            // 完全隐藏Y轴线(纵轴线)
  }, 
  splitLine: {              // 网格线(水平分割线)配置 
    show: true,             // 显示分割线 
    lineStyle: {            // 分割线样式 
      color: '#ebeef5',     // 浅灰色分割线 
      type: 'dashed',       // 虚线样式(solid为实线)
      width: 1              // 线宽 
    }
  }, 
  axisLabel: {              // 坐标轴标签样式 
    color: '#999',          // 标签文字颜色(灰色)
    fontSize: 10,           // 标签字号(10px) 
  }
}

图表_series 配置

用于定义图表的数据系列

image.png

series: [   // 数据系列配置(数组,可包含多个系列)
  {
    name: '',                // 系列名称(显示在图例和tooltip中)
    type: 'line',            // 图表类型为折线图 
    smooth: true,            // 是否平滑曲线(true表示平滑过渡)
    showSymbol: false,       // 不显示数据点的标记符号  
    data: [...],             // 系列数据(数组形式,如[10,20,30]) 
    lineStyle: {             // 线条样式配置 
      color: '',             // 线条颜色
      width: 2,              // 线条宽度(2px) 
      // 阴影效果配置 
      shadowColor: 'rgba(53, 108, 245, 0.2)',  // 阴影颜色(蓝色半透明)
      shadowBlur: 7,              // 阴影模糊大小 
      shadowOffsetY: 5            // 阴影垂直偏移量 
    }
  }
]