1. 程式人生 > >echarts直角圖形的x軸座標的標籤新增click事件

echarts直角圖形的x軸座標的標籤新增click事件

<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事件