前面两篇博客我写了有关Echarts的一些基础和通用配置项,博客地址在下

数据可视化----ECharts初体验(一)数据可视化----ECharts通用配置(二)



柱状图

  • 柱状图
  • 一、搭建基础结构
  • 二、配置配置项
  • 1. 坐标x轴 xAxis
  • 2. 坐标y轴 yAxis
  • 3. series (我这里叫它系列)
  • 其他操作(这些都是在series里进行配置的)
  • 最大值,最小值
  • 平均值
  • 显示数值
  • 柱子宽度


柱状图

一、搭建基础结构

步骤1:引入echarts.js文件

<script src="echarts.js文件所在路径"></script>

步骤2:准备一个呈现图表的盒子(这个盒子要给予宽高)

<!-- 在body里面 -->
<div style="width: 600px;height: 400px;"></div>

步骤3:初始化echarts实例对象(这个script标签要记得放在呈现图表的盒子之后,或者window.onload)

//这要写在一个新的脚本里,并且这对script标签要记得放在呈现图表的盒子之后
var mCharts = echarts.init(document.querySelector('div'));

步骤4:准备配置项(使用ECharts创建不同的表格,只有配置项会变化,其他代码都是固定)

var option = {}

步骤5:将配置项配置给echarts实例对象

mCharts.setOption(option)

二、配置配置项

这里我们可以假定一个案例,比如我们要做一张成绩单
现在有:‘张三’, ‘李四’, ‘王五’, ‘二嘎’, ‘闰土’, ‘铁蛋’, ‘史珍香’, ‘狗娃’,这几名同学
他们对应的成绩是:65, 78, 98, 100, 59, 86, 76, 89.5

大致如图,太丑莫怪,毕竟不是学美术的

jquery echarts制作柱状图 echarts柱状图_jquery echarts制作柱状图

1. 坐标x轴 xAxis
xAxis: {
	//坐标轴类型  'category' 类目轴
    type: 'category',
    // 坐标轴名称  可选
    name: '姓名',
    // 坐标轴名称显示位置  可选
    nameLocation: 'start',
    data: ['张三', '李四', '王五', '二嘎', '闰土', '铁蛋', '史珍香', '狗娃']
},
2. 坐标y轴 yAxis
yAxis: {
	// 下面的配置基本与X轴类似,至于顺序不一致,那是因为对象本身就是无序的
   name: '得分',
   nameLocation: 'start',
   //坐标轴类型  'category' 数值轴
   type: 'value'
}
3. series (我这里叫它系列)

注意

  1. 这里的type类型,决定了这一张图表的呈现形式
  2. 这里data中的数据对应展示在Y轴上
  3. 它的值是一个数组,数组中可以包含一至多个对象
  4. 我们在设置通用配置legend时需要series来配合
series: [{
   name: '语文',
   type: 'bar',
   data: [65, 78, 98, 100, 59, 86, 76, 89.5]
}]

现在我们完整的代码是这样的

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>柱状图</title>
    <script src="./lib/echarts.min.js"></script>
</head>

<body>
    <div style="width: 600px;height: 400px;"></div>
    <script>
        let oDiv = document.querySelector('div')
        var mCharts = echarts.init(oDiv);
        var option = {
            xAxis: {
                type: 'category',
                name: '姓名',
                nameLocation: 'start',
                data: ['张三', '李四', '王五', '二嘎', '闰土', '铁蛋', '史珍香', '狗娃']
            },
            yAxis: {
                name: '得分',
                nameLocation: 'start',
                type: 'value'
            },
            series: [{
                name: '语文',
                type: 'bar',
                data: [65, 78, 98, 100, 59, 86, 76, 89.5]
            }]
        }
        mCharts.setOption(option)
    </script>
</body>

</html>

这个时候的效果是这样子的

jquery echarts制作柱状图 echarts柱状图_可视化_02

其他操作(这些都是在series里进行配置的)

我们还可以,去做一些其他操作,例如:最大值,最小值,平均值,显示数值,调整一下柱宽度,这就需要我们在series里去做一些操作配置

最大值,最小值

在series里添加这段配置

// 最大值,最小值
markPoint: {
    data: [{
      type: 'max',
      name: '最大值'
     },
   	 {
 	     type: 'min',
         name: '最小值'
     }]
 }

然后效果是这样的

jquery echarts制作柱状图 echarts柱状图_jquery echarts制作柱状图_03

平均值

在series里添加这段配置

// 平均值
markLine: {
  data: [{
     type: 'average',
     name: '平均值'
  }]
}

这个时候效果就变成了这样,注意图表之中多了一条线

jquery echarts制作柱状图 echarts柱状图_js_04

显示数值

在series里添加这段配置,注释掉的配置大家可以自己玩玩看

// 显示数值
label: {
    show: true,
    // 文字会以60°旋转
    rotate: 60,
    // 标签的位置
    // position: 'insideTopLeft',
    // 绝对的像素值
    // position: [10, 10],
    // 相对的百分比
    // position: ['50%', '50%']
}

这时候的效果是这样

jquery echarts制作柱状图 echarts柱状图_jquery echarts制作柱状图_05

柱子宽度
// 柱宽度
 barWidth: '30%',

就成这样式得了

jquery echarts制作柱状图 echarts柱状图_可视化_06


series里还可以多整几个对象,这里整俩看看,我把最大值,最小值,平均值,显示数值这些都去掉

这时候series是这样

series: [{
   name: '语文',
   type: 'bar',
   data: [65, 78, 98, 100, 59, 86, 76, 89.5]
},{
   name: '数学',
   type: 'bar',
   data: [69, 82, 89, 95, 70, 95, 84, 90]
}]

效果成了这样子,是不是比我画的好看多了

jquery echarts制作柱状图 echarts柱状图_数据可视化_07


最后,还是老样子,完整代码奉上

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>柱状图</title>
    <script src="./lib/echarts.min.js"></script>
</head>

<body>
    <div style="width: 600px;height: 400px;"></div>
    <script>
        let oDiv = document.querySelector('div')
        var mCharts = echarts.init(oDiv);
        var option = {
            xAxis: {
                type: 'category',
                name: '姓名',
                nameLocation: 'start',
                data: ['张三', '李四', '王五', '二嘎', '闰土', '铁蛋', '史珍香', '狗娃']
            },
            yAxis: {
                name: '得分',
                nameLocation: 'start',
                type: 'value'
            },
            series: [{
                name: '语文',
                type: 'bar',
                // 最大值,最小值
                /* markPoint: {
                    data: [{
                            type: 'max',
                            name: '最大值'
                        },
                        {
                            type: 'min',
                            name: '最小值'
                        }
                    ]
                }, */
                // 平均值
                /* markLine: {
                    data: [{
                        type: 'average',
                        name: '平均值'
                    }]
                }, */
                // 显示数值
                /* label: {
                    show: true,
                    // 文字会以60°旋转
                    rotate: 60,
                    // 标签的位置
                    // position: 'insideTopLeft',
                    // 绝对的像素值
                    // position: [10, 10],
                    // 相对的百分比
                    // position: ['50%', '50%']
                }, */
                // 柱宽度
                // barWidth: '30%',
                data: [65, 78, 98, 100, 59, 86, 76, 89.5]
            },
            {
                name: '数学',
                type: 'bar',
                data: [69, 82, 89, 95, 70, 95, 84, 90]
            }]
        }
        mCharts.setOption(option)
    </script>
</body>

</html>