|  |  | 
|  | <!-- | 
|  | 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/testHelper.js"></script> | 
|  | <meta name="viewport" content="width=device-width, initial-scale=1" /> | 
|  | <link rel="stylesheet" href="lib/reset.css" /> | 
|  | </head> | 
|  | <body> | 
|  | <style> | 
|  | h1 { | 
|  | line-height: 60px; | 
|  | height: 60px; | 
|  | background: #ddd; | 
|  | text-align: center; | 
|  | font-weight: bold; | 
|  | font-size: 14px; | 
|  | } | 
|  | .chart { | 
|  | height: 350px; | 
|  | } | 
|  | </style> | 
|  |  | 
|  |  | 
|  | <h1>define dim name in tooltip</h1> | 
|  | <div class="chart" id="dim"></div> | 
|  | <h1>change tooltip order (Tooltip of the first series should be: median, 1分位, Q3)</h1> | 
|  | <div class="chart" id="order"></div> | 
|  | <h1>define which dim on x or y. encode: {x: 2, y: 1, label: 4}</h1> | 
|  | <div class="chart" id="dimXY"></div> | 
|  |  | 
|  | <div class="chart" id="ignoreX"></div> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts', | 
|  | 'data/security-sh-2013.json.js' | 
|  | ], function (echarts, rawData) { | 
|  |  | 
|  | var dom = document.getElementById('dim'); | 
|  | if (!dom) { | 
|  | return; | 
|  | } | 
|  | var chart = echarts.init(dom); | 
|  |  | 
|  | function splitData(rawData) { | 
|  | var categoryData = []; | 
|  | var values = [] | 
|  | for (var i = 0; i < rawData.length; i++) { | 
|  | categoryData.push(rawData[i].splice(0, 1)[0]); | 
|  | values.push(rawData[i]) | 
|  | } | 
|  | return { | 
|  | categoryData: categoryData, | 
|  | values: values | 
|  | }; | 
|  | } | 
|  |  | 
|  | var data = splitData(rawData); | 
|  |  | 
|  | chart.setOption({ | 
|  | legend: { | 
|  | data: ['上证指数', '开盘'] | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'line' | 
|  | } | 
|  | }, | 
|  | grid: { | 
|  | left: '10%', | 
|  | right: '10%', | 
|  | bottom: '15%' | 
|  | }, | 
|  | xAxis: { | 
|  | type: 'category', | 
|  | data: data.categoryData, | 
|  | scale: true, | 
|  | boundaryGap : false, | 
|  | axisLine: {onZero: false}, | 
|  | splitLine: {show: false}, | 
|  | splitNumber: 20, | 
|  | min: 'dataMin', | 
|  | max: 'dataMax' | 
|  | }, | 
|  | yAxis: { | 
|  | scale: true, | 
|  | splitArea: { | 
|  | show: true | 
|  | } | 
|  | }, | 
|  | dataZoom: [ | 
|  | { | 
|  | type: 'inside', | 
|  | start: 50, | 
|  | end: 100 | 
|  | }, | 
|  | { | 
|  | show: true, | 
|  | type: 'slider', | 
|  | y: '90%', | 
|  | start: 50, | 
|  | end: 100 | 
|  | } | 
|  | ], | 
|  | series: [ | 
|  | { | 
|  | name: 'line', | 
|  | type: 'line', | 
|  | data: (function () { | 
|  | opens = []; | 
|  | for (var i = 0, len = data.values.length; i < len; i++) { | 
|  | opens.push(data.values[i][0]); | 
|  | } | 
|  | return opens; | 
|  | })(), | 
|  | smooth: true, | 
|  | lineStyle: { | 
|  | normal: {color: '#aaa'} | 
|  | } | 
|  | }, | 
|  | { | 
|  | name: '上证指数', | 
|  | type: 'candlestick', | 
|  | dimensions: ['base', '开盘', '收盘', '最高', '最低'], | 
|  | data: data.values | 
|  | } | 
|  | ] | 
|  | }); | 
|  | }) | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | var chart; | 
|  | var data; | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | data = []; | 
|  | for (var seriesIndex = 0; seriesIndex < 5; seriesIndex++) { | 
|  | var seriesData = []; | 
|  | for (var i = 0; i < 18; i++) { | 
|  | var cate = []; | 
|  | for (var j = 0; j < 100; j++) { | 
|  | cate.push(Math.random() * 200); | 
|  | } | 
|  | seriesData.push(cate); | 
|  | } | 
|  | data.push(seriesData); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | title: [ | 
|  | { | 
|  | text: 'Multiple Categories', | 
|  | left: 'center', | 
|  | } | 
|  | ], | 
|  | legend: { | 
|  | top: '10%', | 
|  | data: ['category0', 'category1', 'category2', 'category3'] | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'shadow' | 
|  | } | 
|  | }, | 
|  | grid: { | 
|  | left: '10%', | 
|  | top: '20%', | 
|  | right: '10%', | 
|  | bottom: '15%' | 
|  | }, | 
|  | xAxis: { | 
|  | type: 'category', | 
|  | data: data[0].axisData, | 
|  | boundaryGap: true, | 
|  | nameGap: 30, | 
|  | splitArea: { | 
|  | show: true | 
|  | }, | 
|  | axisLabel: { | 
|  | formatter: 'expr {value}' | 
|  | }, | 
|  | splitLine: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | yAxis: { | 
|  | type: 'value', | 
|  | name: 'Value', | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | dataZoom: [ | 
|  | { | 
|  | type: 'inside', | 
|  | start: 0, | 
|  | end: 20 | 
|  | }, | 
|  | { | 
|  | show: true, | 
|  | height: 20, | 
|  | type: 'slider', | 
|  | bottom: 50, | 
|  | xAxisIndex: [0], | 
|  | yAxisIndex: [], | 
|  | start: 0, | 
|  | end: 20 | 
|  | } | 
|  | ], | 
|  | dataset: [{ | 
|  | source: data[0] | 
|  | }, { | 
|  | source: data[1] | 
|  | }, { | 
|  | transform: { | 
|  | type: 'boxplot' | 
|  | } | 
|  | }, { | 
|  | transform: { | 
|  | type: 'boxplot' | 
|  | } | 
|  | }], | 
|  | series: [ | 
|  | { | 
|  | name: 'category0', | 
|  | type: 'boxplot', | 
|  | dimensions: [null, '最小', '1分位'], | 
|  | encode: { | 
|  | tooltip: [3, 2, 4] | 
|  | }, | 
|  | datasetIndex: 2 | 
|  | }, | 
|  | { | 
|  | name: 'category1', | 
|  | type: 'boxplot', | 
|  | datasetIndex: 3 | 
|  | } | 
|  | ] | 
|  | }; | 
|  |  | 
|  | testHelper.createChart(echarts, 'order', option); | 
|  | }) | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  | data = [ | 
|  | ['Blouse "Blue Viola"', 101.88, 99.75, 23, 17, 32, 18], | 
|  | ['Dress "Daisy"', 155.8, 144.03, 18, 12, 26, 33], | 
|  | ['Trousers "Cutesy Classic"', 203.25, 173.56, 22, 14, 20, 46], | 
|  | ['Dress "Morning Dew"', 256.0, 120.5, 22, 16, 20, 23], | 
|  | ['Turtleneck "Dark Chocolate"', 408.89, 294.75, 18, 22, 23, 19], | 
|  | ['Jumper "Early Spring"', 427.36, 430.24, 23, 22, 28, 34], | 
|  | ['Breeches "Summer Mood"', 356.0, 135.5, 12, 16, 23, 31], | 
|  | ['Dress "Mauve Chamomile"', 406.0, 95.5, 22, 16, 40, 23], | 
|  | ['Dress "Flying Tits"', 527.36, 503.24, 15, 22, 42, 24], | 
|  | ['Dress "Singing Nightingales"', 587.36, 543.24, 25, 12, 28, 37], | 
|  | ['Sundress "Cloudy weather"', 603.36, 407.24, 15, 12, 22, 24], | 
|  | ['Sundress "East motives"', 633.36, 477.24, 32, 10, 39, 19], | 
|  | ['Sweater "Cold morning"', 517.36, 437.24, 21, 17, 29, 48], | 
|  | ['Trousers "Lavender Fields"', 443.36, 387.24, 17, 26, 31, 41], | 
|  | ['Jumper "Coffee with Milk"', 543.36, 307.24, 19, 10, 34, 31], | 
|  | ['Blouse "Blooming Cactus"', 790.36, 277.24, 23, 18, 26, 28], | 
|  | ['Sweater "Fluffy Comfort"', 790.34, 678.34, 18, 12, 28, 34] | 
|  | ]; | 
|  |  | 
|  | var encode = { | 
|  | x: 0, | 
|  | y: [1, 2] | 
|  | }; | 
|  |  | 
|  | var option = { | 
|  | tooltip: { | 
|  | axisPointer: { | 
|  | type: 'cross' | 
|  | } | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'slider', | 
|  | start: 50, | 
|  | end: 70 | 
|  | }, { | 
|  | type: 'inside', | 
|  | start: 50, | 
|  | end: 70 | 
|  | }], | 
|  | xAxis: {}, | 
|  | yAxis: {}, | 
|  | series: [{ | 
|  | type: 'scatter', | 
|  | data: data, | 
|  | encode: { | 
|  | x: 2, | 
|  | y: 1, | 
|  | label: 4 | 
|  | }, | 
|  | itemStyle: { | 
|  | normal: { | 
|  | color: '#77bef7' | 
|  | } | 
|  | }, | 
|  | label: { | 
|  | normal: { | 
|  | show: true, | 
|  | position: 'top', | 
|  | textStyle: { | 
|  | color: '#333' | 
|  | } | 
|  | } | 
|  | } | 
|  | }] | 
|  | }; | 
|  |  | 
|  | testHelper.createChart(echarts, 'dimXY', option); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | var chart; | 
|  | var myChart; | 
|  | var option; | 
|  |  | 
|  | require([ | 
|  | 'echarts'/*, 'map/js/china' */ | 
|  | ], function (echarts) { | 
|  |  | 
|  | var option = { | 
|  | title: { | 
|  | text: 'deafault (filter)' | 
|  | }, | 
|  | xAxis: {}, | 
|  | yAxis: {}, | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | xAxisIndex: 0 | 
|  | }, { | 
|  | type: 'slider', | 
|  | xAxisIndex: 0 | 
|  | }, { | 
|  | type: 'inside', | 
|  | yAxisIndex: 0 | 
|  | }, { | 
|  | type: 'slider', | 
|  | yAxisIndex: 0 | 
|  | }], | 
|  | series: [{ | 
|  | type: 'custom', | 
|  | renderItem: function (params, api) { | 
|  | var y = api.coord([0, api.value(0)])[1]; | 
|  | var x = 100; | 
|  | return { | 
|  | type: 'circle', | 
|  | shape: { | 
|  | cx: x, | 
|  | cy: y, | 
|  | r: 30 | 
|  | }, | 
|  | style: { | 
|  | fill: 'blue' | 
|  | } | 
|  | }; | 
|  | }, | 
|  | encode: { | 
|  | x: -1, | 
|  | y: 0 | 
|  | }, | 
|  | data: [ | 
|  | [122, null], | 
|  | [333, null] | 
|  | ] | 
|  | }, { | 
|  | type: 'scatter', | 
|  | data: [[21, 43], [55, 66]] | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'ignoreX', { | 
|  | option: option, | 
|  | title: [ | 
|  | 'series not controlled by xAxis but only by yAxis', | 
|  | 'x axis can not filter blue circle, but y axis can do' | 
|  | ], | 
|  | info: option.series[0].encode, | 
|  | buttons: [{ | 
|  | text: 'filterMode: weakFilter', | 
|  | onclick: function () { | 
|  | option.dataZoom[0].filterMode = option.dataZoom[1].filterMode = 'weakFilter'; | 
|  | option.title.text = 'filterMode: weakFilter'; | 
|  | chart.setOption(option, true); | 
|  | } | 
|  | }, { | 
|  | text: 'filterMode: deafault (filter)', | 
|  | onclick: function () { | 
|  | option.dataZoom[0].filterMode = option.dataZoom[1].filterMode = void 0; | 
|  | option.title.text = 'deafault (filter)' | 
|  | chart.setOption(option, true); | 
|  | } | 
|  | }, { | 
|  | text: 'filterMode: empty', | 
|  | onclick: function () { | 
|  | option.dataZoom[0].filterMode = option.dataZoom[1].filterMode = 'empty'; | 
|  | option.title.text = 'filterMode: empty'; | 
|  | chart.setOption(option, true); | 
|  | } | 
|  | }, { | 
|  | text: 'filterMode: none', | 
|  | onclick: function () { | 
|  | option.dataZoom[0].filterMode = option.dataZoom[1].filterMode = 'none' | 
|  | option.title.text = 'filterMode: none'; | 
|  | chart.setOption(option, true); | 
|  | } | 
|  | }] | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | </body> | 
|  | </html> |