Echarts的基本使用

608 阅读6分钟

一、ECharts基本使用

  1. 导入echarts
  2. 准备一个呈现图标的盒子
  3. 初始化echarts对象
  4. 准备配置项
  5. 将配置项设置给echarts对象

具体代码实现:

// 导入echarts
<script src="https://lib.baomitu.com/echarts/5.2.0/echarts.common.js"></script>
<div style="width:600px;height:400px"></div>
var echarts = echarts.init(document.querySelector('div'))
var option = {
  // x轴
	xAxis: {
		type: 'category',
		data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
	},
  // y轴
	yAxis: {
		type: 'value'
	},
  // 配置y轴数据
	series: {
    // 决定图标类型
		type: 'bar',
    // y轴上的数据
    data: [5, 20, 36, 10, 10, 20]
	}
}
// 将配置项设置给echarts对象
echarts.setOption(option)

1.通用配置

任何一种类型的图表都可以使用的配置

  • title 标题
    • 文字样式 textStyle
    • 标题边框 borderWidth borderColor borderRadius
    • 标题位置 left right bottom top
...
title: {
	text: 标题名称
	textStyle: {
		color: 颜色
	},
	borderWidth: 标题边框
	borderColor: 标题颜色
	borderRadius: 标题圆角
	left: 'center'
	top: 'center'
}
  • tooltip 提示框(鼠标经过/点击图表时的显示框)
    • 触发类型 trigger
      • aixs
      • item
    • 触发时机 triggerOn
      • mouseover
      • click
    • 格式化 formatter
      • 字符串模版
      • 回调函数
tooltip: {
	// 经过项目之后显示信息
  trigger: 'item',
  // 经过轴之后显示信息
  // trigger: 'axis',
  // 点击后显示信息 默认为mouseover
  // triggerOn: 'click',
  // formatter: '{b}的成绩为{c}'
  formatter: (args) => {
    // console.log(args);
    return args.name + '的成绩是' + args.value
  }
}
  • toolbox ECharts提供的工具栏
    • feature 显示工具栏按钮
      • saveAsImage:{} 导出图片
      • dataView:{} 数据视图 (可以修改数据)
      • restore: {} 重置功能(还原)
      • dataZoom: {} 区域缩放
      • magicType 动态切换图标类型
toolbox: {
	feature: {
		saveAsImage: {}, // 导出图片
		dataView: {}, // 显示原始数据 可修改
		restore: {}, // 还原数据
		dataZoom: {}, // 区域缩放
		magicType: {
			// 动态切换视图类型
			type: ['bar', 'line']
		}
	}
}
  • legend 图列 筛选系列 需要和series配合使用
    • data 数据是一个数组 与series的name保持一致
legend: {
	data: ['语文', '数学']
},
series: [
	{
		name: '语文',
    data: chineseGrade,
    type: 'bar',
  }, {
    name: '数学',
    data: mathGrade,
    type: 'bar',
  }
]

2.直角坐标系中的常用配置

直角坐标系图表:柱状图 折线图 散点图

  • 配置1:网格grid
    • 用来控制直角坐标系的布局和大小 x轴和y轴的绘制基于grid进行绘制
    • 显示grid
      • show
    • grid边框
      • 边框宽度 borderWidth
      • 边框颜色 borderColor
    • grid的位置和大小
      • width 宽度
      • height 高度
      • left
      • right
      • top
      • bottom
  • 配置2:坐标轴 axis
    • 坐标轴分为x轴和y轴
    • 坐标轴类型 type
      • value 数值轴 自动从目标数据中读取数据
      • category 类目轴 必须通过data设置类目数
    • 显示位置position
      • xAixs 可以设置为 top和bottom
      • yAxis 可以设置为 left和right
  • 配置3:区域缩放 dataZoom
    • 类型 type
      • slider 滑块
      • inside 内置 依靠鼠标滚轮/双指缩放
    • 指明产生作用的轴
      • xAxisIndex 默认写0
      • yAxisIndex 默认写0
    • 指明初始状态的缩放情况
      • start 初始百分比
      • end 结束百分比
const option = {
      grid: {
        show: true,
        borderWidth: 10,
        borderColor: 'skyblue',
        left: 100,
        // width: 200,
        // height: 200,
      },
      xAxis: {
        type: 'category',
        data: arr1,
        // position: 'top',
      },
      yAxis: {
        type: 'value',
        // position: 'right',
      },
      dataZoom: {
        type: 'slider'
        // type: 'inside'
      },
      series: [
        {
          type: 'bar',
          data: arr2
        }
      ]
    }

二、echarts基本图形

1.柱状图

1.基本的柱状图

  • 基本结构
  • x轴和y轴的数据
  • series中的type设置为bar

2.柱状图常见效果

  • 最大/最小值 markPoint
  • 平均值 markLine
  • 数值的显示 label
  • 柱的宽度 barWidth

3.柱状图的特点

呈现每一个分类有多少,以及排名情况

