| <!-- | |
| 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> | |
| </head> | |
| <body> | |
| <style> | |
| html, | |
| body, | |
| #main, | |
| #main2, | |
| #main3 { | |
| width: 90%; | |
| height: 200px; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| #main2 { | |
| width: 75%; | |
| } | |
| #main3 { | |
| width: 50%; | |
| } | |
| #middle { | |
| text-align: center; | |
| padding: 10px; | |
| background: #d4e8f1; | |
| } | |
| </style> | |
| <div id="main"></div> | |
| <div id="middle"> | |
| 上面是降水量,下面是流量。这是三个echarts实例。<br> | |
| 三个都会 dataZoom 同步。<br> | |
| 前两个会 tooltip 同步,第三个不 tooltip 同步。 | |
| </div> | |
| <div id="main2"></div> | |
| <div id="main3"></div> | |
| <script> | |
| require([ | |
| 'data/rainfall.json.js', | |
| 'echarts' | |
| ], function (data, echarts) { | |
| var chart1 = createChart1(data, echarts); | |
| var chart2 = createChart2(data, echarts); | |
| var chart3 = createChart3(data, echarts); | |
| echarts.connect([chart1, chart2, chart3]); | |
| // chart1.on('dataZoom', function (payload) { | |
| // chart2.dispatchAction({ | |
| // type: 'dataZoom', | |
| // dataZoomIndex: 0, | |
| // range: payload.range | |
| // }, true); | |
| // }); | |
| // chart2.on('dataZoom', function (payload) { | |
| // chart1.dispatchAction({ | |
| // type: 'dataZoom', | |
| // dataZoomIndex: 0, | |
| // range: payload.range | |
| // }, true); | |
| // }); | |
| }); | |
| function createChart1(data, echarts) { | |
| var chart = echarts.init(document.getElementById('main'), null, { | |
| }); | |
| chart.setOption({ | |
| tooltip: { | |
| trigger: 'axis', | |
| }, | |
| legend: { | |
| data: ['降水量'] | |
| }, | |
| grid: [ | |
| { | |
| show: true, | |
| borderWidth: 0, | |
| left: 0, | |
| right: 0, | |
| top: 0, | |
| bottom: 0 | |
| } | |
| ], | |
| toolbox: { | |
| feature: { | |
| saveAsImage: {} | |
| } | |
| }, | |
| xAxis: [ | |
| { | |
| // data: ['类目1', '类目2', '类目3', '类目4', '类目5',] | |
| // data: xAxisData, | |
| type: 'category', | |
| boundaryGap: true, | |
| // splitLine: {show: false}, | |
| axisLabel: {show: true}, | |
| splitLine: {show: false}, | |
| axisLine: { | |
| show: true, | |
| // onZero: false | |
| }, | |
| data: data.category | |
| } | |
| ], | |
| yAxis: [ | |
| { | |
| boundaryGap: false, | |
| axisLabel: { | |
| }, | |
| axisLine: { | |
| lineStyle: { | |
| color: '#666' | |
| } | |
| } | |
| } | |
| ], | |
| series: [ | |
| { | |
| name: '降水量', | |
| type: 'line', | |
| data: data.rainfall, | |
| itemStyle: { | |
| normal: { | |
| areaStyle: {} | |
| } | |
| } | |
| } | |
| ], | |
| dataZoom: [ | |
| { | |
| type: 'inside', | |
| start: 30, | |
| end: 40 | |
| } | |
| ] | |
| }); | |
| return chart; | |
| } | |
| function createChart2(data, echarts) { | |
| var chart = echarts.init(document.getElementById('main2'), null, { | |
| }); | |
| chart.setOption({ | |
| tooltip: { | |
| trigger: 'axis', | |
| }, | |
| legend: { | |
| data: ['流量'] | |
| }, | |
| grid: [ | |
| { | |
| show: true, | |
| borderWidth: 0, | |
| left: 0, | |
| right: 0, | |
| top: 0, | |
| bottom: 0 | |
| } | |
| ], | |
| xAxis: [ | |
| { | |
| type: 'category', | |
| boundaryGap: true, | |
| axisLabel: {show: true}, | |
| splitLine: {show: false}, | |
| axisLine: { | |
| show: true, | |
| }, | |
| data: data.category | |
| } | |
| ], | |
| yAxis: [ | |
| { | |
| boundaryGap: false, | |
| position: 'right', | |
| inverse: true, | |
| axisLabel: { | |
| textStyle: { | |
| color: '#666' | |
| } | |
| }, | |
| axisLine: { | |
| lineStyle: { | |
| color: '#666' | |
| } | |
| } | |
| } | |
| ], | |
| series: [ | |
| { | |
| name: '流量', | |
| type: 'line', | |
| data: data.flow, | |
| itemStyle: { | |
| normal: { | |
| areaStyle: {} | |
| } | |
| } | |
| } | |
| ], | |
| dataZoom: [ | |
| { | |
| type: 'inside', | |
| start: 30, | |
| end: 40 | |
| } | |
| ] | |
| }); | |
| return chart; | |
| } | |
| function createChart3(data, echarts) { | |
| var chart = echarts.init(document.getElementById('main3'), null, { | |
| }); | |
| chart.setOption({ | |
| tooltip: { | |
| trigger: 'axis', | |
| }, | |
| legend: { | |
| data: ['流量'] | |
| }, | |
| grid: [ | |
| { | |
| show: true, | |
| borderWidth: 0, | |
| left: 0, | |
| right: 0, | |
| top: 0, | |
| bottom: 0 | |
| } | |
| ], | |
| xAxis: [ | |
| { | |
| type: 'category', | |
| boundaryGap: true, | |
| axisLabel: {show: true}, | |
| splitLine: {show: false}, | |
| axisLine: { | |
| show: true, | |
| }, | |
| data: data.category | |
| } | |
| ], | |
| yAxis: [ | |
| { | |
| boundaryGap: false, | |
| position: 'right', | |
| inverse: true, | |
| axisLabel: { | |
| textStyle: { | |
| color: '#666' | |
| } | |
| }, | |
| axisLine: { | |
| lineStyle: { | |
| color: '#666' | |
| } | |
| } | |
| } | |
| ], | |
| series: [ | |
| { | |
| name: 'NaN', | |
| type: 'line', | |
| data: data.flow.map(function () { return null; }) | |
| }, | |
| { | |
| name: '流量', | |
| type: 'line', | |
| data: data.flow, | |
| itemStyle: { | |
| normal: { | |
| areaStyle: {} | |
| } | |
| } | |
| } | |
| ], | |
| dataZoom: [ | |
| { | |
| type: 'inside', | |
| start: 30, | |
| end: 40 | |
| } | |
| ] | |
| }); | |
| return chart; | |
| } | |
| </script> | |
| </body> | |
| </html> |