| <!DOCTYPE html> | |
| <!-- | |
| 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> | |
| <script src="lib/jquery.min.js"></script> | |
| <script src="lib/facePrint.js"></script> | |
| <script src="data/pie-texture.js"></script> | |
| <script src="data/symbols.js"></script> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <link rel="stylesheet" href="lib/reset.css"> | |
| </head> | |
| <body> | |
| <style> | |
| body { | |
| } | |
| .chart { | |
| position: relative; | |
| height: 500px; | |
| max-width: 1000px; | |
| margin: 0 auto; | |
| } | |
| h2 { | |
| text-align: center; | |
| font-size: 16px; | |
| line-height: 30px; | |
| font-weight: normal; | |
| background: #dde; | |
| margin: 0; | |
| } | |
| strong { | |
| color: #971f3c; | |
| } | |
| </style> | |
| <h2>repeatDirection | dynamic</h2> | |
| <div class="chart" id="paper-and-hill"></div> | |
| <h2>texture</h2> | |
| <div class="chart" id="texture"></div> | |
| <h2>horizontal | no clip | symbolOffset</h2> | |
| <div class="chart" id="velocity"></div> | |
| <h2>clip</h2> | |
| <div class="chart" id="clip"></div> | |
| <h2>dotted | gradient</h2> | |
| <div class="chart" id="dotted"></div> | |
| <script> | |
| function makeChart(id, option, cb) { | |
| require([ | |
| 'echarts' | |
| ], function (echarts) { | |
| if (typeof option === 'function') { | |
| option = option(echarts); | |
| } | |
| var main = document.getElementById(id); | |
| if (main) { | |
| var chartMain = document.createElement('div'); | |
| chartMain.style.cssText = 'height:100%'; | |
| main.appendChild(chartMain); | |
| var chart = echarts.init(chartMain); | |
| chart.setOption(option); | |
| window.addEventListener('resize', chart.resize); | |
| cb && cb(echarts, chart); | |
| } | |
| }); | |
| } | |
| </script> | |
| <script> | |
| makeChart('paper-and-hill', { | |
| backgroundColor: '#0f375f', | |
| tooltip: {}, | |
| legend: { | |
| data: ['all'], | |
| textStyle: {color: '#ddd'} | |
| }, | |
| xAxis: [{ | |
| data: ['圣诞节儿童愿望清单', '', '珠穆朗玛', '乞力马扎罗'], | |
| axisTick: {show: false}, | |
| axisLine: {show: false}, | |
| axisLabel: { | |
| margin: 20, | |
| textStyle: { | |
| color: '#ddd', | |
| fontSize: 14 | |
| } | |
| } | |
| }], | |
| yAxis: { | |
| splitLine: {show: false}, | |
| axisTick: {show: false}, | |
| axisLine: {show: false}, | |
| axisLabel: {show: false} | |
| }, | |
| markLine: { | |
| z: -1 | |
| }, | |
| animationEasing: 'elasticOut', | |
| series: [{ | |
| type: 'pictorialBar', | |
| name: 'all', | |
| hoverAnimation: true, | |
| label: { | |
| normal: { | |
| show: true, | |
| position: 'top', | |
| formatter: '{c} m', | |
| textStyle: { | |
| fontSize: 16, | |
| color: '#e54035' | |
| } | |
| } | |
| }, | |
| data: [{ | |
| value: 13000, | |
| symbol: imageSymbols.paper, | |
| symbolRepeat: true, | |
| symbolSize: ['130%', '20%'], | |
| symbolOffset: [0, 10], | |
| symbolMargin: '-30%', | |
| animationDelay: function (dataIndex, params) { | |
| return params.index * 30; | |
| } | |
| }, { | |
| value: '-', | |
| symbol: 'none', | |
| }, { | |
| value: 8844, | |
| symbol: 'image://./data/hill-Qomolangma.png', | |
| symbolSize: ['200%', '105%'], | |
| symbolPosition: 'end', | |
| z: 10 | |
| }, { | |
| value: 5895, | |
| symbol: 'image://./data/hill-Kilimanjaro.png', | |
| symbolSize: ['200%', '105%'], | |
| symbolPosition: 'end' | |
| }], | |
| markLine: { | |
| symbol: ['none', 'none'], | |
| label: { | |
| normal: {show: false} | |
| }, | |
| lineStyle: { | |
| normal: { | |
| color: '#e54035', | |
| width: 2 | |
| } | |
| }, | |
| data: [{ | |
| yAxis: 8844 | |
| }] | |
| } | |
| }, { | |
| name: 'all', | |
| type: 'pictorialBar', | |
| symbol: 'circle', | |
| itemStyle: { | |
| normal: { | |
| color: '#185491' | |
| } | |
| }, | |
| silent: true, | |
| symbolOffset: [0, '50%'], | |
| z: -10, | |
| data: [{ | |
| value: 1, | |
| symbolSize: ['150%', 50] | |
| }, { | |
| value: '-' | |
| }, { | |
| value: 1, | |
| symbolSize: ['200%', 50] | |
| }, { | |
| value: 1, | |
| symbolSize: ['200%', 50] | |
| }] | |
| }] | |
| }); | |
| </script> | |
| <script> | |
| var img = new Image(); | |
| img.src = window.pieTexture; | |
| makeChart('texture', { | |
| backgroundColor: '#13978b', | |
| tooltip: {}, | |
| xAxis: { | |
| data: ['a', 'b', 'c'], | |
| axisTick: {show: false} | |
| }, | |
| yAxis: { | |
| splitLine: {show: false}, | |
| axisTick: {show: false} | |
| }, | |
| animationEasing: 'elasticOut', | |
| series: [{ | |
| name: 'all', | |
| type: 'pictorialBar', | |
| barCategoryGap: '40%', | |
| label: { | |
| normal: { | |
| show: true, | |
| position: 'top', | |
| textStyle: { | |
| color: '#e54035' | |
| } | |
| } | |
| }, | |
| hoverAnimation: true, | |
| data: [{ | |
| value: 8844, | |
| symbol: 'circle', | |
| label: { | |
| normal: {formatter: 'symbolPatternSize: default'} | |
| }, | |
| itemStyle: { | |
| normal: { | |
| color: { | |
| image: img, | |
| repeat: 'repeat' | |
| } | |
| } | |
| } | |
| }, { | |
| value: 8844, | |
| symbol: 'path://M0,10 L10,10 L5,0 L0,10 z', | |
| label: { | |
| normal: {formatter: 'symbolPatternSize: 800'} | |
| }, | |
| symbolPatternSize: 800, | |
| itemStyle: { | |
| normal: { | |
| color: { | |
| image: img, | |
| repeat: 'repeat' | |
| } | |
| } | |
| } | |
| }, { | |
| value: 8844, | |
| symbol: 'path://M0,10 L10,10 L5,0 L0,10 z', | |
| label: { | |
| normal: {formatter: 'symbolPatternSize: 50'} | |
| }, | |
| symbolPatternSize: 50, | |
| itemStyle: { | |
| normal: { | |
| color: { | |
| image: img, | |
| repeat: 'repeat' | |
| } | |
| } | |
| } | |
| }] | |
| }] | |
| }); | |
| </script> | |
| <script> | |
| var rawData = [ | |
| {name: '驯鹿', velocity: 123, symbol: 'reindeer'}, | |
| {name: '火箭', velocity: 60, symbol: 'rocket'}, | |
| {name: '飞机', velocity: 25, symbol: 'plane'}, | |
| {name: '高铁', velocity: 18, symbol: 'train'}, | |
| {name: '轮船', velocity: 12, symbol: 'ship'}, | |
| {name: '汽车', velocity: 9, symbol: 'car'}, | |
| {name: '跑步', velocity: 2, symbol: 'run'}, | |
| {name: '步行', velocity: 1, symbol: 'walk'} | |
| ]; | |
| // 真实数据: | |
| // {name: '驯鹿', velocity: 4705882, symbol: 'reindeer'}, | |
| // {name: '火箭', velocity: 38880, symbol: 'thunder'}, | |
| // {name: '飞机', velocity: 1028, symbol: 'plane'}, | |
| // {name: '高铁', velocity: 300, symbol: 'train'}, | |
| // {name: '汽车', velocity: 60, symbol: 'car'}, | |
| // {name: '轮船', velocity: 30, symbol: 'ship'}, | |
| // {name: '跑步', velocity: 15, symbol: 'run'}, | |
| // {name: '步行', velocity: 5, symbol: 'walk'} | |
| makeChart('velocity', { | |
| tooltip: { | |
| trigger: 'axis', | |
| axisPointer: { | |
| type: 'none' | |
| } | |
| }, | |
| xAxis: { | |
| data: rawData.map(function (item) { | |
| return item.name; | |
| }), | |
| axisTick: {show: false}, | |
| axisLine: {show: false}, | |
| axisLabel: { | |
| textStyle: { | |
| color: '#e54035' | |
| } | |
| } | |
| }, | |
| yAxis: { | |
| splitLine: {show: false}, | |
| axisTick: {show: false}, | |
| axisLine: {show: false}, | |
| axisLabel: {show: false} | |
| }, | |
| color: ['#e54035'], | |
| series: [{ | |
| name: 'hill', | |
| type: 'pictorialBar', | |
| barCategoryGap: '-50%', | |
| symbol: 'path://M0,10 L10,10 L5,0 L0,10 z', | |
| itemStyle: { | |
| normal: { | |
| opacity: 0.5 | |
| }, | |
| emphasis: { | |
| opacity: 1 | |
| } | |
| }, | |
| data: rawData.map(function (item) { | |
| return item.velocity; | |
| }), | |
| z: 10 | |
| }, { | |
| name: 'glyph', | |
| type: 'pictorialBar', | |
| symbolPosition: 'end', | |
| symbolSize: [25, 25], | |
| symbolOffset: [0, -35], | |
| itemStyle: { | |
| emphasis: { | |
| color: 'green' | |
| } | |
| }, | |
| data: rawData.map(function (item) { | |
| return { | |
| value: item.velocity, | |
| symbol: pathSymbols[item.symbol] | |
| }; | |
| }) | |
| }] | |
| }); | |
| </script> | |
| <script> | |
| function getBodyImage(index) { | |
| return pathSymbols['body' + index]; | |
| } | |
| var bodyMax = 150; | |
| makeChart('clip', { | |
| tooltip: { | |
| }, | |
| legend: { | |
| data: ['typeA', 'typeB'], | |
| selectedMode: 'single' | |
| }, | |
| xAxis: { | |
| data: ['a', 'b', 'c', 'd', 'e'], | |
| axisTick: {show: false}, | |
| axisLine: {show: false}, | |
| axisLabel: { | |
| textStyle: { | |
| color: '#e54035' | |
| } | |
| } | |
| }, | |
| yAxis: { | |
| max: bodyMax, | |
| splitLine: {show: false} | |
| }, | |
| grid: { | |
| left: 'center', | |
| top: 100, | |
| width: 800, | |
| height: 230 | |
| }, | |
| series: [{ | |
| name: 'typeA', | |
| type: 'pictorialBar', | |
| symbolClip: true, | |
| symbolBoundingData: bodyMax, | |
| data: [{ | |
| value: 123, | |
| symbol: getBodyImage(0) | |
| }, { | |
| value: 34, | |
| symbol: getBodyImage(1) | |
| }, { | |
| value: 101, | |
| symbol: getBodyImage(2) | |
| }, { | |
| value: 89, | |
| symbol: getBodyImage(3) | |
| }, { | |
| value: 72, | |
| symbol: getBodyImage(4) | |
| }], | |
| z: 10 | |
| }, { | |
| name: 'typeB', | |
| type: 'pictorialBar', | |
| symbolClip: true, | |
| symbolBoundingData: bodyMax, | |
| data: [{ | |
| value: 12, | |
| symbol: getBodyImage(0) | |
| }, { | |
| value: 44, | |
| symbol: getBodyImage(1) | |
| }, { | |
| value: 131, | |
| symbol: getBodyImage(2) | |
| }, { | |
| value: 33, | |
| symbol: getBodyImage(3) | |
| }, { | |
| value: 142, | |
| symbol: getBodyImage(4) | |
| }], | |
| z: 10 | |
| }, { | |
| name: 'full', | |
| type: 'pictorialBar', | |
| symbolBoundingData: bodyMax, | |
| itemStyle: { | |
| normal: { | |
| color: '#ccc' | |
| } | |
| }, | |
| data: [{ | |
| value: 1, | |
| symbol: getBodyImage(0) | |
| }, { | |
| value: 1, | |
| symbol: getBodyImage(1) | |
| }, { | |
| value: 1, | |
| symbol: getBodyImage(2) | |
| }, { | |
| value: 1, | |
| symbol: getBodyImage(3) | |
| }, { | |
| value: 1, | |
| symbol: getBodyImage(4) | |
| }] | |
| }] | |
| }); | |
| </script> | |
| <script> | |
| makeChart('dotted', function (echarts) { | |
| var bgColor = '#0f375f'; | |
| var category = []; | |
| var count = 20; | |
| var dottedBase = +new Date(); | |
| var lineData = []; | |
| var barData = []; | |
| for (var i = 0; i < count; i++) { | |
| var date = new Date(dottedBase + 3600 * 24); | |
| category.push([ | |
| date.getFullYear(), | |
| date.getMonth() + 1, | |
| date.getDate() | |
| ].join('-')); | |
| var b = Math.random() * 200; | |
| var d = Math.random() * 200; | |
| barData.push(b) | |
| lineData.push(d + b); | |
| } | |
| return { | |
| backgroundColor: bgColor, | |
| tooltip: { | |
| }, | |
| legend: { | |
| data: ['line', 'bar'], | |
| textStyle: { | |
| color: '#ccc' | |
| } | |
| }, | |
| xAxis: { | |
| data: category, | |
| axisLine: { | |
| lineStyle: { | |
| color: '#ccc' | |
| } | |
| } | |
| }, | |
| yAxis: { | |
| splitLine: {show: false}, | |
| axisLine: { | |
| lineStyle: { | |
| color: '#ccc' | |
| } | |
| } | |
| }, | |
| series: [{ | |
| name: 'line', | |
| type: 'line', | |
| smooth: true, | |
| showAllSymbol: true, | |
| symbol: 'emptyCircle', | |
| symbolSize: 15, | |
| data: lineData | |
| }, { | |
| name: 'bar', | |
| type: 'bar', | |
| barWidth: 10, | |
| itemStyle: { | |
| normal: { | |
| barBorderRadius: 5, | |
| color: { | |
| type: 'linear', | |
| x: 0, | |
| y: 0, | |
| x2: 0, | |
| y2: 1, | |
| colorStops: [ | |
| {offset: 0, color: '#14c8d4'}, | |
| {offset: 1, color: '#43eec6'} | |
| ] | |
| } | |
| } | |
| }, | |
| data: barData | |
| }, { | |
| name: 'line', | |
| type: 'bar', | |
| barWidth: 10, | |
| barGap: '-100%', | |
| itemStyle: { | |
| normal: { | |
| color: new echarts.graphic.LinearGradient( | |
| 0, 0, 0, 1, | |
| [ | |
| {offset: 0, color: 'rgba(20,200,212,0.5)'}, | |
| {offset: 0.2, color: 'rgba(20,200,212,0.2)'}, | |
| {offset: 1, color: 'rgba(20,200,212,0)'} | |
| ] | |
| ) | |
| } | |
| }, | |
| z: -12, | |
| data: lineData | |
| }, { | |
| name: 'dotted', | |
| type: 'pictorialBar', | |
| symbol: 'rect', | |
| itemStyle: { | |
| normal: { | |
| color: bgColor | |
| } | |
| }, | |
| symbolRepeat: true, | |
| symbolSize: [12, 4], | |
| symbolMargin: 1, | |
| z: -10, | |
| data: lineData | |
| }] | |
| }; | |
| }); | |
| </script> | |
| </body> | |
| </html> |