330 lines
11 KiB
HTML
Generated
330 lines
11 KiB
HTML
Generated
|
||
<!--
|
||
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> |