Echarts简介

439 阅读8分钟

1. 什么是数据可视化技术

借助图形来表示数据,更有效的传递消息,以图表的方式展示数据,相对于文字更加直观

  • 科学可视化:主要是将三维的空间进行描述,如天气,航天,医疗进行几何的描述

  • 信息可视化:主要是将科学信息和知识转化为一种是视觉的形式,利用人们对可视化快速识别的能力,进行理解

  • 可视化分析:是信息可视化和科学可视化的产物,主要用于用户对界面的分析

2.Echarts的概述

ECharts是一款开源的统计图表框架,他是互联网开发程序过程中,后台数据库用以实现数据到图形的映射的一个插件。

特性:

  • 数据视图:通过大量数据来渲染试图

  • 动态类型切换:可以切换不同的图表来战士数据

  • 多图联动:多列数据根据条件一同修改

  • 动态数据添加:实现改变数据变化

3.Echarts3.x与Echarts2.x的区别

  • Echarts2.x是通用的版本。
  • Echarts2.x版本的文档实例比Echarts3.x版本的文档实例要好,更加清晰,更加容易理解。
  • Echarts2.x版本做的图表更炫酷。
  • Echarts2.x代表的是现在,而Echarts3.x代表的是未来。
  • Echarts3.x对Echarts的引用更灵活,更简单,方便。

4. 常见图表类型

  • line:折线图,堆积折线图,区域图,堆积区域图。
  • bar:柱形图(纵向),堆积柱形图,条形图(横向),堆积条形图。
  • scatter:散点图,气泡图。散点图至少需要横纵两个数据,更高维度数据加入时可以映射为颜色或大小,当映射到大小时则为气泡图
  • k:K线图,蜡烛图。常用于展现股票交易数据。
  • pie:饼图,圆环图。饼图支持两种(半径、面积)南丁格尔玫瑰图模式
  • radar:雷达图,填充雷达图。高维度数据展现的常用图表。
  • chord:和弦图。常用于展现关系数据,外层为圆环图,可体现数据占比关系,内层为各个扇形间相互连接的弦,可体现关系数据
  • map:地图。内置世界地图、中国及中国34个省市自治区地图数据、可通过标准GeoJson扩展地图类型。支持svg扩展类地图应用,如室内地图、运动场、物件构造等。
  • gauge:仪表盘。用于展现关键指标数据,常见于BI类系统。
  • funnel:漏斗图。用于展现数据经过筛选、过滤等流程处理后发生的数据变化,常见于BI类系统。

