545 lines
15 KiB
JavaScript
Generated
545 lines
15 KiB
JavaScript
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.
|
|
*/
|
|
|
|
/*jshint unused:false*/
|
|
/*jshint camelcase:false*/
|
|
|
|
function createChart(id, echarts, option, height) {
|
|
return window.testHelper.createChart(echarts, id, option, height);
|
|
}
|
|
|
|
function extend(target, source) {
|
|
for (var key in source) {
|
|
if (source.hasOwnProperty(key)) {
|
|
target[key] = source[key];
|
|
}
|
|
}
|
|
return target;
|
|
}
|
|
|
|
function makeCategoryData(scale, catePrefix, dataCount) {
|
|
var categoryData = [];
|
|
var data1 = [];
|
|
var data2 = [];
|
|
var data3 = [];
|
|
scale = scale || 1;
|
|
catePrefix = catePrefix || 'category';
|
|
dataCount = dataCount || 10;
|
|
|
|
categoryData.push(catePrefix + -1);
|
|
data1.push('-');
|
|
data2.push('-');
|
|
data3.push('-');
|
|
|
|
for (var i = 0; i < 5; i++) {
|
|
categoryData.push(catePrefix + i);
|
|
data1.push(((-Math.random() - 0.2) * scale).toFixed(3));
|
|
data2.push(((Math.random() + 0.3) * scale).toFixed(3));
|
|
data3.push(((Math.random() + 0.2) * scale).toFixed(3));
|
|
}
|
|
|
|
categoryData.push(catePrefix + i);
|
|
data1.push('-');
|
|
data2.push('-');
|
|
data3.push('-');
|
|
|
|
for (; i < dataCount - 1; i++) {
|
|
categoryData.push(catePrefix + i);
|
|
data1.push(((-Math.random() - 0.2) * scale).toFixed(3));
|
|
data2.push(((Math.random() + 0.3) * scale).toFixed(3));
|
|
data3.push(((Math.random() + 0.2) * scale).toFixed(3));
|
|
}
|
|
categoryData.push(catePrefix + i);
|
|
data1.push('-');
|
|
data2.push('-');
|
|
data3.push('-');
|
|
|
|
return {categoryData: categoryData, data1: data1, data2: data2, data3: data3};
|
|
}
|
|
|
|
function makeValueData() {
|
|
var data1 = [];
|
|
var data2 = [];
|
|
var data3 = [];
|
|
|
|
data1.push(['-', '-']);
|
|
data2.push(['-', '-']);
|
|
data3.push(['-', '-']);
|
|
|
|
for (var i = 0; i < 5; i++) {
|
|
data1.push([(Math.random() * 1000).toFixed(2), (-Math.random() - 0.4).toFixed(3)]);
|
|
data2.push([(Math.random() * 1000).toFixed(2), (Math.random() + 1.8).toFixed(3)]);
|
|
data3.push([(Math.random() * 1000).toFixed(2), (Math.random() + 0.2).toFixed(3)]);
|
|
}
|
|
|
|
data1.push(['-', '-']);
|
|
data2.push(['-', '-']);
|
|
data3.push(['-', '-']);
|
|
|
|
for (; i < 10; i++) {
|
|
data1.push([(Math.random() * 1000).toFixed(2), (-Math.random() - 0.2).toFixed(3)]);
|
|
data2.push([(Math.random() * 1000).toFixed(2), (Math.random() + 0.3).toFixed(3)]);
|
|
data3.push([(Math.random() * 1000).toFixed(2), (Math.random() + 0.2).toFixed(3)]);
|
|
}
|
|
data1.push(['-', '-']);
|
|
data2.push(['-', '-']);
|
|
data3.push(['-', '-']);
|
|
|
|
return {data1: data1, data2: data2, data3: data3};
|
|
}
|
|
|
|
|
|
function makeTimeData() {
|
|
var data1 = [];
|
|
var data2 = [];
|
|
var data3 = [];
|
|
|
|
data1.push(['-', '-']);
|
|
data2.push(['-', '-']);
|
|
data3.push(['-', '-']);
|
|
|
|
var day = 3600 * 1000 * 24;
|
|
var time = +new Date(2017, 2, 15);
|
|
for (var i = 0; i < 100; i++, time += day) {
|
|
var d = new Date(time);
|
|
var dayStr = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join('-');
|
|
data1.push([dayStr, (-Math.random() - 0.2).toFixed(3)]);
|
|
var val2 = (Math.random() + 0.3).toFixed(3);
|
|
if (i >= 25 && i <= 30) {
|
|
val2 = '-';
|
|
}
|
|
var val3 = (Math.random() + 0.2).toFixed(3);
|
|
if (i >= 25 && i <= 30) {
|
|
val3 = '-';
|
|
}
|
|
data2.push([dayStr, val2]);
|
|
data3.push([dayStr, val3]);
|
|
}
|
|
|
|
return {data1: data1, data2: data2, data3: data3};
|
|
}
|
|
|
|
function getArray(obj, name) {
|
|
return (obj[name] = obj[name] || []);
|
|
}
|
|
|
|
function makeCategoryPolar(option, patterns, inV) {
|
|
var data = makeCategoryData();
|
|
var key = Math.random().toFixed(5);
|
|
|
|
option.legend = option.legend || {
|
|
tooltip: {show: true}
|
|
};
|
|
getArray(option.legend, 'data').push('line1' + key, 'line2' + key, 'line3' + key);
|
|
|
|
var polar = extend({}, patterns.polar);
|
|
polar.id = 'polar' + key;
|
|
getArray(option, 'polar').push(polar);
|
|
|
|
var axisNames = ['radiusAxis', 'angleAxis'];
|
|
inV && axisNames.reverse();
|
|
|
|
getArray(option, axisNames[0]).push(extend({
|
|
id: axisNames[0] + key,
|
|
polarId: polar.id,
|
|
data: data.categoryData,
|
|
boundaryGap: false,
|
|
splitArea: {
|
|
show: true
|
|
}
|
|
}, patterns[axisNames[0]]));
|
|
|
|
getArray(option, axisNames[1]).push(extend({
|
|
id: axisNames[1] + key,
|
|
polarId: polar.id,
|
|
nameLocation: 'middle',
|
|
nameGap: 40
|
|
}, patterns[axisNames[1]]));
|
|
|
|
var patternsSeries = patterns.series || [];
|
|
|
|
getArray(option, 'series').push(
|
|
extend({
|
|
id: 'line1-id' + key,
|
|
name: 'line1' + key,
|
|
coordinateSystem: 'polar',
|
|
polarId: polar.id,
|
|
type: 'line',
|
|
symbolSize: 10,
|
|
data: data.data1,
|
|
connectNulls: true
|
|
}, patternsSeries[0]),
|
|
extend({
|
|
id: 'line2-id' + key,
|
|
name: 'line2' + key,
|
|
coordinateSystem: 'polar',
|
|
polarId: polar.id,
|
|
type: 'line',
|
|
symbolSize: 10,
|
|
data: data.data2
|
|
}, patternsSeries[1]),
|
|
extend({
|
|
id: 'line3-id' + key,
|
|
name: 'line3' + key,
|
|
coordinateSystem: 'polar',
|
|
polarId: polar.id,
|
|
type: 'line',
|
|
symbolSize: 10,
|
|
symbol: 'circle',
|
|
data: data.data3,
|
|
label: {
|
|
normal: {
|
|
show: true
|
|
}
|
|
}
|
|
}, patternsSeries[2])
|
|
);
|
|
}
|
|
|
|
function makeCategoryGrid(option, patterns, inV, dataCount, seriesType, catePrefix) {
|
|
var data = makeCategoryData(null, catePrefix, dataCount);
|
|
var key = Math.random().toFixed(5);
|
|
seriesType = seriesType || 'line';
|
|
|
|
option.legend = option.legend || {
|
|
tooltip: {show: true}
|
|
};
|
|
getArray(option.legend, 'data').push('line1' + key, 'line2' + key, 'line3' + key);
|
|
|
|
var grid = extend({}, patterns.grid);
|
|
grid.id = 'grid' + key;
|
|
getArray(option, 'grid').push(grid);
|
|
|
|
var axisNames = ['xAxis', 'yAxis'];
|
|
inV && axisNames.reverse();
|
|
|
|
getArray(option, axisNames[0]).push(extend({
|
|
id: axisNames[0] + key,
|
|
gridId: grid.id,
|
|
data: data.categoryData,
|
|
boundaryGap: false,
|
|
splitArea: {
|
|
show: true
|
|
}
|
|
}, patterns[axisNames[0]]));
|
|
|
|
getArray(option, axisNames[1]).push(extend({
|
|
id: axisNames[1] + key,
|
|
gridId: grid.id,
|
|
nameLocation: 'middle',
|
|
nameGap: 40
|
|
}, patterns[axisNames[1]]));
|
|
|
|
var patternsSeries = patterns.series || [];
|
|
|
|
getArray(option, 'series').push(
|
|
extend({
|
|
id: 'line1-id' + key,
|
|
name: 'line1' + key,
|
|
xAxisId: 'xAxis' + key,
|
|
yAxisId: 'yAxis' + key,
|
|
type: seriesType,
|
|
symbolSize: 10,
|
|
data: data.data1,
|
|
smooth: true,
|
|
connectNulls: true
|
|
}, patternsSeries[0]),
|
|
extend({
|
|
id: 'line2-id' + key,
|
|
name: 'line2' + key,
|
|
xAxisId: 'xAxis' + key,
|
|
yAxisId: 'yAxis' + key,
|
|
type: seriesType,
|
|
symbolSize: 10,
|
|
data: data.data2,
|
|
connectNulls: true,
|
|
smooth: true
|
|
}, patternsSeries[1]),
|
|
extend({
|
|
id: 'line3-id' + key,
|
|
name: 'line3' + key,
|
|
xAxisId: 'xAxis' + key,
|
|
yAxisId: 'yAxis' + key,
|
|
type: seriesType,
|
|
symbolSize: 10,
|
|
symbol: 'circle',
|
|
data: data.data3,
|
|
label: {
|
|
normal: {
|
|
show: true
|
|
}
|
|
},
|
|
connectNulls: true,
|
|
smooth: true
|
|
}, patternsSeries[2])
|
|
);
|
|
}
|
|
|
|
function makeValueGrid(option, patterns) {
|
|
var data = makeValueData();
|
|
var key = Math.random().toFixed(5);
|
|
|
|
option.legend = option.legend || {
|
|
tooltip: {show: true}
|
|
};
|
|
getArray(option.legend, 'data').push('line1' + key, 'line2' + key, 'line3' + key);
|
|
|
|
var grid = extend({}, patterns.grid);
|
|
grid.id = 'grid' + key;
|
|
getArray(option, 'grid').push(grid);
|
|
|
|
getArray(option, 'xAxis').push(extend({
|
|
id: 'xAxis' + key,
|
|
gridId: grid.id,
|
|
type: 'value',
|
|
splitArea: {
|
|
show: true
|
|
}
|
|
}, patterns['xAxis']));
|
|
|
|
getArray(option, 'yAxis').push(extend({
|
|
id: 'yAxis' + key,
|
|
gridId: grid.id,
|
|
nameLocation: 'middle',
|
|
nameGap: 40
|
|
}, patterns['yAxis']));
|
|
|
|
var patternsSeries = patterns.series || [];
|
|
|
|
getArray(option, 'series').push(
|
|
extend({
|
|
id: 'scatter1-id' + key,
|
|
name: 'scatter1' + key,
|
|
xAxisId: 'xAxis' + key,
|
|
yAxisId: 'yAxis' + key,
|
|
type: 'scatter',
|
|
symbolSize: 10,
|
|
data: data.data1,
|
|
smooth: true,
|
|
connectNulls: true
|
|
}, patternsSeries[0]),
|
|
extend({
|
|
id: 'scatter2-id' + key,
|
|
name: 'scatter2' + key,
|
|
xAxisId: 'xAxis' + key,
|
|
yAxisId: 'yAxis' + key,
|
|
type: 'scatter',
|
|
symbolSize: 10,
|
|
data: data.data2,
|
|
connectNulls: true,
|
|
smooth: true
|
|
}, patternsSeries[1]),
|
|
extend({
|
|
id: 'scatter3-id' + key,
|
|
name: 'scatter3' + key,
|
|
xAxisId: 'xAxis' + key,
|
|
yAxisId: 'yAxis' + key,
|
|
type: 'scatter',
|
|
symbolSize: 10,
|
|
symbol: 'circle',
|
|
data: data.data3,
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
textStyle: {color: '#333'}
|
|
}
|
|
},
|
|
connectNulls: true,
|
|
smooth: true
|
|
}, patternsSeries[2])
|
|
);
|
|
}
|
|
|
|
|
|
function makeTimeGrid(option, patterns) {
|
|
var data = makeTimeData();
|
|
var key = Math.random().toFixed(5);
|
|
|
|
option.legend = option.legend || {
|
|
tooltip: {show: true}
|
|
};
|
|
getArray(option.legend, 'data').push('scatter1' + key, 'scatter2' + key, 'scatter3' + key);
|
|
|
|
var grid = extend({}, patterns.grid);
|
|
grid.id = 'grid' + key;
|
|
getArray(option, 'grid').push(grid);
|
|
|
|
getArray(option, 'xAxis').push(extend({
|
|
id: 'xAxis' + key,
|
|
type: 'time',
|
|
gridId: grid.id,
|
|
splitArea: {
|
|
show: true
|
|
}
|
|
}, patterns['xAxis']));
|
|
|
|
getArray(option, 'yAxis').push(extend({
|
|
id: 'yAxis' + key,
|
|
gridId: grid.id,
|
|
nameLocation: 'middle',
|
|
nameGap: 40
|
|
}, patterns['yAxis']));
|
|
|
|
var patternsSeries = patterns.series || [];
|
|
|
|
getArray(option, 'series').push(
|
|
extend({
|
|
id: 'scatter1-id' + key,
|
|
name: 'scatter1' + key,
|
|
xAxisId: 'xAxis' + key,
|
|
yAxisId: 'yAxis' + key,
|
|
type: 'line',
|
|
symbolSize: 5,
|
|
label: {
|
|
emphasis: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#333'
|
|
}
|
|
}
|
|
},
|
|
data: data.data1,
|
|
smooth: true,
|
|
connectNulls: true
|
|
}, patternsSeries[0]),
|
|
extend({
|
|
id: 'scatter2-id' + key,
|
|
name: 'scatter2' + key,
|
|
xAxisId: 'xAxis' + key,
|
|
yAxisId: 'yAxis' + key,
|
|
type: 'line',
|
|
symbolSize: 5,
|
|
label: {
|
|
emphasis: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#333'
|
|
}
|
|
}
|
|
},
|
|
data: data.data2,
|
|
connectNulls: true,
|
|
smooth: true
|
|
}, patternsSeries[1]),
|
|
extend({
|
|
id: 'scatter3-id' + key,
|
|
name: 'scatter3' + key,
|
|
xAxisId: 'xAxis' + key,
|
|
yAxisId: 'yAxis' + key,
|
|
type: 'line',
|
|
symbolSize: 5,
|
|
symbol: 'circle',
|
|
data: data.data3,
|
|
label: {
|
|
emphasis: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#333'
|
|
}
|
|
}
|
|
},
|
|
connectNulls: true,
|
|
smooth: true
|
|
}, patternsSeries[2])
|
|
);
|
|
}
|
|
|
|
function makeCategoryCartesian(option, patterns, xAxisIndex, yAxisIndex, scale, catePrefix) {
|
|
var data = makeCategoryData(scale, catePrefix);
|
|
var key = Math.random().toFixed(5);
|
|
|
|
var axisColors = [
|
|
'#2f4554', '#c23531', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'
|
|
];
|
|
if (option.___test_axisColorIndex == null) {
|
|
option.___test_axisColorIndex = 0;
|
|
}
|
|
|
|
option.legend = option.legend || {
|
|
tooltip: {show: true}
|
|
};
|
|
getArray(option.legend, 'data').push('line1' + key, 'line2' + key, 'line3' + key);
|
|
|
|
var xAxes = getArray(option, 'xAxis');
|
|
var yAxes = getArray(option, 'yAxis');
|
|
|
|
if (!xAxes[xAxisIndex]) {
|
|
xAxes[xAxisIndex] = extend({
|
|
data: data.categoryData,
|
|
boundaryGap: false,
|
|
splitArea: {
|
|
show: true
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: axisColors[option.___test_axisColorIndex++]
|
|
}
|
|
}
|
|
}, patterns['xAxis']);
|
|
}
|
|
if (!yAxes[yAxisIndex]) {
|
|
yAxes[yAxisIndex] = extend({
|
|
nameLocation: 'middle',
|
|
nameGap: 40,
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: axisColors[option.___test_axisColorIndex++]
|
|
}
|
|
}
|
|
}, patterns['yAxis']);
|
|
}
|
|
|
|
var patternsSeries = patterns.series || [];
|
|
|
|
getArray(option, 'series').push(
|
|
extend({
|
|
id: 'line1-id' + key,
|
|
name: 'line1' + key,
|
|
xAxisIndex: xAxisIndex,
|
|
yAxisIndex: yAxisIndex,
|
|
type: 'line',
|
|
symbolSize: 10,
|
|
itemStyle: {
|
|
normal: {
|
|
color: yAxes[yAxisIndex].axisLine.lineStyle.color
|
|
}
|
|
},
|
|
data: data.data1,
|
|
smooth: true,
|
|
connectNulls: true
|
|
}, patternsSeries[0]),
|
|
extend({
|
|
id: 'line2-id' + key,
|
|
name: 'line2' + key,
|
|
xAxisIndex: xAxisIndex,
|
|
yAxisIndex: yAxisIndex,
|
|
itemStyle: {
|
|
normal: {
|
|
color: yAxes[yAxisIndex].axisLine.lineStyle.color
|
|
}
|
|
},
|
|
type: 'line',
|
|
symbolSize: 10,
|
|
data: data.data2,
|
|
connectNulls: true,
|
|
smooth: true
|
|
}, patternsSeries[1])
|
|
);
|
|
}
|