|  | <!DOCTYPE html> | 
|  | <!-- | 
|  | 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/jquery.min.js"></script> | 
|  | <script src="lib/facePrint.js"></script> | 
|  | <script src="lib/testHelper.js"></script> | 
|  | <script src="lib/draggable.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: #a60; | 
|  | text-align: center; | 
|  | font-weight: bold; | 
|  | color: #eee; | 
|  | font-size: 14px; | 
|  | } | 
|  | .chart { | 
|  | height: 500px; | 
|  | } | 
|  | </style> | 
|  |  | 
|  | <div class="chart" id="main0"></div> | 
|  | <div class="chart" id="main1"></div> | 
|  | <div class="chart" id="main2"></div> | 
|  | <div class="chart" id="main3"></div> | 
|  | <div class="chart" id="main4"></div> | 
|  | <div class="chart" id="main5"></div> | 
|  | <div class="chart" id="main6"></div> | 
|  | <div class="chart" id="main6.5"></div> | 
|  | <div class="chart" id="main7"></div> | 
|  | <div class="chart" id="main8"></div> | 
|  | <div class="chart" id="main9"></div> | 
|  | <div class="chart" id="main10"></div> | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data2 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | var count = 100; | 
|  | for (var i = 0; i < count; i++) { | 
|  |  | 
|  | if (i === 14 || i === 20) { | 
|  | xAxisData.push({ | 
|  | value: '类目' + i, | 
|  | textStyle: { | 
|  | color: 'red' | 
|  | } | 
|  | }); | 
|  | } else { | 
|  | xAxisData.push('类目' + i); | 
|  | } | 
|  |  | 
|  | if (i < 5 && i > 1) { | 
|  | data1.push(0); | 
|  | } | 
|  | else { | 
|  | data1.push(+(Math.random() + 0.5).toFixed(3)); | 
|  | } | 
|  | data2.push(+(Math.random() + 0.5).toFixed(3)); | 
|  | data3.push(+(Math.random() + 0.5).toFixed(3)); | 
|  | } | 
|  |  | 
|  | var itemStyle = { | 
|  | normal: { | 
|  | borderColor: 'white', | 
|  | borderWidth: 3, | 
|  | lineStyle: { | 
|  | width: 1 | 
|  | } | 
|  | } | 
|  | }; | 
|  |  | 
|  | // var rawData = [[0.877,1.384,0,0,0,1.422,1.363,0.867,0.782,1.025,0.819,0.638,1.192,0.56,1.17,1.056,0.804,0.657,1.157,0.906,1.462,0.856,1.384,0.978,0.766,0.683,1.383,0.65,1.343,1.303,1.298,0.812,0.665,1.182,0.528,0.613,1.101,0.959,0.997,1.381,1.172,1.01,1.23,0.596,1.256,1.406,1.172,0.85,1.194,1.313,1.142,0.985,1.059,1.07,1.205,1.359,0.93,0.514,1.197,1.259,1.225,1.371,0.825,0.967,0.569,1.432,0.892,1.36,0.644,1.096,1.006,0.613,0.549,1.263,1.203,0.556,1.044,1.338,0.8,1.137,1.164,1.44,0.995,0.989,1.098,0.563,0.768,0.584,0.794,1.33,0.687,0.89,1.317,1.466,1.01,0.886,0.964,1.244,1.421,0.922],[1.369,1.092,1.446,1.472,0.873,1.093,1.136,1.057,0.832,0.633,1.054,1.169,0.727,0.674,1.361,0.842,0.762,0.621,0.964,0.87,1.425,0.543,0.877,0.779,0.568,1.352,1.065,1.381,0.938,0.805,0.686,0.994,1.485,0.915,0.504,1.141,1.167,1.101,1.423,0.789,0.942,0.863,1.02,1.443,0.732,1.197,0.993,0.738,0.923,1.355,0.796,0.707,0.729,1.27,1.034,0.704,1.375,1.377,0.953,0.555,1.211,1.37,1.399,1.183,0.591,0.803,0.969,0.866,1.086,1.35,1.378,0.834,1.048,1.084,1.267,0.965,1.064,0.954,1.39,0.564,0.742,1.033,1.293,0.74,0.709,0.962,0.863,1.455,0.894,0.876,0.827,0.662,1.33,0.857,0.71,1.423,1.131,1.224,0.725,1.446],[0.895,1.487,0.63,1.245,1.184,0.738,0.905,1.299,1.16,0.904,0.902,1.231,0.919,1.067,1.319,0.939,1.424,1.348,0.537,0.519,0.542,1.091,1.351,1.337,0.674,1.112,1.218,1.317,0.62,0.686,0.683,1.273,1.096,1.324,1.448,1.157,0.8,0.878,0.83,1.069,1.261,0.968,1.043,0.55,0.73,0.886,0.8,0.943,0.597,0.93,0.794,1.43,0.941,1.376,0.647,0.848,1.273,0.853,0.585,0.899,0.649,1.217,1.097,1.273,1.165,0.648,0.622,1.111,0.626,0.75,1.477,1.13,0.6,0.855,1.463,1.414,1.487,0.992,0.948,1.333,0.791,0.654,0.511,1.471,0.626,1.286,0.547,1.082,1.195,1.29,0.794,1.294,1.136,0.807,0.647,1.415,0.674,0.869,1.437,0.711]]; | 
|  | // data1 = rawData[0]; | 
|  | // data2 = rawData[1]; | 
|  | // data3 = rawData[2]; | 
|  |  | 
|  | var option = { | 
|  | legend: { | 
|  | data: ['line', 'line2', 'line3'] | 
|  | }, | 
|  | visualMap: null, // 用于测试 option 中含有null的情况。 | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'line' | 
|  | } | 
|  | }, | 
|  | xAxis: { | 
|  | // data: ['类目1', '类目2', '类目3', '类目4', '类目5',] | 
|  | data: xAxisData, | 
|  | boundaryGap: false, | 
|  | // inverse: true, | 
|  | splitArea: { | 
|  | show: false | 
|  | }, | 
|  | splitLine: { | 
|  | show: false | 
|  | }, | 
|  | axisLabel: { | 
|  | // showMaxLabel: true, | 
|  | // showMinLabel: true | 
|  | } | 
|  | }, | 
|  | grid: { | 
|  | left: '10%', | 
|  | right: '10%' | 
|  | }, | 
|  | yAxis: { | 
|  | axisLabel: { | 
|  | textStyle: { | 
|  | color: 'red' | 
|  | } | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | } | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | // start: 10, | 
|  | // end: 12 | 
|  | startValue: 11, | 
|  | endValue: 85 | 
|  | }, { | 
|  | type: 'slider', | 
|  | // start: 10, | 
|  | // end: 12 | 
|  | startValue: 11, | 
|  | endValue: 85 | 
|  | }], | 
|  | // animationDurationUpdate: 2000, | 
|  | // animation: false, | 
|  | series: [ | 
|  | null,  // 用于测试 option 中含有null的情况。 | 
|  | { | 
|  | name: 'line', | 
|  | type: 'line', | 
|  | stack: 'all', | 
|  | symbol: 'path://M164,210.677v33.47l154.656,66.356L468,243.681v-33.004H164L164,210.677z M164,282.255L164,282.255v134.76h304V282.061l-149.012,66.615L164,282.255L164,282.255z', | 
|  | symbolKeepAspect: true, | 
|  | symbolSize: 40, | 
|  | data: data1, | 
|  | itemStyle: itemStyle, | 
|  | label: { | 
|  | normal: { | 
|  | show: true, | 
|  | fontSize: 12 | 
|  | } | 
|  | }, | 
|  | lineStyle: { | 
|  | normal: { | 
|  | shadowBlur: 4, | 
|  | shadowOffsetX: 3, | 
|  | shadowOffsetY: 3 | 
|  | } | 
|  | }, | 
|  | step: 'end' | 
|  | }, | 
|  | { | 
|  | label: { | 
|  | normal: { | 
|  | show: true, | 
|  | position: 'outside' | 
|  | } | 
|  | }, | 
|  | name: 'line2', | 
|  | type: 'line', | 
|  | stack: 'all', | 
|  | symbol: 'circle', | 
|  | symbolSize: 10, | 
|  | data: data2, | 
|  | itemStyle: itemStyle, | 
|  | step: 'end' | 
|  | }, | 
|  | { | 
|  | name: 'line3', | 
|  | type: 'line', | 
|  | stack: 'all', | 
|  | symbol: 'triangle', | 
|  | symbolSize: 10, | 
|  | data: data3, | 
|  | itemStyle: itemStyle, | 
|  | step: 'end' | 
|  | } | 
|  | ] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main0', { | 
|  | title: [ | 
|  | '(0) Move the slider zoom, check the tick and symbol animation stable (not change ticks selection)', | 
|  | '(1) Adjust (zoom) the slider zoom to the extent of just change the tick interval.', | 
|  | '(2) Move the slider zoom, CHECK whether the interval is stable (no jitter).' | 
|  | ], | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data2 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('类目' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | data2.push(-Math.random().toFixed(2)); | 
|  | data3.push((Math.random() + 0.5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var itemStyle = { | 
|  | normal: { | 
|  | barBorderRadius: 5, | 
|  | label: { | 
|  | show: true, | 
|  | position: 'outside' | 
|  | } | 
|  | }, | 
|  | emphasis: { | 
|  | label: { | 
|  | position: 'outside' | 
|  | }, | 
|  | barBorderColor: '#fff', | 
|  | barBorderWidth: 1, | 
|  | shadowBlur: 10, | 
|  | shadowOffsetX: 0, | 
|  | shadowOffsetY: 0, | 
|  | shadowColor: 'rgba(0,0,0,0.5)' | 
|  | } | 
|  | }; | 
|  |  | 
|  | var option = { | 
|  | backgroundColor: '#eef', | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'shadow' | 
|  | } | 
|  | }, | 
|  | xAxis: { | 
|  | data: xAxisData, | 
|  | name: '横轴', | 
|  | silent: false, | 
|  | inverse: true, | 
|  | axisTick: { | 
|  | alignWithLabel: true | 
|  | }, | 
|  | // axisLabel: { | 
|  | //     show: false | 
|  | // }, | 
|  | // axisTick: { | 
|  | //     show: false | 
|  | // }, | 
|  | axisLine: { | 
|  | onZero: true, | 
|  | // lineStyle: { | 
|  | //     width: 40 | 
|  | // } | 
|  | }, | 
|  | splitLine: { | 
|  | show: true, | 
|  | lineStyle: { | 
|  | color: 'green' | 
|  | } | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | } | 
|  | }, | 
|  | yAxis: { | 
|  | inverse: true, | 
|  | // axisLabel: { | 
|  | //     show: false | 
|  | // }, | 
|  | axisTick: { | 
|  | show: false | 
|  | }, | 
|  | // splitLine: { | 
|  | //     show: false | 
|  | // }, | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside' | 
|  | }, {}], | 
|  | series: [{ | 
|  | name: 'bar', | 
|  | type: 'bar', | 
|  | stack: 'one', | 
|  | itemStyle: itemStyle, | 
|  | cursor: 'move', | 
|  | data: data1 | 
|  | }, { | 
|  | name: 'bar2', | 
|  | type: 'bar', | 
|  | stack: 'one', | 
|  | itemStyle: itemStyle, | 
|  | cursor: 'default', | 
|  | data: data2 | 
|  | }, { | 
|  | name: 'bar3', | 
|  | type: 'bar', | 
|  | stack: 'two', | 
|  | itemStyle: itemStyle, | 
|  | data: data3 | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main1', { | 
|  | title: [ | 
|  | '(0) Zoom and check the splitLine(green) and splitArea when axis interval exists', | 
|  | '(1) Check not split a single data item when odd category tick interval' | 
|  | ], | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data2 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('类目' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | data2.push(-Math.random().toFixed(2)); | 
|  | data3.push((Math.random() + 0.5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var itemStyle = { | 
|  | normal: { | 
|  | barBorderRadius: 5, | 
|  | label: { | 
|  | show: true, | 
|  | position: 'outside' | 
|  | } | 
|  | }, | 
|  | emphasis: { | 
|  | label: { | 
|  | position: 'outside' | 
|  | }, | 
|  | barBorderColor: '#fff', | 
|  | barBorderWidth: 1, | 
|  | shadowBlur: 10, | 
|  | shadowOffsetX: 0, | 
|  | shadowOffsetY: 0, | 
|  | shadowColor: 'rgba(0,0,0,0.5)' | 
|  | } | 
|  | }; | 
|  |  | 
|  | var option = { | 
|  | backgroundColor: '#eef', | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | }, | 
|  | xAxis: { | 
|  | data: xAxisData, | 
|  | name: '横轴', | 
|  | silent: false, | 
|  | axisTick: { | 
|  | alignWithLabel: true | 
|  | }, | 
|  | // axisLabel: { | 
|  | //     show: false | 
|  | // }, | 
|  | // axisTick: { | 
|  | //     show: false | 
|  | // }, | 
|  | axisLine: { | 
|  | onZero: true | 
|  | }, | 
|  | splitLine: { | 
|  | show: true, | 
|  | lineStyle: { | 
|  | color: 'green' | 
|  | } | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | } | 
|  | }, | 
|  | yAxis: { | 
|  | inverse: true, | 
|  | // axisLabel: { | 
|  | //     show: false | 
|  | // }, | 
|  | axisTick: { | 
|  | show: false | 
|  | }, | 
|  | // splitLine: { | 
|  | //     show: false | 
|  | // }, | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | animationDurationUpdate: 800, | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | startValue: 17, | 
|  | endValue: 24, | 
|  | zoomLock: true | 
|  | }, { | 
|  | startValue: 17, | 
|  | endValue: 24, | 
|  | zoomLock: true | 
|  | }], | 
|  | series: [{ | 
|  | name: 'bar', | 
|  | type: 'bar', | 
|  | stack: 'one', | 
|  | itemStyle: itemStyle, | 
|  | cursor: 'move', | 
|  | data: data1 | 
|  | }, { | 
|  | name: 'bar2', | 
|  | type: 'bar', | 
|  | stack: 'one', | 
|  | itemStyle: itemStyle, | 
|  | cursor: 'default', | 
|  | data: data2 | 
|  | }, { | 
|  | name: 'bar3', | 
|  | type: 'bar', | 
|  | stack: 'two', | 
|  | itemStyle: itemStyle, | 
|  | data: data3 | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main2', { | 
|  | title: [ | 
|  | '(0) Move and check splitArea and splitLine(green) animation (zoom locked)' | 
|  | ], | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('类目' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | data3.push((Math.random() + 0.5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var itemStyle = { | 
|  | normal: { | 
|  | barBorderRadius: 5, | 
|  | label: { | 
|  | show: true, | 
|  | position: 'outside' | 
|  | } | 
|  | }, | 
|  | emphasis: { | 
|  | label: { | 
|  | position: 'outside' | 
|  | }, | 
|  | barBorderColor: '#fff', | 
|  | barBorderWidth: 1, | 
|  | shadowBlur: 10, | 
|  | shadowOffsetX: 0, | 
|  | shadowOffsetY: 0, | 
|  | shadowColor: 'rgba(0,0,0,0.5)' | 
|  | } | 
|  | }; | 
|  |  | 
|  | var option = { | 
|  | backgroundColor: '#eef', | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'shadow' | 
|  | } | 
|  | }, | 
|  | xAxis: { | 
|  | data: xAxisData, | 
|  | name: '横轴', | 
|  | silent: false, | 
|  | axisLine: { | 
|  | onZero: true | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | } | 
|  | }, | 
|  | yAxis: { | 
|  | axisTick: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | startValue: 17, | 
|  | endValue: 24, | 
|  | zoomLock: true | 
|  | }, { | 
|  | startValue: 17, | 
|  | endValue: 24, | 
|  | zoomLock: true | 
|  | }], | 
|  | series: [{ | 
|  | name: 'bar', | 
|  | type: 'bar', | 
|  | stack: 'one', | 
|  | itemStyle: itemStyle, | 
|  | cursor: 'move', | 
|  | data: data1 | 
|  | }, { | 
|  | name: 'bar3', | 
|  | type: 'bar', | 
|  | stack: 'two', | 
|  | itemStyle: itemStyle, | 
|  | data: data3 | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main3', { | 
|  | title: [ | 
|  | 'alignWithTick: default (false), and boundaryGap: default (true)' | 
|  | ], | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('c' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | data3.push((Math.random() + 0.5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'shadow' | 
|  | } | 
|  | }, | 
|  | xAxis: { | 
|  | data: xAxisData, | 
|  | axisTick: { | 
|  | interval: 4, | 
|  | alignWithLabel: true | 
|  | }, | 
|  | axisLabel: { | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | } | 
|  | }, | 
|  | yAxis: { | 
|  | axisTick: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | startValue: 17, | 
|  | endValue: 24 | 
|  | }, { | 
|  | startValue: 17, | 
|  | endValue: 24 | 
|  | }], | 
|  | series: [{ | 
|  | name: 'bar', | 
|  | type: 'bar', | 
|  | stack: 'one', | 
|  | cursor: 'move', | 
|  | data: data1 | 
|  | }, { | 
|  | name: 'bar3', | 
|  | type: 'bar', | 
|  | stack: 'two', | 
|  | data: data3 | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main4', { | 
|  | title: [ | 
|  | 'axisTick.interval is different from axisLabel.interval' | 
|  | ], | 
|  | option: option | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('c' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | data3.push((Math.random() + 0.5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'shadow' | 
|  | } | 
|  | }, | 
|  | xAxis: [{ | 
|  | data: xAxisData, | 
|  | name: 'axisLabel.interval is function', | 
|  | nameLocation: 'middle', | 
|  | nameGap: 20, | 
|  | axisTick: { | 
|  | alignWithLabel: true | 
|  | }, | 
|  | axisLabel: { | 
|  | interval: function (categoryIdx, categoryValue) { | 
|  | return categoryIdx % 5 === 0; | 
|  | } | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | } | 
|  | }, { | 
|  | data: xAxisData, | 
|  | name: 'axisTick.interval is function', | 
|  | nameLocation: 'middle', | 
|  | nameGap: 20, | 
|  | gridIndex: 1, | 
|  | axisTick: { | 
|  | interval: function (categoryIdx, categoryValue) { | 
|  | return categoryIdx % 5 === 0; | 
|  | }, | 
|  | alignWithLabel: true | 
|  | }, | 
|  | axisLabel: { | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | } | 
|  | }], | 
|  | yAxis: [{ | 
|  | axisTick: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }, { | 
|  | gridIndex: 1, | 
|  | axisTick: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }], | 
|  | grid: [{ | 
|  | bottom: '60%' | 
|  | }, { | 
|  | top: '52%', | 
|  | bottom: 80 | 
|  | }], | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | xAxisIndex: [0, 1], | 
|  | startValue: 17, | 
|  | endValue: 24 | 
|  | }, { | 
|  | xAxisIndex: [0, 1], | 
|  | startValue: 17, | 
|  | endValue: 24 | 
|  | }], | 
|  | series: [{ | 
|  | name: 'bar', | 
|  | type: 'bar', | 
|  | stack: 'one', | 
|  | cursor: 'move', | 
|  | data: data1 | 
|  | }, { | 
|  | name: 'bar3', | 
|  | type: 'bar', | 
|  | stack: 'two', | 
|  | data: data3 | 
|  | }, { | 
|  | name: 'bar', | 
|  | type: 'bar', | 
|  | stack: 'one1', | 
|  | cursor: 'move', | 
|  | xAxisIndex: 1, | 
|  | yAxisIndex: 1, | 
|  | data: data1 | 
|  | }, { | 
|  | name: 'bar3', | 
|  | type: 'bar', | 
|  | stack: 'two1', | 
|  | xAxisIndex: 1, | 
|  | yAxisIndex: 1, | 
|  | data: data3 | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main5', { | 
|  | title: [ | 
|  | 'axisLabel.interval and axisTick.interval are function' | 
|  | ], | 
|  | option: option, | 
|  | info: {xAxis: option.xAxis} | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('c' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | data3.push((Math.random() + 0.5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'shadow' | 
|  | } | 
|  | }, | 
|  | xAxis: { | 
|  | data: xAxisData, | 
|  | axisTick: { | 
|  | alignWithLabel: true | 
|  | }, | 
|  | axisLabel: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | } | 
|  | }, | 
|  | yAxis: { | 
|  | axisLabel: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | startValue: 17, | 
|  | endValue: 24 | 
|  | }, { | 
|  | startValue: 17, | 
|  | endValue: 24 | 
|  | }], | 
|  | series: [{ | 
|  | name: 'bar', | 
|  | type: 'bar', | 
|  | stack: 'one', | 
|  | cursor: 'move', | 
|  | data: data1 | 
|  | }, { | 
|  | name: 'bar3', | 
|  | type: 'bar', | 
|  | stack: 'two', | 
|  | data: data3 | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main6', { | 
|  | title: [ | 
|  | 'Only axisTick show, zoom and check axis tick.' | 
|  | ], | 
|  | option: option, | 
|  | info: {xAxis: option.xAxis} | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('c' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | data3.push((Math.random() + 0.5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis' | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | xAxisIndex: 0, | 
|  | startValue: 17, | 
|  | endValue: 84 | 
|  | }, { | 
|  | type: 'inside', | 
|  | xAxisIndex: 1, | 
|  | startValue: 17, | 
|  | endValue: 84 | 
|  | }, { | 
|  | xAxisIndex: [0, 1], | 
|  | startValue: 17, | 
|  | endValue: 84 | 
|  | }], | 
|  | xAxis: [{ | 
|  | data: xAxisData, | 
|  | // axisTick: { | 
|  | //     alignWithLabel: true | 
|  | // }, | 
|  | axisLabel: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | }, | 
|  | splitLine: { | 
|  | show: true | 
|  | } | 
|  | }, { | 
|  | data: xAxisData, | 
|  | gridIndex: 1, | 
|  | splitArea: { | 
|  | show: true | 
|  | }, | 
|  | splitLine: { | 
|  | show: true | 
|  | } | 
|  | }], | 
|  | yAxis: [{ | 
|  | }, { | 
|  | gridIndex: 1, | 
|  | axisLabel: { | 
|  | showMaxLabel: false | 
|  | } | 
|  | }], | 
|  | grid: [{ | 
|  | bottom: '50%' | 
|  | }, { | 
|  | top: '50%' | 
|  | }], | 
|  | series: [{ | 
|  | name: 'bar', | 
|  | type: 'line', | 
|  | stack: 'one', | 
|  | cursor: 'move', | 
|  | data: data1 | 
|  | }, { | 
|  | name: 'bar3', | 
|  | type: 'line', | 
|  | stack: 'two', | 
|  | xAxisIndex: 1, | 
|  | yAxisIndex: 1, | 
|  | data: data3 | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main6.5', { | 
|  | title: [ | 
|  | 'The first grid has no label, the second grid has label.', | 
|  | 'splitLine and axisTick should be the same between the two grids.' | 
|  | ], | 
|  | option: option, | 
|  | info: {xAxis: option.xAxis} | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('c' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | data3.push((Math.random() + 0.5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'shadow' | 
|  | } | 
|  | }, | 
|  | xAxis: { | 
|  | type: 'category', | 
|  | axisTick: { | 
|  | alignWithLabel: true | 
|  | }, | 
|  | axisLabel: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: true | 
|  | }, | 
|  | min: -300, | 
|  | max: 333333 | 
|  | }, | 
|  | yAxis: { | 
|  | axisLabel: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside' | 
|  | }, { | 
|  | }], | 
|  | series: [{ | 
|  | name: 'bar', | 
|  | type: 'bar', | 
|  | stack: 'one', | 
|  | cursor: 'move' | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main7', { | 
|  | title: [ | 
|  | 'No data but has xAxis.min and xAxis.max, should no ticks and labels.', | 
|  | 'label.show: false, should no dead loop.' | 
|  | ], | 
|  | option: option, | 
|  | info: {xAxis: option.xAxis} | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  | var data3 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('c' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | data3.push((Math.random() + 0.5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | axisPointer: { | 
|  | type: 'shadow' | 
|  | } | 
|  | }, | 
|  | xAxis: { | 
|  | type: 'category', | 
|  | data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], | 
|  | splitArea: { | 
|  | interval: 3, | 
|  | show: true, | 
|  | areaStyle: { | 
|  | color: ['blue', 'red'] | 
|  | } | 
|  | } | 
|  | }, | 
|  | yAxis: { | 
|  | axisLabel: { | 
|  | show: false | 
|  | }, | 
|  | splitArea: { | 
|  | show: false | 
|  | } | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside' | 
|  | }, { | 
|  | }], | 
|  | series: [] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main8', { | 
|  | title: [ | 
|  | 'Check splitArea correct for indivisible interval.', | 
|  | 'Move left handle of the dataZoom and check splitArea correct' | 
|  | ], | 
|  | option: option, | 
|  | info: {xAxis: option.xAxis} | 
|  | }); | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var option = { | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis' | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | xAxisIndex: 0 | 
|  | }, { | 
|  | }], | 
|  | grid: { | 
|  | top: 10, | 
|  | left: 100 | 
|  | }, | 
|  | xAxis: [{ | 
|  | type: 'category', | 
|  | splitArea: { | 
|  | show: true | 
|  | }, | 
|  | splitLine: { | 
|  | show: true | 
|  | } | 
|  | }], | 
|  | yAxis: [{ | 
|  | type: 'category', | 
|  | axisLabel: { | 
|  | formatter: 'GOOD {value}', | 
|  | fontSize: 20 | 
|  | } | 
|  | }, { | 
|  | axisLabel: { | 
|  | showMaxLabel: false | 
|  | } | 
|  | }], | 
|  | series: [{ | 
|  | type: 'scatter', | 
|  | data: [[1, 1], [2, 2], [3, 3], [4, 4], [5, 5]] | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main9', { | 
|  | title: [ | 
|  | 'Drag to resize the yAxis util labels changes, and then drag back.', | 
|  | 'Labels of yAxis should be able to back too the original state.' | 
|  | ], | 
|  | width: 300, | 
|  | height: 300, | 
|  | option: option, | 
|  | draggable: true | 
|  | }); | 
|  |  | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  |  | 
|  | var xAxisData = []; | 
|  | var data1 = []; | 
|  |  | 
|  | for (var i = 0; i < 100; i++) { | 
|  | xAxisData.push('c' + i); | 
|  | data1.push((Math.random() * 5).toFixed(2)); | 
|  | } | 
|  |  | 
|  | var option = { | 
|  | legend: { | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis' | 
|  | }, | 
|  | dataZoom: [{ | 
|  | type: 'inside', | 
|  | xAxisIndex: 0, | 
|  | start: 14.63022259346915, | 
|  | end: 77.06506102371338 | 
|  | }, { | 
|  | start: 14.63022259346915, | 
|  | end: 77.06506102371338 | 
|  | }], | 
|  | xAxis: [{ | 
|  | data: xAxisData, | 
|  | splitArea: { | 
|  | show: true | 
|  | }, | 
|  | splitLine: { | 
|  | show: true | 
|  | } | 
|  | }], | 
|  | yAxis: [{ | 
|  | }], | 
|  | series: [{ | 
|  | name: 'bar', | 
|  | type: 'line', | 
|  | stack: 'one', | 
|  | cursor: 'move', | 
|  | data: data1 | 
|  | }] | 
|  | }; | 
|  |  | 
|  | chart = myChart = testHelper.create(echarts, 'main10', { | 
|  | title: [ | 
|  | 'The dataZoom window range is at the critical value of changing axis interval from 2 to 3.', | 
|  | 'Move the dataZoom bar, the **xAxis labels should be stable**.', | 
|  | 'That is, xAxis labels should not be sometimes [c21, c24, c27] sometimes [c20, c24, c28]' | 
|  | ], | 
|  | option: option, | 
|  | // Should be fixed this width to make the dataZoom window range at the critical value. | 
|  | width: 653, | 
|  | height: 300, | 
|  | autoResize: false | 
|  | }); | 
|  |  | 
|  | }); | 
|  |  | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | </body> | 
|  | </html> |