5.常用的属性

  • 图表标题

      title: {
          x: 'left',                // 水平安放位置,默认为左对齐,可选为:
                            // 'center' ¦ 'left' ¦ 'right'
                            // ¦ {number}(x坐标,单位px)
          y: 'top',             // 垂直安放位置,默认为全图顶端,可选为:
                            // 'top' ¦ 'bottom' ¦ 'center'
                            // ¦ {number}(y坐标,单位px)
          //textAlign: null          // 水平对齐方式,默认根据x设置自动调整
          backgroundColor: 'rgba(0,0,0,0)',
          borderColor: '#ccc',          // 标题边框颜色
          borderWidth: 0,           // 标题边框线宽,单位px,默认为0(无边框)
          padding: 5,             // 标题内边距,单位px,默认各方向内边距为5,
                                    // 接受数组分别设定上右下左边距,同css
          itemGap: 10,             // 主副标题纵向间隔,单位px,默认为10,
          textStyle: {
              fontSize: 18,
              fontWeight: 'bolder',
              color: '#333'                             // 主标题文字颜色
          },
          subtextStyle: {
              color: '#aaa'                            // 副标题文字颜色
          }
      },
    
  • 图例

      legend: {
          orient: 'horizontal',          // 布局方式,默认为水平布局,可选为:
                             // 'horizontal' ¦ 'vertical'
          x: 'center',                // 水平安放位置,默认为全图居中,可选为:
                                    // 'center' ¦ 'left' ¦ 'right'
                             // ¦ {number}(x坐标,单位px)
          y: 'top',              // 垂直安放位置,默认为全图顶端,可选为:
                             // 'top' ¦ 'bottom' ¦ 'center'
                             // ¦ {number}(y坐标,单位px)
          backgroundColor: 'rgba(0,0,0,0)',
          borderColor: '#ccc',            // 图例边框颜色
          borderWidth: 0,                // 图例边框线宽,单位px,默认为0(无边框)
          padding: 5,                  // 图例内边距,单位px,默认各方向内边距为5,
                                     // 接受数组分别设定上右下左边距,同css
          itemGap: 10,              // 各个item之间的间隔,单位px,默认为10,
                              // 横向布局时为水平间隔,纵向布局时为纵向间隔
          itemWidth: 20,             // 图例图形宽度
          itemHeight: 14,            // 图例图形高度
          textStyle: {
              color: '#333'                              // 图例文字颜色
          }
      },
    
  • 值域

      dataRange: {
          orient: 'vertical',             // 布局方式,默认为垂直布局,可选为:
                              // 'horizontal' ¦ 'vertical'
          x: 'left',                   // 水平安放位置,默认为全图左对齐,可选为:
                              // 'center' ¦ 'left' ¦ 'right'
                              // ¦ {number}(x坐标,单位px)
          y: 'bottom',                  // 垂直安放位置,默认为全图底部,可选为:
                               // 'top' ¦ 'bottom' ¦ 'center'
                               // ¦ {number}(y坐标,单位px)
          backgroundColor: 'rgba(0,0,0,0)',
          borderColor: '#ccc',             // 值域边框颜色
          borderWidth: 0,                 // 值域边框线宽,单位px,默认为0(无边框)
          padding: 5,                    // 值域内边距,单位px,默认各方向内边距为5,
                               // 接受数组分别设定上右下左边距,同css
          itemGap: 10,               // 各个item之间的间隔,单位px,默认为10,
                              // 横向布局时为水平间隔,纵向布局时为纵向间隔
          itemWidth: 20,             // 值域图形宽度,线性渐变水平布局宽度为该值 * 10
          itemHeight: 14,            // 值域图形高度,线性渐变垂直布局高度为该值 * 10
          splitNumber: 5,            // 分割段数,默认为5,为0时为线性渐变
          color:['#1e90ff','#f0ffff'],//颜色
          //text:['高','低'],              // 文本,默认为数值文本
          textStyle: {
              color: '#333'                                // 值域文字颜色
          }
      },
       
      toolbox: {
          orient: 'horizontal',            // 布局方式,默认为水平布局,可选为:
                              // 'horizontal' ¦ 'vertical'
          x: 'right',              // 水平安放位置,默认为全图右对齐,可选为:
                              // 'center' ¦ 'left' ¦ 'right'
                              // ¦ {number}(x坐标,单位px)
          y: 'top',               // 垂直安放位置,默认为全图顶端,可选为:
                              // 'top' ¦ 'bottom' ¦ 'center'
                              // ¦ {number}(y坐标,单位px)
          color : ['#1e90ff','#22bb22','#4b0082','#d2691e'],
          backgroundColor: 'rgba(0,0,0,0)',    // 工具箱背景颜色
          borderColor: '#ccc',             // 工具箱边框颜色
          borderWidth: 0,                 // 工具箱边框线宽,单位px,默认为0(无边框)
          padding: 5,                    // 工具箱内边距,单位px,默认各方向内边距为5,
                                      // 接受数组分别设定上右下左边距,同css
          itemGap: 10,                  // 各个item之间的间隔,单位px,默认为10,
                                      // 横向布局时为水平间隔,纵向布局时为纵向间隔
          itemSize: 16,              // 工具箱图形宽度
          featureImageIcon : {},            // 自定义图片icon
          featureTitle : {
              mark : '辅助线开关',
              markUndo : '删除辅助线',
              markClear : '清空辅助线',
              dataZoom : '区域缩放',
              dataZoomReset : '区域缩放后退',
              dataView : '数据视图',
              lineChart : '折线图切换',
              barChart : '柱形图切换',
              restore : '还原',
              saveAsImage : '保存为图片'
          }
      },
    
  • 提示框

      tooltip: {
          trigger: 'item',           // 触发类型,默认数据触发,见下图,可选为:'item' ¦ 'axis'
          showDelay: 20,             // 显示延迟,添加显示延迟可以避免频繁切换,单位ms
          hideDelay: 100,            // 隐藏延迟,单位ms
          transitionDuration : 0.4,         // 动画变换时间,单位s
          backgroundColor: 'rgba(0,0,0,0.7)',  // 提示背景颜色,默认为透明度为0.7的黑色
          borderColor: '#333',            // 提示边框颜色
          borderRadius: 4,                // 提示边框圆角,单位px,默认为4
          borderWidth: 0,                // 提示边框线宽,单位px,默认为0(无边框)
          padding: 5,                   // 提示内边距,单位px,默认各方向内边距为5,
                                      // 接受数组分别设定上右下左边距,同css
          axisPointer : {                 // 坐标轴指示器,坐标轴触发有效
              type : 'line',         // 默认为直线,可选为:'line' | 'shadow'
              lineStyle : {          // 直线指示器样式设置
                  color: '#48b',
                  width: 2,
                  type: 'solid'
              },
              shadowStyle : {              // 阴影指示器样式设置
                  width: 'auto',         // 阴影大小
                  color: 'rgba(150,150,150,0.3)'  // 阴影颜色
              }
          },
          textStyle: {
              color: '#fff'
          }
      },
    
  • 区域缩放控制器

      dataZoom: {
          orient: 'horizontal',         // 布局方式,默认为水平布局,可选为:
                                   // 'horizontal' ¦ 'vertical'
          // x: {number},              // 水平安放位置,默认为根据grid参数适配,可选为:
                                   // {number}(x坐标,单位px)
          // y: {number},              // 垂直安放位置,默认为根据grid参数适配,可选为:
                                   // {number}(y坐标,单位px)
          // width: {number},           // 指定宽度,横向布局时默认为根据grid参数适配
          // height: {number},          // 指定高度,纵向布局时默认为根据grid参数适配
          backgroundColor: 'rgba(0,0,0,0)',    // 背景颜色
          dataBackgroundColor: '#eee',       // 数据背景颜色
          fillerColor: 'rgba(144,197,237,0.2)', // 填充颜色
          handleColor: 'rgba(70,130,180,0.8)'       // 手柄颜色
      },
    
  • 网格

      grid: {
          x: 80,
          y: 60,
          x2: 80,
          y2: 60,
          // width: {totalWidth} - x - x2,
          // height: {totalHeight} - y - y2,
          backgroundColor: 'rgba(0,0,0,0)',
          borderWidth: 1,
          borderColor: '#ccc'
      },
    
  • 类目轴

      categoryAxis: {
          position: 'bottom',        // 位置
          nameLocation: 'end',      // 坐标轴名字位置,支持'start' | 'end'
          boundaryGap: true,     // 类目起始和结束两端空白策略
          axisLine: {            // 坐标轴线
              show: true,         // 默认显示,属性show控制显示与否
              lineStyle: {        // 属性lineStyle控制线条样式
                  color: '#48b',
                  width: 2,
                  type: 'solid'
              }
          },
          axisTick: {            // 坐标轴小标记
              show: true,       // 属性show控制显示与否,默认不显示
              interval: 'auto',
              // onGap: null,
              inside : false,        // 控制小标记是否在grid里
              length :5,         // 属性length控制线长
              lineStyle: {       // 属性lineStyle控制线条样式
                  color: '#333',
                  width: 1
              }
          },
          axisLabel: {           // 坐标轴文本标签,详见axis.axisLabel
              show: true,
              interval: 'auto',
              rotate: 0,
              margin: 8,
              // formatter: null,
              textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
                  color: '#333'
              }
          },
          splitLine: {                // 分隔线
              show: true,        // 默认显示,属性show控制显示与否
              // onGap: null,
              lineStyle: {       // 属性lineStyle(详见lineStyle)控制线条样式
                  color: ['#ccc'],
                  width: 1,
                  type: 'solid'
              }
          },
          splitArea: {                // 分隔区域
              show: false,       // 默认不显示,属性show控制显示与否
              // onGap: null,
              areaStyle: {        // 属性areaStyle(详见areaStyle)控制区域样式
                  color: ['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)']
              }
          }
      },
    
  • 默认标志图形类型列表

      symbolList : [
        'circle', 'rectangle', 'triangle', 'diamond',
        'emptyCircle', 'emptyRectangle', 'emptyTriangle', 'emptyDiamond'
      ],
      loadingText : 'Loading...',
      // 可计算特性配置,孤岛,提示颜色
      calculable: false,                       // 默认关闭可计算特性
      calculableColor: 'rgba(255,165,0,0.6)',       // 拖拽提示边框颜色
      calculableHolderColor: '#ccc',               // 可计算占位提示颜色
      nameConnector: ' & ',
      valueConnector: ' : ',
      animation: true,
      animationThreshold: 2500,           // 动画元素阀值,产生的图形原素超过2500不出动画
      addDataAnimation: true,         // 动态数据接口是否开启动画效果
      animationDuration: 2000,
      animationEasing: 'ExponentialOut'             //BounceOut