| <!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="main-no-dataZoom"></div> |
| <div id="main-has-dataZoom-x"></div> |
| <div id="main-has-dataZoom-y"></div> |
| <div id="main-has-stack"></div> |
| <div id="main-has-dataZoom-y-stack"></div> |
| |
| |
| <script> |
| var TOTAL_HEIGHT = 1200; |
| |
| /** |
| * @param opt: { |
| * dataZoomX: boolean; |
| * dataZoomY: boolean; |
| * stack: boolean; |
| * } |
| */ |
| function makeMultiCartesian(echarts, opt) { |
| var gridHeight = 100; |
| var currTop = 40; |
| var gap = 80; |
| |
| var option = { |
| grid: [], |
| xAxis: [], |
| yAxis: [], |
| series: [], |
| dataZoom: [] |
| }; |
| |
| function makeCartesian(option, partialOption, label) { |
| option.grid.push({ |
| top: currTop, |
| height: gridHeight |
| }); |
| |
| option.xAxis.push(echarts.util.defaults({ |
| gridIndex: option.grid.length - 1 |
| }, partialOption.xAxis)); |
| |
| option.yAxis.push(echarts.util.defaults({ |
| name: label[ |
| opt.dataZoomX ? 'dataZoomX' : |
| opt.dataZoomY ? 'dataZoomY' : |
| 'noDataZoom' |
| ], |
| nameTextStyle: { |
| align: 'left' |
| }, |
| gridIndex: option.grid.length - 1 |
| }, partialOption.yAxis)); |
| |
| var xAxisIndex = option.xAxis.length - 1; |
| var yAxisIndex = option.yAxis.length - 1; |
| |
| var seriesList = partialOption.seriesList[opt.stack ? 'stackHas' : 'stackNon']; |
| echarts.util.each(seriesList, function (series) { |
| // FIXME: |
| // currently (20200619) if series.stack is the same but series |
| // on different grid, that would get wrong result. |
| if (opt.stack) { |
| series.stack = series.stack + '__' + xAxisIndex + '_' + yAxisIndex; |
| } |
| option.series.push(echarts.util.defaults({ |
| label: { show: true }, |
| itemStyle: { |
| opacity: 0.8 |
| }, |
| xAxisIndex: xAxisIndex, |
| yAxisIndex: yAxisIndex |
| }, series)); |
| }); |
| |
| if (opt.dataZoomX) { |
| option.dataZoom.push({ |
| type: 'slider', |
| filterMode: 'none', |
| height: 15, |
| top: currTop + gridHeight + 20, |
| xAxisIndex: xAxisIndex |
| }, { |
| type: 'inside', |
| filterMode: 'none', |
| xAxisIndex: xAxisIndex |
| }); |
| } |
| if (opt.dataZoomY) { |
| option.dataZoom.push({ |
| type: 'slider', |
| filterMode: 'none', |
| yAxisIndex: yAxisIndex |
| }, { |
| type: 'inside', |
| filterMode: 'none', |
| yAxisIndex: yAxisIndex |
| }); |
| } |
| |
| currTop += gridHeight + gap; |
| } |
| |
| // --------------------------------------- |
| // Cases in a single chart instance BEGIN |
| // --------------------------------------- |
| |
| makeCartesian(option, { |
| xAxis: { |
| type: 'category' |
| }, |
| yAxis: { |
| }, |
| seriesList: { |
| stackNon: [{ |
| type: 'bar', |
| data: [['a', 22], ['b', 52], ['c', 659]] |
| }], |
| stackHas: [{ |
| type: 'bar', |
| stack: 's', |
| data: [['a', 12], ['b', 32], ['c', 200]] |
| }, { |
| type: 'bar', |
| stack: 's', |
| data: [['a', 10], ['b', 20], ['c', 459]] |
| }] |
| } |
| }, { |
| noDataZoom: 'y-min: 0, y-max: niced from 659, x-min: "a", x-max: "c"', |
| dataZoomX: 'y-min: 0, y-max: niced from 659, x-min: "a", x-max: "c"', |
| dataZoomY: 'y-min: 0, y-max: niced from 659, x-min: "a", x-max: "c"', |
| }); |
| |
| makeCartesian(option, { |
| xAxis: { |
| type: 'category', |
| max: 1 |
| }, |
| yAxis: { |
| }, |
| seriesList: { |
| stackNon: [{ |
| type: 'bar', |
| data: [['a', 22], ['b', 52], ['c', 959]] |
| }], |
| stackHas: [{ |
| type: 'bar', |
| stack: 's', |
| data: [['a', 12], ['b', 32], ['c', 359]] |
| }, { |
| type: 'bar', |
| stack: 's', |
| data: [['a', 10], ['b', 20], ['c', 600]] |
| }] |
| } |
| }, { |
| noDataZoom: 'y-min: 0, y-max: niced from 52, x-min: "a", x-max: "b"', |
| dataZoomX: 'y-min: 0, y-max: niced from 959, x-min: "a", x-max: "b"', |
| dataZoomY: 'y-min: 0, y-max: niced from 959, x-min: "a", x-max: "b"' |
| }); |
| |
| makeCartesian(option, { |
| xAxis: { |
| type: 'category', |
| max: 2, |
| min: 1 |
| }, |
| yAxis: { |
| }, |
| seriesList: { |
| stackNon: [{ |
| type: 'bar', |
| data: [['a', 959], ['b', 22], ['c', 52], ['d', -959]] |
| }], |
| stackHas: [{ |
| type: 'bar', |
| stack: 's', |
| data: [['a', 300], ['b', 12], ['c', 32], ['d', -259]] |
| }, { |
| type: 'bar', |
| stack: 's', |
| data: [['a', 659], ['b', 10], ['c', 20], ['d', -700]] |
| }], |
| } |
| }, { |
| noDataZoom: 'y-min: 0, y-max: niced from 52, x-min: "b", x-max: "c"', |
| dataZoomX: 'y-min: niced from -959, y-max: niced from 959, x-min: "b", x-max: "c"', |
| dataZoomY: 'y-min: niced from -959, y-max: niced from 959, x-min: "b", x-max: "c"' |
| }); |
| |
| makeCartesian(option, { |
| xAxis: { |
| type: 'category', |
| max: 2, |
| min: 1 |
| }, |
| yAxis: { |
| max: 500 |
| }, |
| seriesList: { |
| stackNon: [{ |
| type: 'bar', |
| data: [['a', 959], ['b', 22], ['c', 52], ['d', -959]] |
| }], |
| stackHas: [{ |
| type: 'bar', |
| stack: 's', |
| data: [['a', 159], ['b', 2], ['c', 7], ['d', -59]] |
| }, { |
| type: 'bar', |
| stack: 's', |
| data: [['a', 800], ['b', 20], ['c', 45], ['d', -900]] |
| }] |
| } |
| }, { |
| noDataZoom: 'y-min: 0, y-max: 500, x-min: "b", x-max: "c"', |
| dataZoomX: 'y-min: niced from -959, y-max: 500, x-min: "b", x-max: "c"', |
| dataZoomY: 'y-min: niced from -959, y-max: 500, x-min: "b", x-max: "c"' |
| }); |
| |
| makeCartesian(option, { |
| xAxis: { |
| type: 'category', |
| min: 1 |
| }, |
| yAxis: { |
| scale: true |
| }, |
| seriesList: { |
| stackNon: [{ |
| type: 'line', |
| areaStyle: {}, |
| data: [['a', 359], ['b', 122], ['c', 152]] |
| }], |
| stackHas: [{ |
| type: 'line', |
| stack: 's', |
| data: [['a', 159], ['b', 62], ['c', 100]] |
| }, { |
| type: 'line', |
| stack: 's', |
| areaStyle: {}, |
| data: [['a', 200], ['b', 60], ['c', 52]] |
| }] |
| } |
| }, { |
| noDataZoom: '(yAxis.scale: true) y-min: niced from (noStack ? 122 : 62), y-max: niced from 152, x-min: "b", x-max: "c"', |
| dataZoomX: '(yAxis.scale: true) y-min: niced from (noStack ? 122 : 62), y-max: niced from 359, x-min: "b", x-max: "c"', |
| dataZoomY: '(yAxis.scale: true) y-min: niced from (noStack ? 122 : 62), y-max: niced from 359, x-min: "b", x-max: "c"' |
| }); |
| |
| makeCartesian(option, { |
| xAxis: { |
| type: 'category', |
| min: 1, |
| max: 2 |
| }, |
| yAxis: { |
| boundaryGap: ['50%', '50%'] |
| }, |
| seriesList: { |
| stackNon: [{ |
| type: 'bar', |
| data: [['a', 559], ['b', 82], ['c', 152], ['d', -559]] |
| }], |
| stackHas: [{ |
| type: 'bar', |
| stack: 's', |
| data: [['a', 159], ['b', 22], ['c', 52], ['d', -159]] |
| }, { |
| type: 'bar', |
| stack: 's', |
| data: [['a', 400], ['b', 60], ['c', 100], ['d', -459]] |
| }] |
| } |
| }, { |
| // 187 = 152 + .5 * (152 - 82) |
| // 217 = 152 + .5 * (152 - 22) |
| // -43 = 22-.5 * (152 - 22) |
| noDataZoom: '(boundaryGap: [.5, .5]) y-min: (noStack ? 0 : -43), y-max: niced from (noStack ? 187 : 217), x-min: "b", x-max: "c"', |
| dataZoomX: '(boundaryGap: [.5, .5]) y-min: -1118, y-max: niced from 1118, x-min: "b", x-max: "c"', |
| dataZoomY: '(boundaryGap: [.5, .5]) y-min: -1118, y-max: niced from 1118, x-min: "b", x-max: "c"' |
| }); |
| |
| // ------------------------------------- |
| // Cases in a single chart instance END |
| // ------------------------------------- |
| |
| return option; |
| } |
| </script> |
| |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| var option = makeMultiCartesian(echarts, {}); |
| |
| var chart = testHelper.create(echarts, 'main-no-dataZoom', { |
| title: [ |
| 'Check xAxis, yAxis min/max' |
| ], |
| option: option, |
| height: TOTAL_HEIGHT |
| }); |
| }); |
| </script> |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| var option = makeMultiCartesian(echarts, { |
| dataZoomX: true |
| }); |
| |
| var chart = testHelper.create(echarts, 'main-has-dataZoom-x', { |
| title: [ |
| '[has **dataZoom on X** filterMode: "none"] Check xAxis, yAxis min/max' |
| ], |
| option: option, |
| height: TOTAL_HEIGHT |
| }); |
| }); |
| </script> |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| var option = makeMultiCartesian(echarts, { |
| dataZoomY: true |
| }); |
| |
| var chart = testHelper.create(echarts, 'main-has-dataZoom-y', { |
| title: [ |
| '[has **dataZoom on Y** filterMode: "none"] Check xAxis, yAxis min/max' |
| ], |
| option: option, |
| height: TOTAL_HEIGHT |
| }); |
| }); |
| </script> |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| var option = makeMultiCartesian(echarts, { |
| stack: true |
| }); |
| |
| var chart = testHelper.create(echarts, 'main-has-stack', { |
| title: [ |
| '[has **stack**] Check xAxis, yAxis min/max' |
| ], |
| option: option, |
| height: TOTAL_HEIGHT |
| }); |
| }); |
| </script> |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| var option = makeMultiCartesian(echarts, { |
| stack: true, |
| dataZoomY: true |
| }); |
| |
| var chart = testHelper.create(echarts, 'main-has-dataZoom-y-stack', { |
| title: [ |
| '[has **dataZoom on Y** has **stack**] Check xAxis, yAxis min/max' |
| ], |
| option: option, |
| height: TOTAL_HEIGHT |
| }); |
| }); |
| </script> |
| |
| |
| |
| </body> |
| </html> |
| |