004_柱状图

1. 柱状图(或称条形图)是一种通过柱形的长度来表现数据大小的一种常用图表类型。

2. 设置柱状图的方式, 是将series的type设为'bar'。

3. 最简单的柱状图

3.1. 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>最简单的柱状图</title>
		<!-- 引入echarts.js -->
		<script type="text/javascript" src="echarts.js"></script>
	</head>
	<body>
		<!-- 为ECharts准备一个具备大小(宽高)的DOM -->
		<div id="main" style="width: 600px; height:400px;"></div>
		<script type="text/javascript">
	    	// 基于准备好的dom, 初始化echarts实例
	      	var myChart = echarts.init(document.getElementById('main'));

	      	// 指定图表的配置项和数据
	      	var option = {
	      		// 为图表配置标题
		        title: {
		          text: '最简单的柱状图'
		        },
		        // 配置提示信息
		        tooltip: {},
		        // 图例组件
		        legend: {
		          data: ['销量']
		        },
		        // 配置要在X轴显示的项
		        xAxis: {
		          type: "category", // 类目
		          data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
		        },
		        // 配置要在Y轴显示的项
		        yAxis: {},
		        // 系列列表
		        series: [
		          {
		            name: '销量', // 系列名称
		            type: 'bar', // 系列图表类型
		            data: [5, 20, 36, 10, 10, 20] // 系列中的数据内容
		          }
		        ]
	      	};

	      	// 使用刚指定的配置项和数据显示图表。
	      	myChart.setOption(option);
	    </script>
	</body>
</html>

3.2. 效果图

3.3. 在这个例子中, 横坐标是类目型的(type: "category"), 因此需要在xAxis中指定对应的值; 而纵坐标是数值型的, 可以根据series中的data, 自动生成对应的坐标范围。

4. 多系列的柱状图

4.1. 我们可以用一个系列表示一组相关的数据, 如果需要实现多系列的柱状图, 只需要在series多添加一项就可以了。

4.2. 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>多系列的柱状图</title>
		<!-- 引入echarts.js -->
		<script type="text/javascript" src="echarts.js"></script>
	</head>
	<body>
		<!-- 为ECharts准备一个具备大小(宽高)的DOM -->
		<div id="main" style="width: 600px; height:400px;"></div>
		<script type="text/javascript">
	    	// 基于准备好的dom, 初始化echarts实例
	      	var myChart = echarts.init(document.getElementById('main'));

	      	// 指定图表的配置项和数据
	      	var option = {
	      		// 为图表配置标题
		        title: {
		          text: '多系列的柱状图'
		        },
		        // 配置提示信息
		        tooltip: {},
		        // 图例组件
		        legend: {
		          data: ['2020', '2021', '2022']
		        },
		        // 配置要在X轴显示的项
		        xAxis: {
    			  type: "category", // 类目
    			  data: ['Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie']
  				},
		        // 配置要在Y轴显示的项
		        yAxis: {},
		        // 系列列表
		        series: [
		          {
		            name: '2020', // 系列名称
		            type: 'bar', // 系列图表类型
		            data: [89.3, 92.1, 94.4, 85.4] // 系列中的数据内容
		          },
		          {
		            name: '2021', // 系列名称
		            type: 'bar', // 系列图表类型
		            data: [95.8, 89.4, 91.2, 76.9] // 系列中的数据内容
		          },
		          {
		            name: '2022', // 系列名称
		            type: 'bar', // 系列图表类型
		            data: [97.7, 83.1, 92.5, 78.1] // 系列中的数据内容
		          }
		        ]
	      	};

	      	// 使用刚指定的配置项和数据显示图表。
	      	myChart.setOption(option);
	    </script>
	</body>
</html>

4.3. 效果图

5. 为柱条添加背景色

5.1. 有时, 我们希望能够为柱条添加背景色。从ECharts 4.7.0版本开始, 这一功能可以简单地用showBackground开启, 并且可以通过backgroundStyle配置。