// 实例化echarts对象
const eCharts = echarts.init(document.querySelector('div'))
// 设置配置项
const option = {
  title: {
    text: '期末语文成绩'
  },
  xAxis: {
    type: 'category',
    data: ["张三", "李四", "王五", "闰土", "小明", "茅台", "二妞", "大强"]
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      name: '语文',
      data: [88, 92, 63, 77, 94, 80, 72, 86],
      type: 'bar',
      markPoint: {
        data: [
          {
            type: 'max',
            name: '最大值'
          },
          {
            type: "min",
            name: '最小值'
          }
        ]
      },
      markLine: {
        data: [
         {
            type: 'average',
            name: '平均值'
         }
        ]
      },
      label: {
        show: true
     	}
   	}
 	]
}
// 将配置项设置给echarts对象
eCharts.setOption(option)

2.折线图

1.基本的折线图

  • 基本结构
  • x轴和y轴的数据
  • series中的type设置为line

2.折线图常见效果

  • 最大/最小值markPoint 平均值markLine 标注区间 markArea
  • 线条控制 平滑smooth 风格lineStyle
  • 填充风格 areaStyle
  • 紧挨边缘 boundaryGap 设置给xAxis
  • 缩放:脱离0值比例 scale 设置给yAxis
  • 堆叠图 stack

3.折线图的特点

分析数据随着时间的变化趋势

const option = {
      xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        // 紧挨边缘
        boundaryGap: false
      },
      yAxis: {
        type: 'value'
      },
      series: [
        {
          data: [150, 230, 224, 218, 135, 147, 260],
          type: 'line',
          markPoint: {
            data: [{
              // 最大值
              type: 'max',
              name: '最大值'
            }, {
              // 最小值
              type: 'min',
              name: '最小值'
            }]
          },
          // 平均值
          markLine: {
            data: [
              { type: 'average', name: '平均值' }
            ]
          },
          // 标注区间
          markArea: {
            data: [
              [
                {
                  // 开始值
                  xAxis: 'Mon'
                }, {
                  // 结束值
                  xAxis: 'Tue'
                }
              ]
            ]
          },
          // 平滑效果
          smooth: true,
          // 折线样式
          lineStyle: {
            color: 'green',
            type: 'dotted'
          },
          // 填充效果
          areaStyle: {
            color: 'pink'
          },
          stack: 'Total',
        },
        {
          name: 'Union Ads',
          type: 'line',
          stack: 'Total',
          data: [220, 182, 191, 234, 290, 330, 310],
          areaStyle: {}
        }
      ]
    }

3.散点图

1.基本的散点图

  • 基本结构
  • x轴和y轴的数据,是一个二维数组
  • series中的type设置为scatter
  • xAxis和yAxis中的type设置为value

2.散点图常见效果

  • 气泡图效果 都是在series中控制
    • 散点大小不同 symbolSize
      • 数值
      • 回调函数 参数代表的是每一个不同的数据
    • 散点颜色不同 itemStyle.color
      • 字符串
      • 回调函数 参数的data是每一个不同的数据
  • 涟漪动画 type:'effectScatter'
    • showEffectOn: 'emphasis' 配置何时显示特效 (鼠标经过发生特效)
    • effectType: {} 涟漪特效

3.散点图的特点

  • 散点图帮助我们推断出变量间的相关性

  • 地图上的标注

series: [
        {
          data: arr,
          // 涟漪散点图
          name: "1990",
          type: "effectScatter",
          // 涟漪特效相关配置
          rippleEffect: {},
          // 配置何时显示特效
          showEffectOn: 'emphasis',
          // type: 'scatter',
          // 改变散点的大小
          // symbolSize: 20
          symbolSize: (arg) => {
            // console.log(arg);
            let height = arg[0]
            // console.log(height);
            if (height > 7) {
              return 20
            }
            return 10
          },
          // 改变散点的颜色
        itemStyle: {
          // color: 'skyblue'
          color: function (params) {
          // console.log(params);
          let height = params.data[0]
          // console.log(height);
          if (height > 7) {
          	return 'pink'
        	}
				return 'skyblue'
			}
		}
	}
]

4.饼图

1.基本的饼图

  • 基本的代码结构
  • 数据的准备
    • [{name:'',value:''}]
  • series中的type设置为pie
  • 无需设置xAxis和yAxis

2.饼图常见效果

  • 显示数值
    • formatter
      • 字符串模版
      • 回调函数
  • 圆环的显示
    • radius 饼图的半径
      • 百分比 参照的是宽高中较小的一部分的一半来进行百分比设置
      • 数组 第0个元素代表是内圆半径 第1个元素代表是外圆的半径
  • 南丁格尔图 饼图每个区域的半径是不同的
    • roseType: 'radius'
  • 选中效果
    • selectedMode: 'single/multiple'选中的区域偏离圆点一段距离
    • selectedOffset:30 偏移的距离

3.饼图的特点

了解不同分类的数据占比情况

5.地图

1.基本的地图

  • 地图分类
    • 百度地图API
      • 需要申请百度地图AK
    • 矢量地图
      • 需要准备矢量地图数据
  • 基本实现步骤
    • 基本的代码结构
    • 导入准备好的矢量地图数据
    • 使用ajax获取数据
    • 在回调函数中往echarts全局对象注册地图的json数据
    • 在geo下设置
      • type:'map'
      • map:'注册的名称'

2.地图常见的效果

3.地图的特点