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