echarts堆叠柱状图点击事件取id

普通的堆叠统计图

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="lib/jquery.min.js"></script>
        <script src="lib/esl.js"></script>
        <script src="lib/config.js"></script>
        <link rel="stylesheet" href="lib/reset.css" />
		<script src="dist/echarts.js"></script>
		<style>
			#main {
				height: 500px;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script>
			// var chartDom = document.getElementById('main');
			var option;

			require([
				'echarts'
			], function(ec) {
				echarts = ec;
				colorTool = echarts.color;
				chart = myChart = echarts.init(document.getElementById('main'));
				option = {
				    tooltip: {
				        trigger: 'axis',
				        axisPointer: {            // 坐标轴指示器,坐标轴触发有效
				            type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
				        }
				    },
				    legend: {
				        data: ['邮件营销', '联盟广告', '视频广告']
				    },
				    grid: {
				        left: '3%',
				        right: '4%',
				        bottom: '3%',
				        containLabel: true
				    },
				    xAxis: [
				        {
				            type: 'category',
				            data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
				        }
				    ],
				    yAxis: [
				        {
				            type: 'value'
				        }
				    ],
				    series: [
				        {
				            name: '邮件营销',
				            type: 'bar',
				            stack: '广告',
				            emphasis: {
				                focus: 'series'
				            },
				            data: [120, 132, 101, 134, 90, 230, 210]
				        },
				        {
				            name: '联盟广告',
				            type: 'bar',
				            stack: '广告',
				            emphasis: {
				                focus: 'series'
				            },
				            data: [220, 182, 191, 234, 290, 330, 310]
				        },
				        {
				            name: '视频广告',
				            type: 'bar',
				            stack: '广告',
				            emphasis: {
				                focus: 'series'
				            },
				            data: [100, 100, 100, 100, 100, 100]
				        }
				    ]
				};
				chart.setOption(option);
				chart.on('click', function (params) {
					console.log(params.data);
				});
			});
		</script>
	</body>
</html>

点击柱状图时只能打印出data中的数据,那么如果我有一个id想要取出来并且不能在统计图中显示出来的话如何处理呢?
修改后的代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="lib/jquery.min.js"></script>
        <script src="lib/esl.js"></script>
        <script src="lib/config.js"></script>
        <link rel="stylesheet" href="lib/reset.css" />
		<script src="dist/echarts.js"></script>
		<style>
			#main {
				height: 500px;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script>
			// var chartDom = document.getElementById('main');
			var option;

			require([
				'echarts'
			], function(ec) {
				echarts = ec;
				colorTool = echarts.color;
				chart = myChart = echarts.init(document.getElementById('main'));
				option = {
				    tooltip: {
				        trigger: 'axis',
				        axisPointer: {            // 坐标轴指示器,坐标轴触发有效
				            type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
				        }
				    },
				    legend: {
				        data: ['邮件营销', '联盟广告', '视频广告']
				    },
				    grid: {
				        left: '3%',
				        right: '4%',
				        bottom: '3%',
				        containLabel: true
				    },
				    xAxis: [
				        {
				            type: 'category',
				            data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
				        }
				    ],
				    yAxis: [
				        {
				            type: 'value'
				        }
				    ],
				    series: [
				        {
				            name: '邮件营销',
				            type: 'bar',
				            stack: '广告',
				            emphasis: {
				                focus: 'series'
				            },
				            data: [{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1}]
				        },
				        {
				            name: '联盟广告',
				            type: 'bar',
				            stack: '广告',
				            emphasis: {
				                focus: 'series'
				            },
				            data: [{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1}]
				        },
				        {
				            name: '视频广告',
				            type: 'bar',
				            stack: '广告',
				            emphasis: {
				                focus: 'series'
				            },
				            data: [{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1},{value:100,id:1}]
				        }
				    ]
				};
				chart.setOption(option);
				chart.on('click', function (params) {
					console.log(params.data);
				});
			});
		</script>
	</body>
</html>

把data[value]改成data[{value:value,id:id}]
这样在点击事件中通过console.log(params.data.id)取出id了

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
如何实现? 要实现 echarts 堆叠柱状图,需要使用 echarts.js 库和一些基本的 HTML、CSS 和 JavaScript 代码。下面是实现 echarts 堆叠柱状图的基本步骤: 1. 引入 echarts.js 库。在 HTML 页面头部添加以下代码: ```html <script src="https://cdn.jsdelivr.net/npm/echarts@5.1.0/dist/echarts.min.js"></script> ``` 2. 在页面中添加一个容器用于显示柱状图。可以使用 div 元素,给它一个 ID,例如: ```html <div id="chartContainer" style="width: 800px; height: 600px;"></div> ``` 3. 编写 JavaScript 代码,创建 echarts 实例,配置图表参数,并将图表绑定到容器上。以下是一个简单的 echarts 堆叠柱状图示例代码: ```javascript // 创建 echarts 实例 var chart = echarts.init(document.getElementById('chartContainer')); // 配置图表参数 var option = { title: { text: '堆叠柱状图示例' }, tooltip: {}, legend: { data:['数据1', '数据2', '数据3'] }, xAxis: { data: ['一月', '二月', '三月', '四月', '五月', '六月'] }, yAxis: {}, series: [ { name: '数据1', type: 'bar', stack: '总量', data: [10, 20, 30, 40, 50, 60] }, { name: '数据2', type: 'bar', stack: '总量', data: [20, 30, 40, 50, 60, 70] }, { name: '数据3', type: 'bar', stack: '总量', data: [30, 40, 50, 60, 70, 80] } ] }; // 将图表绑定到容器上 chart.setOption(option); ``` 通过以上三个步骤,便可实现 echarts 堆叠柱状图。当然,以上代码仅为示例代码,实际使用时需要根据具体需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值