echarts从入门到熟悉

175 阅读3分钟

简介

项目开发中,通常中后台管理系统会用到可视化做出好看的界面,这里就记录一点echarts的知识点,希望能帮到优秀的你,如有错误,也欢迎指正~ 本项目测试的echarts版本为当前(2024.03.18)最新的echarts.min@5.5.0.js,我会给一个开源的代码仓库,如有想要拉取代码的可自行获取

一、开始上手

1.1 先绘制一个简单的柱状图出来

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!-- 步骤1 引入 -->
		<script src="lib/echarts.min@5.5.0.js"></script>
	</head>
	<body>
		<!-- 步骤2:准备一个呈现图表的盒子 -->
		<div style="width: 560px;height: 400px"></div>
	</body>
	<script>
		// 步骤3:初始化echarts实例对象
		var mCharts = echarts.init(document.querySelector('div'))
		// 步骤4:准备配置项
		var option = {
			
		// xAxis 直角坐标系中的 x轴, 如果 type 属性的值为 category ,那么需要配置 data 数据, 代表在 x 轴的呈现
		  xAxis: {
		    type: 'category',
		    data: ['李星云', '姬如雪', '张子凡']
		  },
		// yAxis 直角坐标系中的 y轴, 如果 type 属性配置为 value , 那么无需配置 data , 此时 y 轴会自动去series 下找数据进行图表的绘制
		  yAxis: {
		    type: 'value'
		  },
		// series 系列列表。每个系列通过 type 决定自己的图表类型, data 来设置每个系列的数据
		  series: [
		    {
		      name: '语文',
		      type: 'bar',
		      data: [88, 75, 92]
		    }
		  ]
		}
		// 步骤5:将配置项设置给echarts实例对象
		mCharts.setOption(option)
	</script>
</html>

image.png

按如上步骤,即可运行出简单的效果来。 xAxis 直角坐标系中的 x轴;yAxis 直角坐标系中的 y轴。

1.2 然后我们给柱状图加点效果

在series[{给每一项添加配置}]中的每一个对象中添加属性,这里我们添加

  • markPoint 标记: 最大值\最小值
  • markLine 平均值
  • label 数值显示
  • barWidth 柱的宽度
series: [{
    name: '语文',
    type: 'bar',
    data: [88, 75, 92],
    // 3.1.2.柱状图的常见效果
    // 1 标记: 最大值\最小值 markPoint
    markPoint: {
        data: [{
                type: 'max',
                name: '最大值'
            },
            {
                type: 'min',
                name: '最小值'
            }
        ]
    },
    // 2 平均值 markLine
    markLine: {
        data: [{
                type: 'average',
                name: '平均值'
        }]
    },
    // 3 数值显示 label
    label: {
        show: true, // 是否可见
        rotate: 60 // 旋转角度
    },
    // 4 柱的宽度 barWidth
    barWidth: '30%' // 柱的宽度

}]

image.png

二、echarts的通用配置项

2.1 标题: title

var option = {
    title: { // 标题设置
      text: '成绩展示', // 标题文字
      textStyle: { // 标题文字样式设置
        color: '#55aa7f'
      },
      borderWidth: 5, // 标题边框宽度
      borderColor: 'pink', // 标题边框颜色
      borderRadius: 10, // 标题边框圆角
      left: 30, // 标题距离左边的距离
      top: 10 // 标题距离顶部的距离
    },

    // xAxis 直角坐标系中的 x轴, 如果 type 属性的值为 category ,那么需要配置 data 数据, 代表在 x 轴的呈现
   xAxis: {
     type: 'category',
     data: ['李星云', '姬如雪', '张子凡']
   },
   ......
}

image.png

2.2 提示框 tooltip:当鼠标移入到图表或者点击图表时, 展示出的提示框

var option = {
   // 1 标题: title
    title: { // 标题设置
        text: '成绩展示', // 标题文字
        textStyle: { // 标题文字样式设置
                color: '#55aa7f'
        },
        borderWidth: 5, // 标题边框宽度
        borderColor: 'pink', // 标题边框颜色
        borderRadius: 10, // 标题边框圆角
        left: 30, // 标题距离左边的距离
        top: 10 // 标题距离顶部的距离
    },

    // 2 提示框: tooltip 指的是当鼠标移入到图表或者点击图表时, 展示出的提示框
    tooltip: {
        trigger: 'item',
        triggerOn: 'mousemove', // 触发时机, click代表点击, mousemove代表鼠标移过
        // formatter: '{a}--{b}:{c}'
        formatter: function(arg) {
            console.log('提示框:', arg);
            return arg.name + '的' + arg.seriesName + ':' + arg.data
        }
    },
    .....其他
}    

image.png

formatter回调函数里打印可以看到一些参数,随你项目可取出你需要展示的值哦

2.3 工具按钮: toolbox

    // 3 工具按钮: toolbox
    toolbox: {
        feature: {
            saveAsImage: {}, // 将图表保存为图片
            dataView: {}, // 是否显示出原始数据
            restore: {}, // 还原图表
            dataZoom: {}, // 数据缩放
            magicType: { // 将图表在不同类型之间切换,图表的转换需要数据的支持
                type: ['bar', 'line']
            }
        }
    },

image.png

2.4 图例: legend

用于筛选类别,需要和 series 配合使用。

  • legend 中的 data 是一个数组;
  • legend 中的 data 的值需要和 series 数组中某组数据的 name 值一致。
    legend: {
        // 注意这里数组的值要和下面series数组里每一个对象的name字段对应才行
        data: ['语文', '数学']  
    },
    series: [
        {
            name: '语文',
            ....这一项是语文的数据
        },
        // 再加一项数学的
        {
         name: '数学',
         ......
        }
    ]

image.png

点击进行筛选

image.png