|  |  | 
|  | <!-- | 
|  | Licensed to the Apache Software Foundation (ASF) under one | 
|  | or more contributor license agreements.  See the NOTICE file | 
|  | distributed with this work for additional information | 
|  | regarding copyright ownership.  The ASF licenses this file | 
|  | to you under the Apache License, Version 2.0 (the | 
|  | "License"); you may not use this file except in compliance | 
|  | with the License.  You may obtain a copy of the License at | 
|  |  | 
|  | http://www.apache.org/licenses/LICENSE-2.0 | 
|  |  | 
|  | Unless required by applicable law or agreed to in writing, | 
|  | software distributed under the License is distributed on an | 
|  | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | KIND, either express or implied.  See the License for the | 
|  | specific language governing permissions and limitations | 
|  | under the License. | 
|  | --> | 
|  |  | 
|  | <html> | 
|  | <head> | 
|  | <meta charset="utf-8"> | 
|  | <script src="lib/simpleRequire.js"></script> | 
|  | <script src="lib/config.js"></script> | 
|  | <script src="lib/dat.gui.min.js"></script> | 
|  | <link rel="stylesheet" href="lib/reset.css"> | 
|  | </head> | 
|  | <body> | 
|  | <style> | 
|  | html, body, #main { | 
|  | width: 100%; | 
|  | height: 100%; | 
|  | } | 
|  | </style> | 
|  | <div id="main"></div> | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | '../node_modules/seedrandom/seedrandom.js', | 
|  | 'echarts', | 
|  | ], function (seedrandom, echarts) { | 
|  | Math.random = new seedrandom('echarts-random'); | 
|  |  | 
|  | var chart = echarts.init(document.getElementById('main')); | 
|  |  | 
|  | var symbolList = [ | 
|  | 'circle', | 
|  | 'triangle', | 
|  | 'diamond', | 
|  | 'pin', | 
|  | 'image://./asset/echarts-logo.png', | 
|  | 'path://M432.45,595.444c0,2.177-4.661,6.82-11.305,6.82c-6.475,0-11.306-4.567-11.306-6.82s4.852-6.812,11.306-6.812C427.841,588.632,432.452,593.191,432.45,595.444L432.45,595.444z M421.155,589.876c-3.009,0-5.448,2.495-5.448,5.572s2.439,5.572,5.448,5.572c3.01,0,5.449-2.495,5.449-5.572C426.604,592.371,424.165,589.876,421.155,589.876L421.155,589.876z M421.146,591.891c-1.916,0-3.47,1.589-3.47,3.549c0,1.959,1.554,3.548,3.47,3.548s3.469-1.589,3.469-3.548C424.614,593.479,423.062,591.891,421.146,591.891L421.146,591.891zM421.146,591.891', | 
|  | 'emptyPath://M432.45,595.444c0,2.177-4.661,6.82-11.305,6.82c-6.475,0-11.306-4.567-11.306-6.82s4.852-6.812,11.306-6.812C427.841,588.632,432.452,593.191,432.45,595.444L432.45,595.444z M421.155,589.876c-3.009,0-5.448,2.495-5.448,5.572s2.439,5.572,5.448,5.572c3.01,0,5.449-2.495,5.449-5.572C426.604,592.371,424.165,589.876,421.155,589.876L421.155,589.876z M421.146,591.891c-1.916,0-3.47,1.589-3.47,3.549c0,1.959,1.554,3.548,3.47,3.548s3.469-1.589,3.469-3.548C424.614,593.479,423.062,591.891,421.146,591.891L421.146,591.891zM421.146,591.891' | 
|  | ]; | 
|  |  | 
|  | function random(max) { | 
|  | return (Math.random() * max).toFixed(3); | 
|  | } | 
|  |  | 
|  | var series = symbolList.map(function (symbol, idx) { | 
|  | var seriesData = []; | 
|  | for (var i = 0; i < 20; i++) { | 
|  | seriesData.push([random(10), random(10), (+random(0.5) + 0.2).toFixed(3)]); | 
|  | } | 
|  | return { | 
|  | name: symbol.split('://')[0], | 
|  | type: 'scatter', | 
|  | symbol: symbol, | 
|  | symbolSize: function (val) { | 
|  | if (symbol.indexOf('path') >= 0 || symbol.indexOf('Path') >= 0) { | 
|  | return [val[2] * 60, val[2] * 40]; | 
|  | } | 
|  | else { | 
|  | return val[2] * 60; | 
|  | } | 
|  | }, | 
|  | label: { | 
|  | emphasis: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | data: seriesData | 
|  | }; | 
|  | }); | 
|  |  | 
|  | chart.setOption({ | 
|  | legend: { | 
|  | data: series.map(function (series) {return series.name;}) | 
|  | }, | 
|  | xAxis: { | 
|  | type: 'value', | 
|  | splitLine: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | yAxis: { | 
|  | type: 'value', | 
|  | splitLine: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | series: series | 
|  | }); | 
|  |  | 
|  | window.addEventListener('resize', chart.resize); | 
|  |  | 
|  | var symbolScaleValueMap = { | 
|  | 'undefined': undefined, | 
|  | 'null': null, | 
|  | 'true': true, | 
|  | 'false': false, | 
|  | '0': 0, | 
|  | '0.5': 0.5, | 
|  | '1': 1, | 
|  | '1.1': 1.1, | 
|  | '2': 2, | 
|  | 'NaN': NaN, | 
|  | 'Infinity': Infinity, | 
|  | 'Negative(-1)': -1, | 
|  | 'Empty String': '', | 
|  | 'String(\'abc\')': 'abc' | 
|  | } | 
|  |  | 
|  | var config = { | 
|  | hoverScale: 'false', | 
|  | tooltipTrigger: 'item' | 
|  | }; | 
|  |  | 
|  | var gui = new dat.GUI(); | 
|  | gui.add(config, 'hoverScale', Object.keys(symbolScaleValueMap)) | 
|  | .onChange(update); | 
|  | gui.add(config, 'tooltipTrigger', ['axis', 'item']) | 
|  | .onChange(update); | 
|  |  | 
|  | update(); | 
|  |  | 
|  | function update() { | 
|  | var activeHoverScale = symbolScaleValueMap[config.hoverScale]; | 
|  | console.log('active hoverScale', activeHoverScale); | 
|  | series.forEach(function (series) { | 
|  | series.emphasis = series.emphasis || {}; | 
|  | series.emphasis.scale = activeHoverScale; | 
|  | }); | 
|  | var tooltip = { | 
|  | trigger: config.tooltipTrigger, | 
|  | axisPointer: config.tooltipTrigger === 'axis' | 
|  | ? { type: 'cross' } | 
|  | : null | 
|  | }; | 
|  | console.log(tooltip); | 
|  | chart.setOption({ | 
|  | tooltip: tooltip, | 
|  | series: series | 
|  | }); | 
|  | } | 
|  | }); | 
|  |  | 
|  | </script> | 
|  | </body> | 
|  | </html> |