|  | <!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"> | 
|  | <meta name="viewport" content="width=device-width, initial-scale=1" /> | 
|  | <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="ut/lib/canteen.js"></script> --> | 
|  | <link rel="stylesheet" href="lib/reset.css" /> | 
|  | </head> | 
|  | <body> | 
|  | <style> | 
|  | </style> | 
|  |  | 
|  |  | 
|  |  | 
|  | <div id="refer_by_id"></div> | 
|  | <div id="auto_axis_second_setOption_only_toolbox_dz"></div> | 
|  | <div id="auto_axis_second_setOption_normal_dz"></div> | 
|  | <div id="specified_axis_second_setOption_normal_dz"></div> | 
|  | <div id="remove_dz"></div> | 
|  | <div id="duplicated_dataZoom_ref"></div> | 
|  | <div id="main0"></div> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | require(['echarts'], function (echarts) { | 
|  | var option; | 
|  |  | 
|  | option = { | 
|  | grid: [{ | 
|  | bottom: '55%' | 
|  | }, { | 
|  | id: 'g1', | 
|  | top: '55%' | 
|  | }], | 
|  | xAxis: [{ | 
|  |  | 
|  | }, { | 
|  | id: 'x1', | 
|  | gridId: 'g1' | 
|  | }], | 
|  | yAxis: [{ | 
|  |  | 
|  | }, { | 
|  | id: 'y1', | 
|  | gridId: 'g1' | 
|  | }], | 
|  | dataZoom: [{ | 
|  | xAxisId: 'x1', | 
|  | type: 'slider' | 
|  | }, { | 
|  | xAxisId: 'x1', | 
|  | type: 'inside' | 
|  | }], | 
|  | series: [{ | 
|  | type: 'line', | 
|  | data: [[11, 22], [33, 44]] | 
|  | }, { | 
|  | type: 'line', | 
|  | xAxisId: 'x1', | 
|  | yAxisId: 'y1', | 
|  | data: [[233, 432], [154, 552]] | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'refer_by_id', { | 
|  | title: [ | 
|  | 'refer axis by id', | 
|  | 'Two grids, dataZoom should **only refer to bottom grid**', | 
|  | ], | 
|  | option: option, | 
|  | height: 300, | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | require(['echarts'], function (echarts) { | 
|  | function makeFirstGridOption() { | 
|  | return { | 
|  | grid: [{ | 
|  | bottom: '60%' | 
|  | }], | 
|  | xAxis: [{ | 
|  | }, { | 
|  | }], | 
|  | yAxis: [{ | 
|  | }], | 
|  | series: [{ | 
|  | type: 'line', | 
|  | data: [[333, 22], [666, 44]] | 
|  | }, { | 
|  | type: 'line', | 
|  | xAxisIndex: 1, | 
|  | data: [[88888, 52], [99999, 74]] | 
|  | }] | 
|  | }; | 
|  | } | 
|  |  | 
|  | var option = makeFirstGridOption(); | 
|  |  | 
|  | option.toolbox = { | 
|  | left: 'center', | 
|  | feature: { | 
|  | dataZoom: {} | 
|  | } | 
|  | }; | 
|  | option.grid.push( | 
|  | { | 
|  | id: 'gb', | 
|  | top: '60%' | 
|  | } | 
|  | ); | 
|  | option.xAxis.push( | 
|  | { | 
|  | id: 'xb0', | 
|  | type: 'category', | 
|  | gridIndex: 1 | 
|  | }, { | 
|  | id: 'xb1', | 
|  | type: 'category', | 
|  | gridIndex: 1 | 
|  | } | 
|  | ); | 
|  | option.yAxis.push( | 
|  | { | 
|  | id: 'yb', | 
|  | gridIndex: 1 | 
|  | } | 
|  | ); | 
|  | option.series.push( | 
|  | { | 
|  | id: 'sb0', | 
|  | type: 'line', | 
|  | xAxisIndex: 2, | 
|  | yAxisIndex: 1, | 
|  | data: [[63, 432], [98, 552]] | 
|  | }, { | 
|  | id: 'sb1', | 
|  | type: 'line', | 
|  | xAxisIndex: 3, | 
|  | yAxisIndex: 1, | 
|  | data: [[87654, 1432], [56789, 1552]] | 
|  | } | 
|  | ); | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'auto_axis_second_setOption_only_toolbox_dz', { | 
|  | title: [ | 
|  | '[Only toolbox dataZoom] two grids, each has two xAxis.', | 
|  | 'toolbox zoom should work on **all grids**.', | 
|  | 'Click btn "remove top grid".', | 
|  | 'toolbox zoom should work only on **bottom grids**.', | 
|  | 'Click btn "addback top grid".', | 
|  | 'toolbox zoom should work on **all grids**.', | 
|  | 'Click btn "remove all grids".', | 
|  | 'Should **no error**.', | 
|  | 'Check toolbox zoom should **not work on the original area**.', | 
|  | 'Click btn "addback top grid".', | 
|  | 'toolbox zoom should work only on **top grids**.', | 
|  | ], | 
|  | option: option, | 
|  | height: 350, | 
|  | buttons: [{ | 
|  | text: 'remove top grid', | 
|  | onclick: function () { | 
|  | chart.setOption({ | 
|  | grid: [{ | 
|  | id: 'gb', | 
|  | }], | 
|  | xAxis: [{ | 
|  | id: 'xb0', | 
|  | }, { | 
|  | id: 'xb1', | 
|  | }], | 
|  | yAxis: [{ | 
|  | id: 'yb' | 
|  | }], | 
|  | series: [{ | 
|  | id: 'sb0', | 
|  | }, { | 
|  | id: 'sb1', | 
|  | }] | 
|  | }, { replaceMerge: ['grid', 'xAxis', 'yAxis', 'series'] }); | 
|  | } | 
|  | }, { | 
|  | text: 'addback top grid', | 
|  | onclick: function () { | 
|  | chart.setOption(makeFirstGridOption()); | 
|  | } | 
|  | }, { | 
|  | text: 'remove all grids', | 
|  | onclick: function () { | 
|  | chart.setOption({ | 
|  | grid: [], | 
|  | xAxis: [], | 
|  | yAxis: [], | 
|  | series: [] | 
|  | }, { replaceMerge: ['grid', 'xAxis', 'yAxis', 'series'] }); | 
|  | } | 
|  | }] | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | require(['echarts'], function (echarts) { | 
|  |  | 
|  | function makeFirstGridOption() { | 
|  | return { | 
|  | grid: [{ | 
|  | bottom: '60%' | 
|  | }], | 
|  | xAxis: [{ | 
|  | }, { | 
|  | }], | 
|  | yAxis: [{ | 
|  | }], | 
|  | series: [{ | 
|  | type: 'line', | 
|  | symbolSize: 20, | 
|  | data: [[11, 22], [33, 44]] | 
|  | }, { | 
|  | type: 'line', | 
|  | xAxisIndex: 1, | 
|  | symbolSize: 20, | 
|  | data: [[11111, 52], [21133, 74]] | 
|  | }] | 
|  | }; | 
|  | } | 
|  |  | 
|  | var option = makeFirstGridOption(); | 
|  |  | 
|  | option.toolbox = { | 
|  | left: 'center', | 
|  | feature: { | 
|  | dataZoom: {} | 
|  | } | 
|  | }; | 
|  | option.grid.push( | 
|  | { | 
|  | id: 'gb', | 
|  | top: '60%' | 
|  | } | 
|  | ); | 
|  | option.xAxis.push( | 
|  | { | 
|  | id: 'xb0', | 
|  | type: 'category', | 
|  | gridIndex: 1 | 
|  | }, { | 
|  | id: 'xb1', | 
|  | type: 'category', | 
|  | gridIndex: 1 | 
|  | } | 
|  | ); | 
|  | option.yAxis.push( | 
|  | { | 
|  | id: 'yb', | 
|  | gridIndex: 1 | 
|  | } | 
|  | ); | 
|  | option.dataZoom = [ | 
|  | { | 
|  | type: 'slider' | 
|  | }, { | 
|  | type: 'inside' | 
|  | } | 
|  | ]; | 
|  | option.series.push( | 
|  | { | 
|  | id: 'sb0', | 
|  | type: 'line', | 
|  | symbolSize: 20, | 
|  | xAxisIndex: 2, | 
|  | yAxisIndex: 1, | 
|  | data: [[23, 432], [54, 552]] | 
|  | }, { | 
|  | id: 'sb1', | 
|  | type: 'line', | 
|  | symbolSize: 20, | 
|  | xAxisIndex: 3, | 
|  | yAxisIndex: 1, | 
|  | data: [[222233, 1432], [111154, 1552]] | 
|  | } | 
|  | ); | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'auto_axis_second_setOption_normal_dz', { | 
|  | title: [ | 
|  | 'Test: **Auto axis** remove coord sys (dataZoom not remove)', | 
|  | 'two grids, each has two xAxis.', | 
|  | 'dataZoom should **only control all 2 xAxis of top** grid.', | 
|  | 'Click btn "remove top grid".', | 
|  | 'dataZoom should **only control all 2 xAxis of bottom** grid.', | 
|  | '**inside dataZoom** on top grid area **should be removed**.', | 
|  | '**toolbox zoom** should only control bottom grid.', | 
|  | 'Click btn "addback top grid".', | 
|  | 'dataZoom should **only control all 2 xAxis of top** grid.', | 
|  | '**inside dataZoom** on bottom grid area **should be removed**.', | 
|  | 'Click btn "remove all grids".', | 
|  | 'Should no error.', | 
|  | 'Click btn "addback top grid".', | 
|  | 'Functionalities should be OK.' | 
|  | ], | 
|  | option: option, | 
|  | height: 350, | 
|  | buttons: [{ | 
|  | text: 'remove top grid', | 
|  | onclick: function () { | 
|  | chart.setOption({ | 
|  | grid: [{ | 
|  | id: 'gb', | 
|  | }], | 
|  | xAxis: [{ | 
|  | id: 'xb0', | 
|  | }, { | 
|  | id: 'xb1', | 
|  | }], | 
|  | yAxis: [{ | 
|  | id: 'yb' | 
|  | }], | 
|  | series: [{ | 
|  | id: 'sb0', | 
|  | }, { | 
|  | id: 'sb1', | 
|  | }] | 
|  | }, { replaceMerge: ['grid', 'xAxis', 'yAxis', 'series'] }); | 
|  | } | 
|  | }, { | 
|  | text: 'addback top grid', | 
|  | onclick: function () { | 
|  | chart.setOption(makeFirstGridOption()); | 
|  | } | 
|  | }, { | 
|  | text: 'remove all grids', | 
|  | onclick: function () { | 
|  | chart.setOption({ | 
|  | grid: [], | 
|  | xAxis: [], | 
|  | yAxis: [], | 
|  | series: [] | 
|  | }, { replaceMerge: ['grid', 'xAxis', 'yAxis', 'series'] }); | 
|  | } | 
|  | }] | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | require(['echarts'], function (echarts) { | 
|  |  | 
|  | function makeFirstGridOption() { | 
|  | return { | 
|  | grid: [{ | 
|  | bottom: '60%' | 
|  | }], | 
|  | xAxis: [{ | 
|  | }, { | 
|  | }], | 
|  | yAxis: [{ | 
|  | }], | 
|  | series: [{ | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | data: [[11, 22], [33, 44]] | 
|  | }, { | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | xAxisIndex: 1, | 
|  | data: [[11111, 52], [21133, 74]] | 
|  | }] | 
|  | }; | 
|  | } | 
|  |  | 
|  | var option = makeFirstGridOption(); | 
|  |  | 
|  | option.toolbox = { | 
|  | left: 'center', | 
|  | feature: { | 
|  | dataZoom: {} | 
|  | } | 
|  | }; | 
|  | option.grid.push( | 
|  | { | 
|  | id: 'gb', | 
|  | top: '60%' | 
|  | } | 
|  | ); | 
|  | option.xAxis.push( | 
|  | { | 
|  | id: 'xb0', | 
|  | type: 'category', | 
|  | gridIndex: 1 | 
|  | }, { | 
|  | id: 'xb1', | 
|  | type: 'category', | 
|  | gridIndex: 1 | 
|  | } | 
|  | ); | 
|  | option.yAxis.push( | 
|  | { | 
|  | id: 'yb', | 
|  | gridIndex: 1 | 
|  | } | 
|  | ); | 
|  | option.dataZoom = [ | 
|  | { | 
|  | type: 'slider', | 
|  | xAxisIndex: 'all' | 
|  | }, { | 
|  | type: 'inside', | 
|  | xAxisIndex: 'all' | 
|  | } | 
|  | ]; | 
|  | option.series.push( | 
|  | { | 
|  | id: 'sb0', | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | xAxisIndex: 2, | 
|  | yAxisIndex: 1, | 
|  | data: [[23, 432], [54, 552], [124, 324], [341, 134], [888, 213]] | 
|  | }, { | 
|  | id: 'sb1', | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | xAxisIndex: 3, | 
|  | yAxisIndex: 1, | 
|  | data: [[222233, 1432], [111154, 1552], [222223, 1231], [131313, 3322], [717171, 5512]] | 
|  | } | 
|  | ); | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'specified_axis_second_setOption_normal_dz', { | 
|  | title: [ | 
|  | 'Test: **xAxisIndex: "all"** remove coord sys (dataZoom not remove)', | 
|  | 'two grids, each has two xAxis.', | 
|  | 'dataZoom should **only control all 4 xAxis**.', | 
|  | 'Click btn "remove top grid".', | 
|  | 'dataZoom should **only control all 2 xAxis of bottom** grid.', | 
|  | '**inside dataZoom** on top grid area **should be removed**.', | 
|  | '**toolbox zoom** should only control bottom grid.', | 
|  | 'Click btn "addback top grid".', | 
|  | 'dataZoom should **only control all 4 xAxis**.', | 
|  | '**inside dataZoom** on bottom grid area **should be removed**.', | 
|  | 'Click btn "remove all grids".', | 
|  | 'Should no error.', | 
|  | 'Click btn "addback top grid".', | 
|  | 'Functionalities should be OK.' | 
|  | ], | 
|  | option: option, | 
|  | height: 350, | 
|  | buttons: [{ | 
|  | text: 'remove top grid', | 
|  | onclick: function () { | 
|  | chart.setOption({ | 
|  | grid: [{ | 
|  | id: 'gb', | 
|  | }], | 
|  | xAxis: [{ | 
|  | id: 'xb0', | 
|  | }, { | 
|  | id: 'xb1', | 
|  | }], | 
|  | yAxis: [{ | 
|  | id: 'yb' | 
|  | }], | 
|  | series: [{ | 
|  | id: 'sb0', | 
|  | }, { | 
|  | id: 'sb1', | 
|  | }] | 
|  | }, { replaceMerge: ['grid', 'xAxis', 'yAxis', 'series'] }); | 
|  | } | 
|  | }, { | 
|  | text: 'addback top grid', | 
|  | onclick: function () { | 
|  | chart.setOption(makeFirstGridOption()); | 
|  | } | 
|  | }, { | 
|  | text: 'remove all grids', | 
|  | onclick: function () { | 
|  | chart.setOption({ | 
|  | grid: [], | 
|  | xAxis: [], | 
|  | yAxis: [], | 
|  | series: [] | 
|  | }, { replaceMerge: ['grid', 'xAxis', 'yAxis', 'series'] }); | 
|  | } | 
|  | }] | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | require(['echarts'], function (echarts) { | 
|  |  | 
|  | function makeFirstGridOption() { | 
|  | return { | 
|  | grid: [{ | 
|  | bottom: '60%' | 
|  | }], | 
|  | xAxis: [{ | 
|  | }, { | 
|  | }], | 
|  | yAxis: [{ | 
|  | }], | 
|  | series: [{ | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | data: [[11, 22], [33, 44]] | 
|  | }, { | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | xAxisIndex: 1, | 
|  | data: [[11111, 52], [21133, 74]] | 
|  | }] | 
|  | }; | 
|  | } | 
|  |  | 
|  | var option = makeFirstGridOption(); | 
|  |  | 
|  | var option = { | 
|  | toolbox: { | 
|  | left: 'center', | 
|  | feature: { | 
|  | dataZoom: {} | 
|  | } | 
|  | }, | 
|  | grid: [{ | 
|  | right: '60%' | 
|  | }, { | 
|  | id: 'gb', | 
|  | left: '60%' | 
|  | }], | 
|  | xAxis: [{ | 
|  | }, { | 
|  | id: 'xb', | 
|  | gridIndex: 1 | 
|  | }], | 
|  | yAxis: [{ | 
|  | }, { | 
|  | }, { | 
|  | id: 'yb0', | 
|  | type: 'category', | 
|  | gridIndex: 1 | 
|  | }, { | 
|  | id: 'yb1', | 
|  | type: 'category', | 
|  | gridIndex: 1 | 
|  | }], | 
|  | dataZoom: [{ | 
|  | type: 'slider', | 
|  | left: 10, | 
|  | yAxisIndex: [0, 1] | 
|  | }, { | 
|  | type: 'inside', | 
|  | yAxisIndex: [0, 1] | 
|  | }], | 
|  | series: [{ | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | data: [[22, 11], [44, 33]] | 
|  | }, { | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | yAxisIndex: 1, | 
|  | data: [[52, 11111], [74, 21133]] | 
|  | }, { | 
|  | id: 'sb0', | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | xAxisIndex: 1, | 
|  | yAxisIndex: 2, | 
|  | data: [[432, 23], [552, 54], [324, 124], [134, 341], [213, 888]] | 
|  | }, { | 
|  | id: 'sb1', | 
|  | type: 'line', | 
|  | symbol: 'emptyTriangle', | 
|  | symbolSize: 20, | 
|  | xAxisIndex: 1, | 
|  | yAxisIndex: 3, | 
|  | data: [[1432, 222233], [1552, 111154], [1231, 222223], [3322, 131313], [5512, 717171]] | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'remove_dz', { | 
|  | title: [ | 
|  | 'Test: remove dataZoom', | 
|  | 'two grids, each has two yAxis.', | 
|  | 'dataZoom should **only control all 2 yAxis of left** grid.', | 
|  | 'Click btn "remove left dataZoom".', | 
|  | 'dz disappear and insideZoom should **no longer work**.', | 
|  | '**toolbox zoom** should still work.', | 
|  | 'Click btn "add right dataZoom".', | 
|  | 'dataZoom should **only control all 2 yAxis of right** grid.', | 
|  | 'Click btn "dataZoom control x".', | 
|  | 'dataZoom should lay full of bottom and **only control all xAxis**.', | 
|  | ], | 
|  | option: option, | 
|  | height: 350, | 
|  | buttons: [{ | 
|  | text: 'remove left dataZoom', | 
|  | onclick: function () { | 
|  | chart.setOption({ | 
|  | }, { replaceMerge: ['dataZoom'] }); | 
|  | } | 
|  | }, { | 
|  | text: 'add right dataZoom', | 
|  | onclick: function () { | 
|  | chart.setOption({ | 
|  | dataZoom: [{ | 
|  | type: 'slider', | 
|  | right: 10, | 
|  | yAxisIndex: [2, 3] | 
|  | }, { | 
|  | type: 'inside', | 
|  | yAxisIndex: [2, 3] | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, { | 
|  | text: 'dataZoom control x', | 
|  | onclick: function () { | 
|  | chart.setOption({ | 
|  | dataZoom: [{ | 
|  | bottom: 10, | 
|  | left: 20, | 
|  | right: 20, | 
|  | width: null, | 
|  | xAxisIndex: 'all', | 
|  | yAxisIndex: 'none' | 
|  | }, { | 
|  | xAxisIndex: 'all', | 
|  | yAxisIndex: 'none' | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }] | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | require(['echarts'], function (echarts) { | 
|  |  | 
|  | var option = { | 
|  | toolbox: { | 
|  | left: 'center', | 
|  | feature: { | 
|  | dataZoom: {} | 
|  | } | 
|  | }, | 
|  | xAxis: [{ | 
|  | }], | 
|  | yAxis: [{ | 
|  | }], | 
|  | dataZoom: [{ | 
|  | type: 'slider', | 
|  | // Duplicated declaration | 
|  | yAxisIndex: [0, 0] | 
|  | }, { | 
|  | type: 'inside', | 
|  | // Duplicated declaration | 
|  | yAxisIndex: [0, 0] | 
|  | }], | 
|  | series: [{ | 
|  | type: 'line', | 
|  | data: [[22, 11], [44, 33]] | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'duplicated_dataZoom_ref', { | 
|  | title: [ | 
|  | 'Use dataZoom, should no error thrown.', | 
|  | ], | 
|  | option: option, | 
|  | height: 350 | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  | <script> | 
|  | require(['echarts'], function (echarts) { | 
|  | var option = { | 
|  | dataZoom: [{ | 
|  | id: 'dataZoomX', | 
|  | type: 'slider', | 
|  | xAxisIndex: 0, | 
|  | filterMode: 'filter' | 
|  | }], | 
|  | legend: { | 
|  | data: ['语文'], | 
|  | top: '0' | 
|  | }, | 
|  | tooltip: { | 
|  | trigger: 'axis', | 
|  | formatter: '{b0}<br />', | 
|  | axisPointer: { | 
|  | animation: true, | 
|  | type: 'line', | 
|  | lineStyle: { | 
|  | type: 'dashed' | 
|  | } | 
|  | } | 
|  | }, | 
|  | grid: { | 
|  | left: 20, | 
|  | top: 38, | 
|  | right: 20, | 
|  | bottom: 65 | 
|  | }, | 
|  | xAxis: { | 
|  | type: 'category', | 
|  | data: [ | 
|  | '第1周', | 
|  | '第2周', | 
|  | '第3周', | 
|  | '第4周', | 
|  | '第5周', | 
|  | '第6周', | 
|  | '第7周', | 
|  | '第8周', | 
|  | '第9周', | 
|  | '第10周', | 
|  | '第11周', | 
|  | '第12周', | 
|  | '第13周', | 
|  | '第14周', | 
|  | '第15周', | 
|  | '第16周', | 
|  | '第17周', | 
|  | '第18周', | 
|  | '第19周', | 
|  | '第20周', | 
|  | '第21周', | 
|  | '第22周' | 
|  | ], | 
|  | boundaryGap: false | 
|  | }, | 
|  | yAxis: { | 
|  | type: 'category', | 
|  | boundaryGap: false, | 
|  | name: '等级', | 
|  | data: ['0', 'D', 'C', 'B', 'A'], | 
|  | splitLine: { | 
|  | show: true | 
|  | } | 
|  | }, | 
|  | series: [{ | 
|  | labelLine: { show: true }, | 
|  | symbolSize: 16, | 
|  | type: 'line', | 
|  | smooth: true, | 
|  | name: '语文', | 
|  | data: [ | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | 'D', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-', | 
|  | '-' | 
|  | ] | 
|  | }] | 
|  | }; | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main0', { | 
|  | title: [ | 
|  | 'The dataZoom should be displayed at bottom', | 
|  | ], | 
|  | option: option, | 
|  | height: 350 | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | </body> | 
|  | </html> | 
|  |  |