<!-- | |
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> | |
<link rel="stylesheet" href="lib/reset.css"> | |
<script src="lib/jquery.min.js"></script> | |
</head> | |
<body> | |
<style> | |
.main { | |
height: 400px; | |
margin: 10px 0 80px 0; | |
} | |
.label { | |
background: #ddd; | |
line-height: 30px; | |
font-weight: bold; | |
text-align: center; | |
} | |
</style> | |
<div class="label">Color Alpha in scatter (using outOfRange as 'selected')</div> | |
<div class="main" id="main1"></div> | |
<div class="label">Opacity in bar (label color specified)</div> | |
<div class="main" id="main2"></div> | |
<div class="label">Opacity in scatter (label color specified)</div> | |
<div class="main" id="main3"></div> | |
<div class="label">Opacity in graph (label color specified)</div> | |
<div class="main" id="main4"></div> | |
<div class="label">Opacity in heatmap (inactive color default using opacity)</div> | |
<div class="main" id="main5"></div> | |
<div class="label">Opacity in pie (label color and label line color specified)</div> | |
<div class="main" id="main6"></div> | |
<!-- ALPHA SCATTER --> | |
<script type="text/javascript"> | |
require([ | |
'echarts' | |
], function (echarts) { | |
var main = document.getElementById('main1'); | |
if (!main) { | |
return; | |
} | |
var chart = echarts.init(main); | |
var data1 = []; | |
var data2 = []; | |
var data3 = []; | |
var symbolCount = 6; | |
for (var i = 0; i < 100; i++) { | |
data1.push([ | |
Math.random() * 5, | |
Math.random() * 4, | |
Math.random() * 20, | |
Math.round(Math.random() * (symbolCount - 1)) | |
]); | |
data2.push([ | |
Math.random() * 10, | |
Math.random() * 5, | |
Math.random() * 20, | |
Math.round(Math.random() * (symbolCount - 1)) | |
]); | |
data3.push([ | |
Math.random() * 15, | |
Math.random() * 10, | |
Math.random() * 20, | |
Math.round(Math.random() * (symbolCount - 1)) | |
]); | |
} | |
chart.on('click', function (params) { | |
console.log(params); | |
}); | |
chart.setOption({ | |
color: ['#bcd3bb', '#928ea8', '#edc1a5'], | |
legend: { | |
data: ['scatter', 'scatter2', 'scatter3'] | |
}, | |
grid: { | |
top: 50, | |
bottom: 30 | |
}, | |
xAxis: { | |
type: 'value', | |
splitLine: { | |
show: false | |
} | |
}, | |
yAxis: { | |
type: 'value', | |
splitLine: { | |
show: false | |
} | |
}, | |
visualMap: [ | |
{ | |
type: 'piecewise', | |
splitNumber: 6, | |
left: 'right', | |
bottom: 30, | |
// selectedMode: 'single', | |
selectedMode: 'multiple', | |
selected: { | |
0: false, 1: false, 2: false, 3: false, 4: false, 5: false | |
}, | |
dimension: 'value', | |
min: 0, | |
max: 24, | |
precision: 0, | |
inRange: { // visual for short cut | |
color: ['rgb(20,1,0)'], | |
symbolSize: [40, 5] | |
}, | |
outOfRange: { | |
colorAlpha: [0.3, 1], | |
symbolSize: [40, 5] | |
} | |
} | |
], | |
series: [ | |
{ | |
name: 'scatter', | |
type: 'scatter', | |
itemStyle: { | |
normal: { | |
opacity: 0.8, | |
shadowBlur: 10, | |
shadowOffsetX: 0, | |
shadowOffsetY: 0, | |
shadowColor: 'rgba(0, 0, 0, 0.5)' | |
} | |
}, | |
data: data1 | |
}, | |
{ | |
name: 'scatter2', | |
type: 'scatter', | |
itemStyle: { | |
normal: { | |
opacity: 0.8, | |
shadowBlur: 10, | |
shadowOffsetX: 0, | |
shadowOffsetY: 0, | |
shadowColor: 'rgba(0, 0, 0, 0.5)' | |
} | |
}, | |
data: data2 | |
}, | |
{ | |
name: 'scatter3', | |
type: 'scatter', | |
itemStyle: { | |
normal: { | |
opacity: 0.8, | |
shadowBlur: 10, | |
shadowOffsetX: 0, | |
shadowOffsetY: 0, | |
shadowColor: 'rgba(0, 0, 0, 0.5)' | |
} | |
}, | |
data: data3 | |
} | |
] | |
}); | |
window.addEventListener('resize', function () { | |
chart.resize(); | |
}); | |
}); | |
</script> | |
<!-- OPACITY BAR --> | |
<script> | |
require(['echarts'], function (echarts) { | |
var main = document.getElementById('main2'); | |
if (!main) { | |
return; | |
} | |
var chart = echarts.init(main); | |
var xAxisData = []; | |
var data1 = []; | |
var data2 = []; | |
var data3 = []; | |
var data4 = []; | |
var DATA_MAX = 5.5; | |
for (var i = 0; i < 10; i++) { | |
xAxisData.push('类目' + i); | |
data1.push((Math.random() * DATA_MAX).toFixed(2)); | |
data2.push(-Math.random().toFixed(2)); | |
data3.push((Math.random() + 0.5).toFixed(2)); | |
data4.push((Math.random() + 0.3).toFixed(2)); | |
} | |
var labelStyle = { | |
normal: { | |
show: true, | |
position: 'outside', | |
textStyle: { | |
color: '#333' | |
} | |
} | |
}; | |
var itemStyle = { | |
normal: { | |
}, | |
emphasis: { | |
shadowBlur: 10, | |
shadowOffsetX: 0, | |
shadowOffsetY: 0, | |
shadowColor: 'rgba(0,0,0,0.5)' | |
} | |
}; | |
chart.setOption({ | |
legend: { | |
data: ['bar', 'bar2', 'bar3'], | |
align: 'left' | |
}, | |
toolbox: { | |
// y: 'bottom', | |
feature: { | |
magicType: { | |
type: ['line', 'bar', 'stack', 'tiled'] | |
}, | |
dataView: {} | |
} | |
}, | |
tooltip: {}, | |
xAxis: { | |
data: xAxisData, | |
axisLine: { | |
onZero: true | |
}, | |
splitLine: { | |
show: false | |
}, | |
splitArea: { | |
show: false | |
} | |
}, | |
yAxis: { | |
splitArea: { | |
show: false | |
}, | |
max: 6, | |
min: -2 | |
}, | |
visualMap: [ | |
{ | |
type: 'continuous', | |
right: 0, | |
itemWidth: 15, | |
bottom: 30, | |
dimension: 1, | |
calculable: true, | |
min: -2, | |
max: DATA_MAX, | |
precision: 2, | |
inRange: { | |
opacity: [1, 1] // Using opacity when label color specified | |
}, | |
controller: { | |
inRange: { | |
color: '#888' | |
}, | |
outOfRange: { | |
color: '#888' | |
} | |
}, | |
outOfRange: { | |
opacity: [0.2, 0.2] // Using opacity when label color specified | |
} | |
} | |
], | |
series: [ | |
{ | |
name: 'bar', | |
type: 'bar', | |
stack: 'one', | |
itemStyle: itemStyle, | |
label: labelStyle, | |
data: data1 | |
}, | |
{ | |
name: 'bar2', | |
type: 'bar', | |
stack: 'one', | |
itemStyle: itemStyle, | |
label: labelStyle, | |
data: data2 | |
}, | |
{ | |
name: 'bar3', | |
type: 'bar', | |
itemStyle: itemStyle, | |
label: labelStyle, | |
data: data3 | |
} | |
] | |
}); | |
window.addEventListener('resize', function () { | |
chart.resize(); | |
}); | |
}); | |
</script> | |
<!-- OPACITY SCATTER --> | |
<script type="text/javascript"> | |
require([ | |
'echarts' | |
], function (echarts) { | |
var main = document.getElementById('main3'); | |
if (!main) { | |
return; | |
} | |
var chart = echarts.init(main); | |
var data1 = []; | |
var symbolCount = 6; | |
for (var i = 0; i < 100; i++) { | |
data1.push([ | |
Math.random() * 5, | |
Math.random() * 4, | |
+(Math.random() * 20).toFixed(2), | |
Math.round(Math.random() * (symbolCount - 1)) | |
]); | |
} | |
chart.setOption({ | |
legend: { | |
data: ['scatter', 'scatter2', 'scatter3'] | |
}, | |
grid: { | |
top: 50, | |
bottom: 30 | |
}, | |
xAxis: { | |
type: 'value', | |
splitLine: { | |
show: false | |
} | |
}, | |
yAxis: { | |
type: 'value', | |
splitLine: { | |
show: false | |
} | |
}, | |
visualMap: [ | |
{ | |
type: 'piecewise', | |
splitNumber: 6, | |
left: 'right', | |
bottom: 30, | |
selectedMode: 'multiple', | |
dimension: 'value', | |
min: 0, | |
max: 24, | |
precision: 0, | |
inRange: { // visual for short cut | |
opacity: 1, | |
symbolSize: [15, 50] | |
}, | |
outOfRange: { | |
opacity: 0.3, | |
symbolSize: [15, 50] | |
} | |
} | |
], | |
series: [ | |
{ | |
name: 'scatter', | |
type: 'scatter', | |
itemStyle: { | |
normal: { | |
opacity: 0.8, | |
shadowBlur: 10, | |
shadowOffsetX: 0, | |
shadowOffsetY: 0, | |
shadowColor: 'rgba(0, 0, 0, 0.5)' | |
} | |
}, | |
label: { | |
normal: { | |
show: true, | |
formatter: '{@[2]}', | |
position: 'inside' | |
} | |
}, | |
data: data1 | |
} | |
] | |
}); | |
window.addEventListener('resize', function () { | |
chart.resize(); | |
}); | |
}); | |
</script> | |
<!-- OPACITY GRAPH --> | |
<script> | |
require([ | |
'echarts', | |
'extension/dataTool', | |
'./data/les-miserables.gexf', | |
'theme/vintage' | |
], function (echarts, dataTool, xml) { | |
var gexf = dataTool.gexf; | |
var main = document.getElementById('main4'); | |
if (!main) { | |
return; | |
} | |
var chart = echarts.init(main); | |
var graph = gexf.parse(xml); | |
var categories = []; | |
for (var i = 0; i < 9; i++) { | |
categories[i] = { | |
name: '类目' + i | |
}; | |
} | |
graph.nodes.forEach(function (node) { | |
delete node.itemStyle; | |
node.value = node.symbolSize; | |
node.label = { | |
normal: { | |
show: node.symbolSize > 30 | |
} | |
}; | |
node.category = node.attributes['modularity_class']; | |
}); | |
graph.links.forEach(function (link) { | |
delete link.lineStyle; | |
}); | |
var option = { | |
tooltip: {}, | |
legend: [{ | |
// selectedMode: 'single', | |
data: categories.map(function (a) { | |
return a.name; | |
}) | |
}], | |
visualMap: { | |
min: 0, | |
max: 100, | |
dimension: 0, | |
calculable: true, | |
inRange: { | |
opacity: 1, | |
symbolSize: [10, 100] | |
}, | |
outOfRange: { | |
opacity: 0.2, | |
symbolSize: [10, 100] | |
} | |
}, | |
animationDurationUpdate: 1500, | |
animationEasingUpdate: 'quinticInOut', | |
series : [ | |
{ | |
name: 'Les Miserables', | |
type: 'graph', | |
layout: 'none', | |
data: graph.nodes, | |
links: graph.links, | |
categories: categories, | |
roam: true, | |
label: { | |
normal: { | |
textStyle: { | |
color: '#333' | |
}, | |
position: 'right', | |
formatter: '{b}' | |
} | |
}, | |
lineStyle: { | |
normal: { | |
curveness: 0.3 | |
} | |
} | |
} | |
] | |
}; | |
chart.setOption(option); | |
}); | |
</script> | |
<!-- OPACITY HEATMAP --> | |
<script type="text/javascript"> | |
require([ | |
'echarts' | |
], function (echarts) { | |
var main = document.getElementById('main5'); | |
if (!main) { | |
return; | |
} | |
var chart = echarts.init(main, null, { | |
}); | |
var hours = ['12a', '1a', '2a', '3a', '4a', '5a', '6a', | |
'7a', '8a', '9a','10a','11a', | |
'12p', '1p', '2p', '3p', '4p', '5p', | |
'6p', '7p', '8p', '9p', '10p', '11p']; | |
var days = ['Saturday', 'Friday', 'Thursday', | |
'Wednesday', 'Tuesday', 'Monday', 'Sunday']; | |
var data = [[0,0,5],[0,1,1],[0,2,0],[0,3,0],[0,4,0],[0,5,0],[0,6,0],[0,7,0],[0,8,0],[0,9,0],[0,10,0],[0,11,2],[0,12,4],[0,13,1],[0,14,1],[0,15,3],[0,16,4],[0,17,6],[0,18,4],[0,19,4],[0,20,3],[0,21,3],[0,22,2],[0,23,5],[1,0,7],[1,1,0],[1,2,0],[1,3,0],[1,4,0],[1,5,0],[1,6,0],[1,7,0],[1,8,0],[1,9,0],[1,10,5],[1,11,2],[1,12,2],[1,13,6],[1,14,9],[1,15,11],[1,16,6],[1,17,7],[1,18,8],[1,19,12],[1,20,5],[1,21,5],[1,22,7],[1,23,2],[2,0,1],[2,1,1],[2,2,0],[2,3,0],[2,4,0],[2,5,0],[2,6,0],[2,7,0],[2,8,0],[2,9,0],[2,10,3],[2,11,2],[2,12,1],[2,13,9],[2,14,8],[2,15,10],[2,16,6],[2,17,5],[2,18,5],[2,19,5],[2,20,7],[2,21,4],[2,22,2],[2,23,4],[3,0,7],[3,1,3],[3,2,0],[3,3,0],[3,4,0],[3,5,0],[3,6,0],[3,7,0],[3,8,1],[3,9,0],[3,10,5],[3,11,4],[3,12,7],[3,13,14],[3,14,13],[3,15,12],[3,16,9],[3,17,5],[3,18,5],[3,19,10],[3,20,6],[3,21,4],[3,22,4],[3,23,1],[4,0,1],[4,1,3],[4,2,0],[4,3,0],[4,4,0],[4,5,1],[4,6,0],[4,7,0],[4,8,0],[4,9,2],[4,10,4],[4,11,4],[4,12,2],[4,13,4],[4,14,4],[4,15,14],[4,16,12],[4,17,1],[4,18,8],[4,19,5],[4,20,3],[4,21,7],[4,22,3],[4,23,0],[5,0,2],[5,1,1],[5,2,0],[5,3,3],[5,4,0],[5,5,0],[5,6,0],[5,7,0],[5,8,2],[5,9,0],[5,10,4],[5,11,1],[5,12,5],[5,13,10],[5,14,5],[5,15,7],[5,16,11],[5,17,6],[5,18,0],[5,19,5],[5,20,3],[5,21,4],[5,22,2],[5,23,0],[6,0,1],[6,1,0],[6,2,0],[6,3,0],[6,4,0],[6,5,0],[6,6,0],[6,7,0],[6,8,0],[6,9,0],[6,10,1],[6,11,0],[6,12,2],[6,13,1],[6,14,3],[6,15,4],[6,16,0],[6,17,0],[6,18,0],[6,19,0],[6,20,1],[6,21,2],[6,22,2],[6,23,6]]; | |
data = data.map(function (item) { | |
return [item[1], item[0], item[2] || '-']; | |
}); | |
option = { | |
backgroundColor: '#eee4ee', | |
tooltip: { | |
position: 'top' | |
}, | |
animation: false, | |
grid: { | |
height: '50%', | |
y: '10%' | |
}, | |
xAxis: { | |
type: 'category', | |
data: hours | |
}, | |
yAxis: { | |
type: 'category', | |
data: days | |
}, | |
visualMap: { | |
min: 1, | |
max: 10, | |
calculable: true, | |
range: [3, 6], | |
orient: 'horizontal', | |
left: 'center', | |
bottom: '15%' | |
}, | |
series: [{ | |
name: 'Punch Card', | |
type: 'heatmap', | |
data: data, | |
label: { | |
normal: { | |
show: true | |
} | |
}, | |
itemStyle: { | |
emphasis: { | |
shadowBlur: 10, | |
shadowColor: 'rgba(0, 0, 0, 0.5)' | |
} | |
} | |
}] | |
}; | |
chart.setOption(option); | |
}); | |
</script> | |
<!-- OPACITY HEATMAP --> | |
<script> | |
require([ | |
'echarts' | |
], function (echarts) { | |
var main = document.getElementById('main6'); | |
if (!main) { | |
return; | |
} | |
var chart = echarts.init(main); | |
chart.setOption({ | |
legend: { | |
data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'] | |
}, | |
tooltip: {}, | |
visualMap: { | |
type: 'continuous', | |
top: 'middle', | |
min: 0, | |
max: 700, | |
dimension: 1, | |
calculable: true, | |
inRange: { | |
color: ['yellow', 'green'] | |
} | |
}, | |
series: [{ | |
name: 'pie', | |
type: 'pie', | |
selectedMode: 'single', | |
selectedOffset: 30, | |
clockwise: true, | |
label: { | |
normal: { | |
textStyle: { | |
color: '#333' | |
} | |
} | |
}, | |
labelLine: { | |
normal: { | |
lineStyle: { | |
color: '#333' | |
} | |
} | |
}, | |
data:[ | |
{value: [335, 632], name:'直接访问'}, | |
{value: [310, 434], name:'邮件营销'}, | |
{value: [234, 233], name:'联盟广告'}, | |
{value: [135, 544], name:'视频广告'}, | |
{value: [1548, 381], name:'搜索引擎'} | |
] | |
}] | |
}); | |
}); | |
</script> | |
</body> | |
</html> |