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