g214/static/bower_components/echarts/test/scatterMatrix.html

311 lines
14 KiB
HTML

<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<script src="esl.js"></script>
<script src="config.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="reset.css">
</head>
<body>
<style>
</style>
<div id="main"></div>
<script>
var echarts;
var chart;
var myChart;
require([
'echarts',
'echarts/chart/scatter',
'echarts/component/legend',
'echarts/component/grid',
'echarts/component/tooltip',
'echarts/component/toolbox',
'echarts/component/markLine',
'echarts/component/markPoint',
'echarts/component/dataZoom',
'echarts/component/visualMap',
'echarts/component/brush'
], function (ec) {
echarts = ec;
var rawData = [
[5.1, 3.5, 1.4, 0.2, "setosa"],
[4.9, 3.0, 1.4, 0.2, "setosa"],
[4.7, 3.2, 1.3, 0.2, "setosa"],
[4.6, 3.1, 1.5, 0.2, "setosa"],
[5.0, 3.6, 1.4, 0.2, "setosa"],
[5.4, 3.9, 1.7, 0.4, "setosa"],
[4.6, 3.4, 1.4, 0.3, "setosa"],
[5.0, 3.4, 1.5, 0.2, "setosa"],
[4.4, 2.9, 1.4, 0.2, "setosa"],
[4.9, 3.1, 1.5, 0.1, "setosa"],
[5.4, 3.7, 1.5, 0.2, "setosa"],
[4.8, 3.4, 1.6, 0.2, "setosa"],
[4.8, 3.0, 1.4, 0.1, "setosa"],
[4.3, 3.0, 1.1, 0.1, "setosa"],
[5.8, 4.0, 1.2, 0.2, "setosa"],
[5.7, 4.4, 1.5, 0.4, "setosa"],
[5.4, 3.9, 1.3, 0.4, "setosa"],
[5.1, 3.5, 1.4, 0.3, "setosa"],
[5.7, 3.8, 1.7, 0.3, "setosa"],
[5.1, 3.8, 1.5, 0.3, "setosa"],
[5.4, 3.4, 1.7, 0.2, "setosa"],
[5.1, 3.7, 1.5, 0.4, "setosa"],
[4.6, 3.6, 1.0, 0.2, "setosa"],
[5.1, 3.3, 1.7, 0.5, "setosa"],
[4.8, 3.4, 1.9, 0.2, "setosa"],
[5.0, 3.0, 1.6, 0.2, "setosa"],
[5.0, 3.4, 1.6, 0.4, "setosa"],
[5.2, 3.5, 1.5, 0.2, "setosa"],
[5.2, 3.4, 1.4, 0.2, "setosa"],
[4.7, 3.2, 1.6, 0.2, "setosa"],
[4.8, 3.1, 1.6, 0.2, "setosa"],
[5.4, 3.4, 1.5, 0.4, "setosa"],
[5.2, 4.1, 1.5, 0.1, "setosa"],
[5.5, 4.2, 1.4, 0.2, "setosa"],
[4.9, 3.1, 1.5, 0.2, "setosa"],
[5.0, 3.2, 1.2, 0.2, "setosa"],
[5.5, 3.5, 1.3, 0.2, "setosa"],
[4.9, 3.6, 1.4, 0.1, "setosa"],
[4.4, 3.0, 1.3, 0.2, "setosa"],
[5.1, 3.4, 1.5, 0.2, "setosa"],
[5.0, 3.5, 1.3, 0.3, "setosa"],
[4.5, 2.3, 1.3, 0.3, "setosa"],
[4.4, 3.2, 1.3, 0.2, "setosa"],
[5.0, 3.5, 1.6, 0.6, "setosa"],
[5.1, 3.8, 1.9, 0.4, "setosa"],
[4.8, 3.0, 1.4, 0.3, "setosa"],
[5.1, 3.8, 1.6, 0.2, "setosa"],
[4.6, 3.2, 1.4, 0.2, "setosa"],
[5.3, 3.7, 1.5, 0.2, "setosa"],
[5.0, 3.3, 1.4, 0.2, "setosa"],
[7.0, 3.2, 4.7, 1.4, "versicolor"],
[6.4, 3.2, 4.5, 1.5, "versicolor"],
[6.9, 3.1, 4.9, 1.5, "versicolor"],
[5.5, 2.3, 4.0, 1.3, "versicolor"],
[6.5, 2.8, 4.6, 1.5, "versicolor"],
[5.7, 2.8, 4.5, 1.3, "versicolor"],
[6.3, 3.3, 4.7, 1.6, "versicolor"],
[4.9, 2.4, 3.3, 1.0, "versicolor"],
[6.6, 2.9, 4.6, 1.3, "versicolor"],
[5.2, 2.7, 3.9, 1.4, "versicolor"],
[5.0, 2.0, 3.5, 1.0, "versicolor"],
[5.9, 3.0, 4.2, 1.5, "versicolor"],
[6.0, 2.2, 4.0, 1.0, "versicolor"],
[6.1, 2.9, 4.7, 1.4, "versicolor"],
[5.6, 2.9, 3.6, 1.3, "versicolor"],
[6.7, 3.1, 4.4, 1.4, "versicolor"],
[5.6, 3.0, 4.5, 1.5, "versicolor"],
[5.8, 2.7, 4.1, 1.0, "versicolor"],
[6.2, 2.2, 4.5, 1.5, "versicolor"],
[5.6, 2.5, 3.9, 1.1, "versicolor"],
[5.9, 3.2, 4.8, 1.8, "versicolor"],
[6.1, 2.8, 4.0, 1.3, "versicolor"],
[6.3, 2.5, 4.9, 1.5, "versicolor"],
[6.1, 2.8, 4.7, 1.2, "versicolor"],
[6.4, 2.9, 4.3, 1.3, "versicolor"],
[6.6, 3.0, 4.4, 1.4, "versicolor"],
[6.8, 2.8, 4.8, 1.4, "versicolor"],
[6.7, 3.0, 5.0, 1.7, "versicolor"],
[6.0, 2.9, 4.5, 1.5, "versicolor"],
[5.7, 2.6, 3.5, 1.0, "versicolor"],
[5.5, 2.4, 3.8, 1.1, "versicolor"],
[5.5, 2.4, 3.7, 1.0, "versicolor"],
[5.8, 2.7, 3.9, 1.2, "versicolor"],
[6.0, 2.7, 5.1, 1.6, "versicolor"],
[5.4, 3.0, 4.5, 1.5, "versicolor"],
[6.0, 3.4, 4.5, 1.6, "versicolor"],
[6.7, 3.1, 4.7, 1.5, "versicolor"],
[6.3, 2.3, 4.4, 1.3, "versicolor"],
[5.6, 3.0, 4.1, 1.3, "versicolor"],
[5.5, 2.5, 4.0, 1.3, "versicolor"],
[5.5, 2.6, 4.4, 1.2, "versicolor"],
[6.1, 3.0, 4.6, 1.4, "versicolor"],
[5.8, 2.6, 4.0, 1.2, "versicolor"],
[5.0, 2.3, 3.3, 1.0, "versicolor"],
[5.6, 2.7, 4.2, 1.3, "versicolor"],
[5.7, 3.0, 4.2, 1.2, "versicolor"],
[5.7, 2.9, 4.2, 1.3, "versicolor"],
[6.2, 2.9, 4.3, 1.3, "versicolor"],
[5.1, 2.5, 3.0, 1.1, "versicolor"],
[5.7, 2.8, 4.1, 1.3, "versicolor"],
[6.3, 3.3, 6.0, 2.5, "virginica"],
[5.8, 2.7, 5.1, 1.9, "virginica"],
[7.1, 3.0, 5.9, 2.1, "virginica"],
[6.3, 2.9, 5.6, 1.8, "virginica"],
[6.5, 3.0, 5.8, 2.2, "virginica"],
[7.6, 3.0, 6.6, 2.1, "virginica"],
[4.9, 2.5, 4.5, 1.7, "virginica"],
[7.3, 2.9, 6.3, 1.8, "virginica"],
[6.7, 2.5, 5.8, 1.8, "virginica"],
[7.2, 3.6, 6.1, 2.5, "virginica"],
[6.5, 3.2, 5.1, 2.0, "virginica"],
[6.4, 2.7, 5.3, 1.9, "virginica"],
[6.8, 3.0, 5.5, 2.1, "virginica"],
[5.7, 2.5, 5.0, 2.0, "virginica"],
[5.8, 2.8, 5.1, 2.4, "virginica"],
[6.4, 3.2, 5.3, 2.3, "virginica"],
[6.5, 3.0, 5.5, 1.8, "virginica"],
[7.7, 3.8, 6.7, 2.2, "virginica"],
[7.7, 2.6, 6.9, 2.3, "virginica"],
[6.0, 2.2, 5.0, 1.5, "virginica"],
[6.9, 3.2, 5.7, 2.3, "virginica"],
[5.6, 2.8, 4.9, 2.0, "virginica"],
[7.7, 2.8, 6.7, 2.0, "virginica"],
[6.3, 2.7, 4.9, 1.8, "virginica"],
[6.7, 3.3, 5.7, 2.1, "virginica"],
[7.2, 3.2, 6.0, 1.8, "virginica"],
[6.2, 2.8, 4.8, 1.8, "virginica"],
[6.1, 3.0, 4.9, 1.8, "virginica"],
[6.4, 2.8, 5.6, 2.1, "virginica"],
[7.2, 3.0, 5.8, 1.6, "virginica"],
[7.4, 2.8, 6.1, 1.9, "virginica"],
[7.9, 3.8, 6.4, 2.0, "virginica"],
[6.4, 2.8, 5.6, 2.2, "virginica"],
[6.3, 2.8, 5.1, 1.5, "virginica"],
[6.1, 2.6, 5.6, 1.4, "virginica"],
[7.7, 3.0, 6.1, 2.3, "virginica"],
[6.3, 3.4, 5.6, 2.4, "virginica"],
[6.4, 3.1, 5.5, 1.8, "virginica"],
[6.0, 3.0, 4.8, 1.8, "virginica"],
[6.9, 3.1, 5.4, 2.1, "virginica"],
[6.7, 3.1, 5.6, 2.4, "virginica"],
[6.9, 3.1, 5.1, 2.3, "virginica"],
[5.8, 2.7, 5.1, 1.9, "virginica"],
[6.8, 3.2, 5.9, 2.3, "virginica"],
[6.7, 3.3, 5.7, 2.5, "virginica"],
[6.7, 3.0, 5.2, 2.3, "virginica"],
[6.3, 2.5, 5.0, 1.9, "virginica"],
[6.5, 3.0, 5.2, 2.0, "virginica"],
[6.2, 3.4, 5.4, 2.3, "virginica"],
[5.9, 3.0, 5.1, 1.8, "virginica"]
];
var GRID_WIDTH = 220;
var GRID_HEIGHT = 220;
var GAP = 20;
var CATEGORY_DIM = 4;
var CROSS_DIM_NUMBER = 4;
var BASE_LEFT = 30;
var BASE_TOP = 20;
var SYMBOL_SIZE = 8;
function genData(data, dimX, dimY) {
var result = [];
for (var i = 0; i < data.length; i++) {
result.push([data[i][dimX], data[i][dimY], data[i][CATEGORY_DIM]]);
}
return result;
}
function getCategories(data) {
var map = {};
var result = [];
for (var i = 0; i < data.length; i++) {
if (!map[data[i][CATEGORY_DIM]]) {
map[data[i][CATEGORY_DIM]] = 1;
}
}
for (var cate in map) {
if (map.hasOwnProperty(cate)) {
result.push(cate);
}
}
return result;
}
function genGrids(option) {
var gridList = option.grid = [];
var xAxisList = option.xAxis = [];
var yAxisList = option.yAxis = [];
var seriesList = option.series = [];
var visualMapSeriesIndices = option.visualMap.seriesIndex = [];
for (var i = 0; i < CROSS_DIM_NUMBER; i++) {
for (var j = 0; j < CROSS_DIM_NUMBER; j++) {
gridList.push({
left: BASE_LEFT + i * (GRID_WIDTH + GAP),
top: BASE_TOP + (CROSS_DIM_NUMBER - 1 - j) * (GRID_HEIGHT + GAP),
width: GRID_WIDTH,
height: GRID_HEIGHT
});
xAxisList.push({
axisLine: {
onZero: false
},
axisTick: {
show: j === 0
},
axisLabel: {
show: j === 0
},
type: 'value',
gridIndex: i * CROSS_DIM_NUMBER + j,
scale: true
});
yAxisList.push({
axisLine: {
onZero: false
},
axisTick: {
show: i === 0
},
axisLabel: {
show: i === 0
},
type: 'value',
gridIndex: i * CROSS_DIM_NUMBER + j,
scale: true
});
seriesList.push({
type: 'scatter',
symbolSize: SYMBOL_SIZE,
xAxisIndex: i * CROSS_DIM_NUMBER + j,
yAxisIndex: i * CROSS_DIM_NUMBER + j,
data: genData(rawData, i, j)
});
visualMapSeriesIndices.push(i * CROSS_DIM_NUMBER + j);
}
}
}
var option = {
legend: {
data: ['scatter', 'scatter2', 'scatter3']
},
animation: false,
brush: {
brushLink: 'all'
},
visualMap: {
type: 'piecewise',
categories: getCategories(rawData),
dimension: 2,
orient: 'horizontal',
top: 0,
left: 'center',
inRange: {
color: ['#c23531','#2f4554', '#61a0a8']
}
},
tooltip: {
trigger: 'item'
}
};
genGrids(option);
var mainEl = document.getElementById('main');
mainEl.style.height = BASE_TOP * 2 + CROSS_DIM_NUMBER * (GRID_HEIGHT + GAP) + 'px';
chart = myChart = echarts.init(mainEl);
chart.setOption(option);
});
</script>
</body>
</html>