echarts直角图形的x轴坐标的标签添加click事件

本文详细介绍了如何使用ECharts配置柱状图,包括路径配置、图表初始化、数据加载及交互事件设置等。通过实例展示了如何调整图表样式、实现数据展示优化及添加交互功能。

<pre name="code" class="html"><!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width:600px;height:400px"></div>
    <!-- ECharts单文件引入 -->
    <script src="./comechart/js/echarts.js"></script>
    <script type="text/javascript">
        // 路径配置
        require.config({
            paths: {
                echarts: './comechart/src'
            }
        });
        
        // 使用
        require(
            [
                'echarts',
                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
            ],
            function (ec) {
                // 基于准备好的dom,初始化echarts图表
                var myChart = ec.init(document.getElementById('main')); 
                
                var option = {
                    color: ['lime','red','#058DC7'],
					title: {
						x:'center',
				    		text: '颜色分类',
						link:'javascript:alert(1)',  //超链接改成click事件
						target:'self'
					},
					tooltip: {
						trigger: 'axis',
						axisPointer : {
							type : 'shadow'    
						},
                        show: true,
						formatter:function(obj){
							var html = obj[0].name+"<br/>";
							for(var i = 0; i<obj.length;i++){
								var value = obj[i].data.toString();
								html+=obj[i].seriesName+":"+value.substr(value.lastIndexOf('-')+1)+"<br/>";	
							}
							return html;
						}
                    },
                    legend: {
                        x:'center',
				        y:'bottom',
				        padding:10,
				        data:['红','绿','蓝']
                    },
                    xAxis : [
						{
							 axisLabel : {
								formatter: function (value){return Math.abs(value);} 
							},
                            type : 'value'
                        }
                    ],
                    yAxis : [
                         {
                            type : 'category',
							position:'right',
							axisLabel : {clickable:true},
                            data:['一类','二类','三类']
                        }
                    ],
                    series : [
                        {
				            name:'红',
							clickable:false,
				            type:'bar',
				            data:[-3300, -6320, -13301]
				        },
				        {
				            name:'绿',
							clickable:false,
				            type:'bar',
				            data:[-800, -1600, -2010]
				        },
				        {
				            name:'蓝',
							clickable:false,
				            type:'bar',
				            data:[-400, -800, -1200]
				        }
                    ]
                };
        
                // 为echarts对象加载数据 
                myChart.setOption(option); 
				function eConsole(param) {  
					if (typeof param.seriesIndex == 'undefined') {  
							return;  
						}  
						if (param.type == 'click') {  
							alert(param.name);  
						}  
					}  
				var ecConfig = require('echarts/config');
				myChart.on(ecConfig.EVENT.CLICK, eConsole);
            }
        );
    </script>
</body>



修改的地方:

1)第一

 paths: {
                echarts: 'http://echarts.baidu.com/build/dist'
            }

修改为:

paths: {
                echarts: './comechart/src'  // 'http://echarts.baidu.com/build/dist'文件的存放路径
            }

2)第二

series里面添加clickable:false

series : [
                        {
           name:'当天正常签收',
    clickable:false,---------------------------------新添加设置柱子不可点击
           type:'bar',
           data:[-3300, -6320, -13301]
       },
       {
           name:'未签收',
    clickable:false,,---------------------------------新添加设置柱子不可点击
           type:'bar',
           data:[-800, -1600, -2010]
       },
       {
           name:'异常签收',
    clickable:false,,---------------------------------新添加设置柱子不可点击
           type:'bar',
           data:[-400, -800, -1200]
       }
                    ]

3)第三

xAxis / yAxis 添加axisLabel : {clickable:true},xAxis / yAxis对应的type为type : 'category'

yAxis : [
                         {
                            type : 'category',
position:'right',
axisLabel : {clickable:true},
                            data:['分部','本部','总部']
                        }
                    ]

4)第四

myChart添加onclick事件

myChart.setOption(option); 
function eConsole(param) {  
if (typeof param.seriesIndex == 'undefined') {  
return;  
}  
if (param.type == 'click') {  
alert(param.name);  
}  
}  
var ecConfig = require('echarts/config');
myChart.on(ecConfig.EVENT.CLICK, eConsole);
            }

5)第五

1、这个柱图的y轴为项目轴,并且设置y轴偏右,所有的数值都是负值,为了让所有的柱子都贴近y轴;

2、为了x轴所有的标识数据为正数,给x轴的数值都取绝对值

xAxis : [
    {
axisLabel : {
formatter: function (value){return Math.abs(value);//显示的数值都取绝对值

                                                          } 
},
                                                        type : 'value'
                      }
               ]

如图

给title添加click事件:

方法:只要在option的title里面添加(link:'javascript:alert(1);', target:'self')

是将title的超链接改成title的click事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值