|  | 
 | <!-- | 
 | 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="lib/testHelper.js"></script> | 
 |         <link rel="stylesheet" href="lib/reset.css" /> | 
 |     </head> | 
 |     <body> | 
 |         <div id="main0"></div> | 
 |         <div id="main1"></div> | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var xAxisData = []; | 
 |                 var data1 = []; | 
 |                 var data2 = []; | 
 |  | 
 |                 for (var i = 0; i < 10; i++) { | 
 |                     xAxisData.push('类目' + i); | 
 |                     data1.push(+Math.random().toFixed(2)); | 
 |                     data2.push(+Math.random().toFixed(2)); | 
 |                 } | 
 |  | 
 |                 // if (console && console.log) { | 
 |                 //     console.log(data1); | 
 |                 //     console.log(data2); | 
 |                 // } | 
 |  | 
 |                 var option = { | 
 |                     legend: { | 
 |                         data: ['line-stack', 'line2-stack', 'line3'] | 
 |                     }, | 
 |                     tooltip: { | 
 |                         trigger: 'axis', | 
 |                         axisPointer: { | 
 |                             type: 'line' | 
 |                         } | 
 |                     }, | 
 |                     xAxis: { | 
 |                         // data: ['类目1', '类目2', '类目3', '类目4', '类目5',] | 
 |                         data: xAxisData, | 
 |                         boundaryGap: false, | 
 |                         // inverse: true, | 
 |                         splitArea: { | 
 |                             show: true | 
 |                         } | 
 |                     }, | 
 |                     yAxis: { | 
 |                         splitLine: { | 
 |                             // show: false | 
 |                         } | 
 |                     }, | 
 |                     series: [ | 
 |                         { | 
 |                             name: 'line-stack', | 
 |                             type: 'line', | 
 |                             stack: 'all', | 
 |                             symbolSize: 6, | 
 |                             areaStyle: {normal: {}}, | 
 |                             data: data1, | 
 |                             emphasis: { | 
 |                                 focus: 'series' | 
 |                             }, | 
 |                             markPoint: { | 
 |                                 data: [ | 
 |                                     { | 
 |                                         name: '最大值', | 
 |                                         type: 'max', | 
 |                                         value: 1 | 
 |                                     }, | 
 |                                     { | 
 |                                         xAxis: '类目3', | 
 |                                         yAxis: 0.5, | 
 |                                         value: 2 | 
 |                                     } | 
 |                                 ] | 
 |                             } | 
 |                         }, | 
 |                         { | 
 |                             name: 'line2-stack', | 
 |                             type: 'line', | 
 |                             stack: 'all', | 
 |                             symbolSize: 6, | 
 |                             areaStyle: {normal: {}}, | 
 |                             data: data2, | 
 |  | 
 |                             markPoint: { | 
 |                                 label: { | 
 |                                     normal: { | 
 |                                         formatter: function (param) { | 
 |                                             return param.name + ' ' + param.value; | 
 |                                         }, | 
 |                                         textStyle: { | 
 |                                             color: '#000' | 
 |                                         }, | 
 |                                         position: 'top' | 
 |                                     } | 
 |                                 }, | 
 |                                 data: [ | 
 |                                     { | 
 |                                         name: '最小值stack', | 
 |                                         type: 'min', | 
 |                                         value: 1 | 
 |                                     }, | 
 |                                     { | 
 |                                         name: '最大值stack', | 
 |                                         type: 'max', | 
 |                                         value: 1 | 
 |                                     }, | 
 |                                     { | 
 |                                         name: '平均值stack', | 
 |                                         type: 'average', | 
 |                                         value: 1, | 
 |                                         // 覆盖series配置的symbolRotate | 
 |                                         symbolRotate: 45 | 
 |                                     } | 
 |                                 ], | 
 |                                 symbolRotate: function(value, params) { | 
 |                                     return ~~(Math.random() * 360); | 
 |                                 } | 
 |                             } | 
 |                         }, | 
 |                         { | 
 |                             name: 'line3', | 
 |                             type: 'line', | 
 |                             symbolSize: 6, | 
 |                             data: data2, | 
 |  | 
 |                             markPoint: { | 
 |                                 label: { | 
 |                                     normal: { | 
 |                                         formatter: function (param) { | 
 |                                             return param.name + ' ' + (param.value || ''); | 
 |                                         }, | 
 |                                         textStyle: { | 
 |                                             color: '#000' | 
 |                                         }, | 
 |                                         position: 'top' | 
 |                                     } | 
 |                                 }, | 
 |                                 data: [ | 
 |                                     { | 
 |                                         name: '任意屏幕位置', | 
 |                                         value: 111, | 
 |                                         extData: {a: 1, b:2}, | 
 |                                         x: 50, y: 100 | 
 |                                     }, | 
 |                                     { | 
 |                                         name: '000000000', | 
 |                                         coord: ['类目2', 0.6], | 
 |                                         value: 1 | 
 |                                     }, | 
 |                                     { | 
 |                                         name: '最小值', | 
 |                                         type: 'min', | 
 |                                         value: 1 | 
 |                                     }, | 
 |                                     { | 
 |                                         name: '最大值x', | 
 |                                         type: 'max', | 
 |                                         value: 1 | 
 |                                     }, | 
 |                                     { | 
 |                                         name: '最大值y', | 
 |                                         type: 'max', | 
 |                                         valueIndex: 0, | 
 |                                         value: 1 | 
 |                                     }, | 
 |                                     { | 
 |                                         name: '平均值', | 
 |                                         type: 'average', | 
 |                                         value: 1 | 
 |                                     }, | 
 |                                     { | 
 |                                         name: 'Y轴固定', | 
 |                                         xAxis: 'max', | 
 |                                         y: 100 | 
 |                                     } | 
 |                                 ] | 
 |                             } | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'main0', { | 
 |                     option: option | 
 |                 }); | 
 |  | 
 |                 chart.on('click', function (params) { | 
 |                     console.log(params, params.data); | 
 |                 }); | 
 |  | 
 |             }); | 
 |         </script> | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var option = { | 
 |                     title: { | 
 |                         text: 'Weather Statistics' | 
 |                     }, | 
 |                     tooltip: { | 
 |                         trigger: 'axis', | 
 |                         axisPointer: { | 
 |                             type: 'shadow' | 
 |                         } | 
 |                     }, | 
 |                     legend: { | 
 |                         data: ['City Alpha', 'City Beta', 'City Gamma'] | 
 |                     }, | 
 |                     grid: { | 
 |                         left: 100 | 
 |                     }, | 
 |                     xAxis: { | 
 |                         type: 'value', | 
 |                         name: 'Days', | 
 |                         axisLabel: { | 
 |                             formatter: '{value}' | 
 |                         } | 
 |                     }, | 
 |                     yAxis: { | 
 |                         type: 'category', | 
 |                         inverse: true, | 
 |                         data: ['Sunny', 'Cloudy', 'Showers'], | 
 |                         axisLabel: { | 
 |                             formatter: function (value) { | 
 |                                 return '{' + value + '| }\n{value|' + value + '}'; | 
 |                             }, | 
 |                             margin: 20, | 
 |                             rich: { | 
 |                                 value: { | 
 |                                     lineHeight: 30, | 
 |                                     align: 'center' | 
 |                                 }, | 
 |                                 Sunny: { | 
 |                                     height: 40, | 
 |                                     align: 'center', | 
 |                                     backgroundColor: { | 
 |                                         image: 'https://echarts.apache.org/examples/data/asset/img/weather/sunny_128.png' | 
 |                                     } | 
 |                                 }, | 
 |                                 Cloudy: { | 
 |                                     height: 40, | 
 |                                     align: 'center', | 
 |                                     backgroundColor: { | 
 |                                         image: 'https://echarts.apache.org/examples/data/asset/img/weather/cloudy_128.png' | 
 |                                     } | 
 |                                 }, | 
 |                                 Showers: { | 
 |                                     height: 40, | 
 |                                     align: 'center', | 
 |                                     backgroundColor: { | 
 |                                         image: 'https://echarts.apache.org/examples/data/asset/img/weather/showers_128.png' | 
 |                                     } | 
 |                                 } | 
 |                             } | 
 |                         } | 
 |                     }, | 
 |                     series: [ | 
 |                         { | 
 |                             name: 'City Alpha', | 
 |                             type: 'bar', | 
 |                             data: [165, 170, 30], | 
 |                             label: { | 
 |                                 show: true | 
 |                             }, | 
 |                             markPoint: { | 
 |                                 symbolSize: 0, | 
 |                                 emphasis: { | 
 |                                     disabled: true | 
 |                                 }, | 
 |                                 label: { | 
 |                                     formatter: '{a|{a}\n}{b|{b} }{c|{c}}', | 
 |                                     backgroundColor: 'rgb(242,242,242)', | 
 |                                     borderColor: '#aaa', | 
 |                                     borderWidth: 1, | 
 |                                     borderRadius: 4, | 
 |                                     padding: [4, 10], | 
 |                                     lineHeight: 26, | 
 |                                     // shadowBlur: 5, | 
 |                                     // shadowColor: '#000', | 
 |                                     // shadowOffsetX: 0, | 
 |                                     // shadowOffsetY: 1, | 
 |                                     position: 'right', | 
 |                                     distance: 20, | 
 |                                     rich: { | 
 |                                         a: { | 
 |                                             align: 'center', | 
 |                                             color: '#fff', | 
 |                                             fontSize: 18, | 
 |                                             textShadowBlur: 2, | 
 |                                             textShadowColor: '#000', | 
 |                                             textShadowOffsetX: 0, | 
 |                                             textShadowOffsetY: 1, | 
 |                                             textBorderColor: '#333', | 
 |                                             textBorderWidth: 2 | 
 |                                         }, | 
 |                                         b: { | 
 |                                             color: '#333' | 
 |                                         }, | 
 |                                         c: { | 
 |                                             color: '#ff8811', | 
 |                                             textBorderColor: '#000', | 
 |                                             textBorderWidth: 1, | 
 |                                             fontSize: 22 | 
 |                                         } | 
 |                                     } | 
 |                                 }, | 
 |                                 data: [ | 
 |                                     { type: 'max', name: 'max days: ' }, | 
 |                                     { type: 'min', name: 'min days: ' } | 
 |                                 ] | 
 |                             } | 
 |                         }, | 
 |                         { | 
 |                             name: 'City Beta', | 
 |                             type: 'bar', | 
 |                             label: { | 
 |                                 show: true | 
 |                             }, | 
 |                             data: [150, 105, 110], | 
 |                             markPoint: { | 
 |                                 label: { | 
 |                                     formatter(p) { | 
 |                                         console.log('seriesType:', p.seriesType, 'seriesName:', p.seriesName, 'seriesId:', p.seriesId); | 
 |                                         return `${p.name}\nThis is markPoint of the ${p.seriesType} series: ${p.seriesName}` | 
 |                                     } | 
 |                                 }, | 
 |                                 data: [ | 
 |                                     { | 
 |                                         name: '固定 x 像素位置', | 
 |                                         yAxis: 2, | 
 |                                         x: '70%' | 
 |                                     } | 
 |                                 ] | 
 |                             } | 
 |                         }, | 
 |                         { | 
 |                             name: 'City Gamma', | 
 |                             type: 'bar', | 
 |                             label: { | 
 |                                 show: true | 
 |                             }, | 
 |                             data: [220, 82, 63] | 
 |                         } | 
 |                     ] | 
 |                 } | 
 |                 var chart = testHelper.create(echarts, 'main1', { | 
 |                     option, | 
 |                     title: [ | 
 |                         '1. MarkPoint label formatter callback params should contains **`seriesName`**, **`seriesId`**, **`seriesType`**', | 
 |                         '2. **SHOULD NOT** display **`null`**' | 
 |                     ] | 
 |                 }) | 
 |             }) | 
 |         </script> | 
 |     </body> | 
 | </html> |