|  |  | 
|  | <!-- | 
|  | 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> |