5.2. 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>为柱条添加背景色</title>
		<!-- 引入echarts.js -->
		<script type="text/javascript" src="echarts.js"></script>
	</head>
	<body>
		<!-- 为ECharts准备一个具备大小(宽高)的DOM -->
		<div id="main" style="width: 600px; height:400px;"></div>
		<script type="text/javascript">
	    	// 基于准备好的dom, 初始化echarts实例
	      	var myChart = echarts.init(document.getElementById('main'));

	      	// 指定图表的配置项和数据
	      	var option = {
	      		// 为图表配置标题
		        title: {
		          text: '为柱条添加背景色'
		        },
		        // 配置提示信息
		        tooltip: {},
		        // 图例组件
		        legend: {
		          data: ['销量']
		        },
		        // 配置要在X轴显示的项
		        xAxis: {
		          type: "category", // 类目
		          data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
		        },
		        // 配置要在Y轴显示的项
		        yAxis: {},
		        // 系列列表
		        series: [
		          {
		            name: '销量', // 系列名称
		            type: 'bar', // 系列图表类型
		            showBackground: true,
		            backgroundStyle: {
        			  color: 'rgba(220, 220, 220, 0.8)'
      				},
		            data: [5, 20, 36, 10, 10, 20] // 系列中的数据内容
		          }
		        ]
	      	};

	      	// 使用刚指定的配置项和数据显示图表。
	      	myChart.setOption(option);
	    </script>
	</body>
</html>

5.3. 效果图

6. 堆叠柱状图

6.1. 有时候, 我们不仅希望知道不同系列各自的数值, 还希望知道它们之和的变化, 这时候通常使用堆积柱状图图来表现。顾名思义, 堆积柱状图就是一个系列的数值"堆积"在另一个系列上, 因而从他们的高度总和就能表达总量的变化。

6.2. 使用EChart实现堆积折线图的方法非常简单, 只需要给一个系列的stack值设置一个字符串类型的值, 这一个值表示该系列堆积的类别。也就是说, 拥有同样stack值的系列将堆积在一组。

6.3. 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>堆叠柱状图</title>
		<!-- 引入echarts.js -->
		<script type="text/javascript" src="echarts.js"></script>
	</head>
	<body>
		<!-- 为ECharts准备一个具备大小(宽高)的DOM -->
		<div id="main" style="width: 600px; height:400px;"></div>
		<script type="text/javascript">
	    	// 基于准备好的dom, 初始化echarts实例
	      	var myChart = echarts.init(document.getElementById('main'));

	      	// 指定图表的配置项和数据
	      	var option = {
	      		// 为图表配置标题
		        title: {
		          text: '堆叠柱状图'
		        },
		        // 配置提示信息
		        tooltip: {},
		        // 图例组件
		        legend: {
		          data: ['2020', '2021', '2022']
		        },
		        // 配置要在X轴显示的项
		        xAxis: {
    			  type: "category", // 类目
    			  data: ['Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie']
  				},
		        // 配置要在Y轴显示的项
		        yAxis: {},
		        // 系列列表
		        series: [
		          {
		            name: '2020', // 系列名称
		            type: 'bar', // 系列图表类型
		            data: [89.3, 92.1, 94.4, 85.4], // 系列中的数据内容
		            stack: '销量'
		          },
		          {
		            name: '2021', // 系列名称
		            type: 'bar', // 系列图表类型
		            data: [95.8, 89.4, 91.2, 76.9], // 系列中的数据内容
		            stack: '销量'
		          },
		          {
		            name: '2022', // 系列名称
		            type: 'bar', // 系列图表类型
		            data: [97.7, 83.1, 92.5, 78.1], // 系列中的数据内容
		            stack: '销量'
		          }
		        ]
	      	};

	      	// 使用刚指定的配置项和数据显示图表。
	      	myChart.setOption(option);
	    </script>
	</body>
</html>

6.4. 效果图

6.5. 在这个例子中, 第二个系列所在的位置是在第一个系列的位置的基础上, 上升了第二个系列数值对应的高度。因此, 从第二个系列的位置, 就能看出这两者总和的变化趋势。

6.6. stack的取值用来表明哪些系列将被堆积在一起, 理论上只要取值相同即可, 具体的取值并没有什么区别。但在实际的应用中, 我们建议使用一些有意义的字符串方便阅读。比如, 在一个统计男女人数的图中, 有四个系列, "成年男性"和"男孩"系列需要进行堆积, "成年女性"和"女孩"系列需要堆积。这时, 这两组的的stack值就建议分别设为'男'和'女'。虽然使用'a'和'b'这样没有意义的字符串也能实现同样的效果, 但是代码的可阅读性就差了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值