echarts雷達圖點擊事件 包含(2.x,3.85,4.02)測試


最近看見別人問的問題,點擊雷達圖的拐點,獲取點擊數據的問題,直接上代碼。

echarts 2x 的點擊事件

echarts配置問題:https://www.douban.com/note/509404582/

<!doctype html>
<html lang="us">
<head>
	<meta charset="utf-8">
	<title></title>
	<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
</head>
<body>
	<div id="main" style="width: 600px;height:400px;"></div>
</body>
</html>
<script>
	
	//配置圖表路徑
	require.config({
		paths:{ 
			echarts:'http://echarts.baidu.com/build/dist'
		}
	});
	//加載圖表js文件
	require(
	   [
		   'echarts',
		   'echarts/chart/radar',  //要什么圖表類型配置什么類型
	   ],
	function (ec){
		//基於准備好的dom,初始化echarts圖表
		var myChart= ec.init(document.getElementById('main'));
		var option = {
				polar: [{
					indicator: [
						{ text: '銷售', max: 6500},
						{ text: '管理', max: 16000},
						{ text: '信息技術', max: 30000},
						{ text: '客服', max: 38000},
						{ text: '研發', max: 52000},
						{ text: '市場', max: 25000}
					]
				}], 
				series: [{
					name: "",
					type: "radar",
					data: [{
						value: [4300, 10000, 28000, 35000, 50000, 19000],
						name: "預算分配"
					}],
					itemStyle: {
						normal: {
							color: "#1DBB37"
						}
					}
					},{
					name: "",
					type: "radar",
					data: [{
						value: [5000, 14000, 28000, 31000, 42000, 21000],
						name: "實際開銷"
					}],
					itemStyle: {
						normal: {
							color: "rgb(51, 153, 254)"
						}
					}
					}
				], 
		};	 

		var ecConfig = require('echarts/config');
		myChart.on(ecConfig.EVENT.CLICK,function(param){
			//點擊后執行操作
			alert(param.name)
		});
		myChart.setOption(option);
	}); 
</script>

 

echarts 3.x && 4.x 的點擊事件

測試版本 3.85和4.02版本

var dom = document.getElementById("container");
    var myChart = echarts.init(dom);
    
    var option = {
            polar: [{
                indicator: [
                    { text: '銷售', max: 6500},
                    { text: '管理', max: 16000},
                    { text: '信息技術', max: 30000},
                    { text: '客服', max: 38000},
                    { text: '研發', max: 52000},
                    { text: '市場', max: 25000}
                ]
            }], 
            series: [{
                name: "",
                type: "radar",
                data: [{
                    value: [4300, 10000, 28000, 35000, 50000, 19000],
                    name: "預算分配"
                }],
                itemStyle: {
                    normal: {
                        color: "#1DBB37"
                    }
                }
                },{
                name: "",
                type: "radar",
                data: [{
                    value: [5000, 14000, 28000, 31000, 42000, 21000],
                    name: "實際開銷"
                }],
                itemStyle: {
                    normal: {
                        color: "rgb(51, 153, 254)"
                    }
                }
                }
            ], 
    };     
    
    //單擊后執行操作
    myChart.on('click',(param) => {
        console.log(param)
    });
    // 雙擊事件
    myChart.on('dblclick', (param) => {
        console.log(param)
    })
    
    myChart.setOption(option);

 

單擊事件參數返回

 

雙擊事件參數返回

 

echarts鼠標事件說明(4.02版本)

{
    // 當前點擊的圖形元素所屬的組件名稱,
    // 其值如 'series'、'markLine'、'markPoint'、'timeLine' 等。
    componentType: string,
    // 系列類型。值可能為:'line'、'bar'、'pie' 等。當 componentType 為 'series' 時有意義。
    seriesType: string,
    // 系列在傳入的 option.series 中的 index。當 componentType 為 'series' 時有意義。
    seriesIndex: number,
    // 系列名稱。當 componentType 為 'series' 時有意義。
    seriesName: string,
    // 數據名,類目名
    name: string,
    // 數據在傳入的 data 數組中的 index
    dataIndex: number,
    // 傳入的原始數據項
    data: Object,
    // sankey、graph 等圖表同時含有 nodeData 和 edgeData 兩種 data,
    // dataType 的值會是 'node' 或者 'edge',表示當前點擊在 node 還是 edge 上。
    // 其他大部分圖表中只有一種 data,dataType 無意義。
    dataType: string,
    // 傳入的數據值
    value: number|Array
    // 數據圖形的顏色。當 componentType 為 'series' 時有意義。
    color: string
}

  

 

還有一個就是給雷達圖的文字綁定點擊事件,上代碼。api地址:http://echarts.baidu.com/tutorial.html#ECharts%20%E4%B8%AD%E7%9A%84%E4%BA%8B%E4%BB%B6%E5%92%8C%E8%A1%8C%E4%B8%BA

注意triggerEvent屬性的設置。

<!doctype html>
<html lang="us">
<head>
	<meta charset="utf-8">
	<title></title>
	<script src="echarts.min.js"></script>
</head>
<body>
	<div id="main" style="width: 600px;height:400px;"></div>
</body>
</html>
<script>
	//綁定元素
	var myChart = echarts.init(document.getElementById('main'));
	
	option = {
		title: {
			text: '基礎雷達圖'
		},
		radar: {
			indicator: [
			   { name: '銷售', max: 6500},
			   { name: '管理', max: 16000},
			   { name: '信息技術', max: 30000},
			   { name: '客服', max: 38000},
			   { name: '研發', max: 52000},
			   { name: '市場', max: 25000}
			],
			name:{
				formatter:function(v){
					console.log(v);
					return v;
				}
			},
			triggerEvent:true
		},
		series: [{
			name: '預算vs開銷',
			type: 'radar',
			data : [
				{
					value : [4300, 10000, 28000, 35000, 50000, 19000],
					name : '預算分配'
				},
				 {
					value : [5000, 14000, 28000, 31000, 42000, 21000],
					name : '實際開銷'
				}
			]
		}]
	};
	//繪制圖表
	myChart.setOption(option);
	//添加點擊事件
	myChart.on('click', function (params) {
		console.log(params)
		alert(params.name)
		if(params.name=="研發"){ //判斷點擊文字
			alert("aaa")
		}
	 })
</script>

 params的返回值

 

個人覺得echarts的文檔和功能還不太豐富,highcherts也是一個不錯的選擇。

highcharts雷達圖(highcharts叫蜘蛛圖),案例鏈接:https://www.hcharts.cn/demo/highcharts/polar-spider

<!doctype html>
<html lang="us">
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <div id="main" style="height:400px;"></div>
</body>
</html>
<script src="jquery.js"></script>
<script src="highcharts.min.js"></script>
<script src="highcharts-more.js"></script>
<script>
     $(function () {
        Highcharts.chart('main', {
            chart: {
                polar: true   //圖表類型
            },
            xAxis: {
                categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
            },
            plotOptions: {   //數據配置項
                series: {
                    cursor: 'pointer',
                    point: {
                        events: {
                            click: function () {
                                alert(this.category);
                            }
                        }
                    }
                }
            },
            series: [{
                data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
            }]
        });
    });
</script>

highcharts有一個問題,文件體積比較大,如果圖表使用的地方比較少,功能要求不高時,建議不使用,性能差點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM