| <!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/testHelper.js"></script> | 
 |         <meta name="viewport" content="width=device-width, initial-scale=1" /> | 
 |         <link rel="stylesheet" href="lib/reset.css" /> | 
 |     </head> | 
 |     <body> | 
 |         <style> | 
 |             .test-title { | 
 |                 background: rgb(97, 17, 97); | 
 |             } | 
 |             .test-chart { | 
 |                 height: 400px; | 
 |             } | 
 |         </style> | 
 |  | 
 |  | 
 |         <div id="specify-dimensions"></div> | 
 |         <div id="key-columns"></div> | 
 |         <div id="category-no-encode-two-value-axis"></div> | 
 |         <div id="category-no-axis-data-multi"></div> | 
 |         <div id="category-no-encode-no-axis-data-single"></div> | 
 |         <div id="category-no-encode-has-axis-data"></div> | 
 |         <div id="category"></div> | 
 |         <div id="two-value-axes"></div> | 
 |         <div id="empty-data"></div> | 
 |         <div id="empty-source"></div> | 
 |         <div id="dynamic-category"></div> | 
 |         <div id="dynamic-time"></div> | 
 |         <div id="dimension-but-no-column1"></div> | 
 |         <div id="dimension-but-no-column2"></div> | 
 |         <div id="dimension-but-no-column3"></div> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             var keyColumnsDrink = { | 
 |                 'product': ['2012', '2013', '2014', '2015', '2016', '2017'], | 
 |                 'Matcha Latte': [41.1, 30.4, 65.1, 53.3, 83.8, 98.7], | 
 |                 'Milk Tea': [86.5, 92.1, 85.7, 83.1, 73.4, 55.1], | 
 |                 'Cheese Cocoa': [24.1, 67.2, 79.5, 86.4, 65.2, 82.5], | 
 |                 'Walnut Brownie': [55.2, 67.1, 69.2, 72.4, 53.9, 39.1] | 
 |             }; | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var source = [ | 
 |                     [21, 120, 220, 150, 320, 820], | 
 |                     [31, 132, 182, 232, 332, 932], | 
 |                     [41, 101, 191, 201, 301, 901], | 
 |                     [51, 134, 234, 154, 334, 934], | 
 |                     [61, 90, 290, 190, 309, 1290], | 
 |                     [71, 230, 330, 330, 330, 1330], | 
 |                     [81, 210, 310, 410, 320, 1320] | 
 |                 ]; | 
 |  | 
 |                 var option = { | 
 |                     legend: {}, | 
 |                     tooltip: {trigger: 'axis'}, | 
 |                     grid: {}, | 
 |                     xAxis: {}, | 
 |                     yAxis: {}, | 
 |                     dataZoom: [{}, {type: 'inside'}], | 
 |                     dataset: [{ | 
 |                         dimensions: ['G', 'H', 'I', 'Q', 'R'], | 
 |                         // sourceHeader: true, | 
 |                         source: source | 
 |                     }], | 
 |                     series: [ | 
 |                         {type:'scatter', label: {show: true, position: 'top', textBorderWidth: 2, textBorderColor: '#fff'}, dimensions: ['cccccccccc', 'ddddddddddd']}, | 
 |                         {type:'scatter', label: {show: true, position: 'top', textBorderWidth: 2, textBorderColor: '#fff'}}, | 
 |                         {type:'scatter', label: {show: true, position: 'top', textBorderWidth: 2, textBorderColor: '#fff'}, sourceHeader: true} | 
 |                     ] | 
 |                 }; | 
 |                 testHelper.create(echarts, 'specify-dimensions', { | 
 |                     title: 'speify dimensions', | 
 |                     dataTable: source, | 
 |                     option: option, | 
 |                     info: { | 
 |                         dimensions: option.dataset[0].dimensions, | 
 |                         serise: option.series | 
 |                     } | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var option = { | 
 |                     legend: {}, | 
 |                     tooltip: {trigger: 'axis'}, | 
 |                     grid: {}, | 
 |                     xAxis: {type: 'category'}, | 
 |                     yAxis: {}, | 
 |                     dataset: [{ | 
 |                         source: keyColumnsDrink | 
 |                     }], | 
 |                     series: [ | 
 |                         {type:'line'}, | 
 |                         {type:'line'}, | 
 |                         {type:'line'} | 
 |                     ] | 
 |                 }; | 
 |                 testHelper.create(echarts, 'key-columns', { | 
 |                     title: 'category: no encode declared, two value axis', | 
 |                     dataTable: keyColumnsDrink, | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var source = [ | 
 |                     [21, 120, 220, 150, 320, 820], | 
 |                     [21, 132, 182, 232, 332, 932], | 
 |                     [21, 101, 191, 201, 301, 901], | 
 |                     [21, 134, 234, 154, 334, 934], | 
 |                     [21, 90, 290, 190, 309, 1290], | 
 |                     [21, 230, 330, 330, 330, 1330], | 
 |                     [21, 210, 310, 410, 320, 1320] | 
 |                 ]; | 
 |                 var option = { | 
 |                     legend: { | 
 |                         data: ['A', 'B', 'C'] | 
 |                     }, | 
 |                     tooltip: {trigger: 'axis'}, | 
 |                     grid: { | 
 |                         left: '3%', | 
 |                         right: '4%', | 
 |                         bottom: '3%', | 
 |                         containLabel: true | 
 |                     }, | 
 |                     xAxis: {}, | 
 |                     yAxis: {}, | 
 |                     dataset: [{ | 
 |                         source: source | 
 |                     }], | 
 |                     series: [ | 
 |                         { | 
 |                             name:'A', | 
 |                             type:'line', | 
 |                         }, | 
 |                         { | 
 |                             name:'B', | 
 |                             type:'line', | 
 |                         }, | 
 |                         { | 
 |                             name:'C', | 
 |                             type:'line', | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |                 testHelper.create(echarts, 'category-no-encode-two-value-axis', { | 
 |                     title: 'category: no encode declared, two value axis', | 
 |                     option: option, | 
 |                     dataTable: source | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var source = [ | 
 |                     ['周一', 120, '苹果', 150, 320, 820], | 
 |                     ['周二', 132, '狸猫', 232, 332, 932], | 
 |                     ['周三', 101, '周一', 201, 301, 901], | 
 |                     ['周四', 134, '周八', 154, 334, 934], | 
 |                     ['周五', 90, '周六', 190, 309, 1290], | 
 |                     ['周六', 230, '-', 330, 330, 1330], | 
 |                     ['周日', 210, '周日', 410, 320, 1320] | 
 |                 ]; | 
 |                 var option = { | 
 |                     legend: { | 
 |                         data:[ | 
 |                             '{x: 0, y: 1}', | 
 |                             '{x: 2, y: 3}', | 
 |                             '{x: 2, y: 4}', | 
 |                             '{x: 1, y: 2}', | 
 |                             '{x: 2, y: 0}' | 
 |                         ] | 
 |                     }, | 
 |                     tooltip: {trigger: 'axis'}, | 
 |                     grid: { | 
 |                         bottom: 70 | 
 |                     }, | 
 |                     xAxis: [{ | 
 |                         type: 'category', | 
 |                         boundaryGap: false | 
 |                     }], | 
 |                     dataZoom: { | 
 |                         type: 'slider' | 
 |                     }, | 
 |                     yAxis: [{ | 
 |                         type: 'value' | 
 |                     }, { | 
 |                         type: 'category' | 
 |                     }], | 
 |                     dataset: [{ | 
 |                         source: source | 
 |                     }, { | 
 |                         source: [ | 
 |                             [122, '第二个 dataset', 44], | 
 |                             [56, '周六', 10], | 
 |                             [96, '狸猫', 112] | 
 |                         ] | 
 |                     }], | 
 |                     series: [ | 
 |                         { | 
 |                             name:'{x: 0, y: 1}', | 
 |                             type:'line', | 
 |                             encode: {x: 0, y: 1} | 
 |                         }, | 
 |                         { | 
 |                             name:'{x: 2, y: 3}', | 
 |                             type:'line', | 
 |                             encode: {x: 2, y: 3} | 
 |                         }, | 
 |                         { | 
 |                             name:'{x: 2, y: 4}', | 
 |                             type:'line', | 
 |                             encode: {x: 2, y: 4} | 
 |                         }, | 
 |                         { | 
 |                             name:'{x: 1, y: 2}', | 
 |                             type:'line', | 
 |                             encode: {x: 1, y: 2}, | 
 |                             datasetIndex: 1 | 
 |                         }, | 
 |                         { | 
 |                             name: '{x: 2, y: 0}', | 
 |                             type: 'scatter', | 
 |                             yAxisIndex: 1, | 
 |                             symbolSize: function (val) { | 
 |                                 return val[5] / 30; | 
 |                             }, | 
 |                             encode: {x: 2, y: 0} | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 testHelper.create(echarts, 'category-no-axis-data-multi', { | 
 |                     title: 'category: no axis.data, multi category', | 
 |                     dataTable: source, | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var source = [ | 
 |                     ['周一', 120, 220, 150, 320, 820], | 
 |                     ['周二', 132, 182, 232, 332, 932], | 
 |                     ['周三', 101, 191, 201, 301, 901], | 
 |                     ['周四', 134, 234, 154, 334, 934], | 
 |                     ['周五', 90, 290, 190, 309, 1290], | 
 |                     ['周六', 230, 330, 330, 330, 1330], | 
 |                     ['周日', 210, 310, 410, 320, 1320] | 
 |                 ]; | 
 |                 var option = { | 
 |                     legend: { | 
 |                         data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎'] | 
 |                     }, | 
 |                     tooltip: {trigger: 'axis'}, | 
 |                     grid: { | 
 |                         left: '3%', | 
 |                         right: '4%', | 
 |                         bottom: '3%', | 
 |                         containLabel: true | 
 |                     }, | 
 |                     xAxis: [ | 
 |                         { | 
 |                             type: 'category', | 
 |                             boundaryGap: false | 
 |                         } | 
 |                     ], | 
 |                     yAxis: [ | 
 |                         { | 
 |                             type: 'value' | 
 |                         } | 
 |                     ], | 
 |                     dataset: { | 
 |                         source: source | 
 |                     }, | 
 |                     series: [ | 
 |                         { | 
 |                             name:'邮件营销', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}} | 
 |                         }, | 
 |                         { | 
 |                             name:'联盟广告', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}} | 
 |                         }, | 
 |                         { | 
 |                             name:'视频广告', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}} | 
 |                         }, | 
 |                         { | 
 |                             name:'直接访问', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}} | 
 |                         }, | 
 |                         { | 
 |                             name:'搜索引擎', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             label: {show: true}, | 
 |                             areaStyle: {normal: {}} | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 testHelper.create(echarts, 'category-no-encode-no-axis-data-single', { | 
 |                     title: 'category: no encode declared, no axis.data, single category', | 
 |                     dataTable: source, | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var source = [ | 
 |                     ['周一', 120, 220, 150, 320, 820], | 
 |                     ['周二', 132, 182, 232, 332, 932], | 
 |                     ['周三', 101, 191, 201, 301, 901], | 
 |                     ['周四', 134, 234, 154, 334, 934], | 
 |                     ['周五', 90, 290, 190, 309, 1290], | 
 |                     ['周六', 230, 330, 330, 330, 1330], | 
 |                     ['周日', 210, 310, 410, 320, 1320] | 
 |                 ]; | 
 |                 var option = { | 
 |                     legend: { | 
 |                         data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎'] | 
 |                     }, | 
 |                     tooltip: {trigger: 'axis'}, | 
 |                     grid: { | 
 |                         left: '3%', | 
 |                         right: '4%', | 
 |                         bottom: '3%', | 
 |                         containLabel: true | 
 |                     }, | 
 |                     xAxis: [ | 
 |                         { | 
 |                             type: 'category', | 
 |                             boundaryGap: false, | 
 |                             data: ['周零', '周一', '周二', '周三', '周四', '周五', '周六', '周日'] | 
 |                         } | 
 |                     ], | 
 |                     yAxis: [ | 
 |                         { | 
 |                             type: 'value' | 
 |                         } | 
 |                     ], | 
 |                     dataset: { | 
 |                         source: source | 
 |                     }, | 
 |                     series: [ | 
 |                         { | 
 |                             name:'邮件营销', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}} | 
 |                         }, | 
 |                         { | 
 |                             name:'联盟广告', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}} | 
 |                         }, | 
 |                         { | 
 |                             name:'视频广告', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}} | 
 |                         }, | 
 |                         { | 
 |                             name:'直接访问', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}} | 
 |                         }, | 
 |                         { | 
 |                             name:'搜索引擎', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             label: {show: true}, | 
 |                             areaStyle: {normal: {}} | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |                 testHelper.create(echarts, 'category-no-encode-has-axis-data', { | 
 |                     title: 'category: no encode declared, axis.data given', | 
 |                     dataTable: source, | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var source = [ | 
 |                     ['周一', 120, 220, 150, 320, 820], | 
 |                     ['周二', 132, 182, 232, 332, 932], | 
 |                     ['周三', 101, 191, 201, 301, 901], | 
 |                     ['周四', 134, 234, 154, 334, 934], | 
 |                     ['周五', 90, 290, 190, 309, 1290], | 
 |                     ['周六', 230, 330, 330, 330, 1330], | 
 |                     ['周日', 210, 310, 410, 320, 1320] | 
 |                 ]; | 
 |                 var option = { | 
 |                     tooltip: { | 
 |                         trigger: 'axis', | 
 |                         axisPointer: { | 
 |                             type: 'cross', | 
 |                             label: { | 
 |                                 backgroundColor: '#6a7985' | 
 |                             } | 
 |                         } | 
 |                     }, | 
 |                     legend: { | 
 |                         data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎'] | 
 |                     }, | 
 |                     toolbox: { | 
 |                         feature: { | 
 |                             saveAsImage: {} | 
 |                         } | 
 |                     }, | 
 |                     grid: { | 
 |                         left: '3%', | 
 |                         right: '4%', | 
 |                         bottom: '3%', | 
 |                         containLabel: true | 
 |                     }, | 
 |                     xAxis: [ | 
 |                         { | 
 |                             type: 'category', | 
 |                             boundaryGap: false | 
 |                         } | 
 |                     ], | 
 |                     yAxis: [ | 
 |                         { | 
 |                             type: 'value' | 
 |                         } | 
 |                     ], | 
 |                     dataset: { | 
 |                         source: source | 
 |                     }, | 
 |                     series: [ | 
 |                         { | 
 |                             name:'邮件营销', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}}, | 
 |                             encode: {x: 0, y: 1} | 
 |                         }, | 
 |                         { | 
 |                             name:'联盟广告', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}}, | 
 |                             encode: {x: 0, y: 2} | 
 |                         }, | 
 |                         { | 
 |                             name:'视频广告', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}}, | 
 |                             encode: {x: 0, y: 3} | 
 |                         }, | 
 |                         { | 
 |                             name:'直接访问', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             areaStyle: {normal: {}}, | 
 |                             encode: {x: 0, y: 4} | 
 |                         }, | 
 |                         { | 
 |                             name:'搜索引擎', | 
 |                             type:'line', | 
 |                             stack: '总量', | 
 |                             label: { | 
 |                                 normal: { | 
 |                                     show: true, | 
 |                                     position: 'top' | 
 |                                 } | 
 |                             }, | 
 |                             areaStyle: {normal: {}}, | 
 |                             encode: {x: 0, y: 5} | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |                 testHelper.create(echarts, 'category', { | 
 |                     title: 'category: encode declared', | 
 |                     dataTable: source, | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var source = [ | 
 |                     ['周一', 120, 220, 150, 320, 820], | 
 |                     ['周二', 132, 182, 232, 332, 932], | 
 |                     ['周三', 101, 191, 201, 301, 901], | 
 |                     ['周四', 134, 234, 154, 334, 934], | 
 |                     ['周五', 90, 290, 190, 309, 1290], | 
 |                     ['周六', 230, 330, 330, 330, 1330], | 
 |                     ['周日', 210, 310, 410, 320, 1320] | 
 |                 ]; | 
 |                 var option = { | 
 |                     tooltip: { | 
 |                     }, | 
 |                     legend: { | 
 |                         data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎'] | 
 |                     }, | 
 |                     toolbox: { | 
 |                         feature: { | 
 |                             saveAsImage: {} | 
 |                         } | 
 |                     }, | 
 |                     grid: { | 
 |                         left: '3%', | 
 |                         right: '4%', | 
 |                         bottom: '3%', | 
 |                         containLabel: true | 
 |                     }, | 
 |                     xAxis: {}, | 
 |                     yAxis: {}, | 
 |                     grid: { | 
 |                         right: 50, | 
 |                         bottom: 70 | 
 |                     }, | 
 |                     legend: { | 
 |                         left: 'center', | 
 |                         data: ['A Series', 'B Series'] | 
 |                     }, | 
 |                     dataZoom: [{ | 
 |                         xAxisIndex: 0, | 
 |                         type: 'inside' | 
 |                     }, { | 
 |                         yAxisIndex: 0, | 
 |                         type: 'inside' | 
 |                     }, { | 
 |                         xAxisIndex: 0, | 
 |                         type: 'slider' | 
 |                     }, { | 
 |                         yAxisIndex: 0, | 
 |                         type: 'slider' | 
 |                     }], | 
 |                     dataset: { | 
 |                         source: source | 
 |                     }, | 
 |                     series: [ | 
 |                         { | 
 |                             name:'A Series', | 
 |                             type:'scatter', | 
 |                             areaStyle: {normal: {}}, | 
 |                             encode: {x: 2, y: 1} | 
 |                         }, | 
 |                         { | 
 |                             name:'B Series', | 
 |                             type:'scatter', | 
 |                             areaStyle: {normal: {}}, | 
 |                             encode: {x: 4, y: 1} | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |                 testHelper.create(echarts, 'two-value-axes', { | 
 |                     title: 'two value axes (A: {x: 2, y: 1}, B: {x: 4, y: 1})', | 
 |                     dataTable: source, | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |  | 
 |                 var option = { | 
 |                     xAxis: {}, | 
 |                     yAxis: {}, | 
 |                     series: [ | 
 |                         { | 
 |                             type:'line' | 
 |                         } | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 testHelper.create(echarts, 'empty-data', { | 
 |                     title: 'data and dataset undefined, only axis shown.', | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |  | 
 |                 var option = { | 
 |                     xAxis: {}, | 
 |                     yAxis: {}, | 
 |                     series: [ | 
 |                         { | 
 |                             type:'line' | 
 |                         } | 
 |                     ], | 
 |                     dataset: { | 
 |                         source: [] | 
 |                     } | 
 |                 }; | 
 |  | 
 |                 testHelper.create(echarts, 'empty-source', { | 
 |                     title: 'data.source = [], only axis shown.', | 
 |                     option: option | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var option = { | 
 |                     legend: {}, | 
 |                     tooltip: {trigger: 'axis'}, | 
 |                     xAxis: {type: 'category'}, | 
 |                     yAxis: {}, | 
 |                     series: [ | 
 |                         {type:'line', encode: {x: 'date', y: 'Matcha Latte', itemId: 'date'}}, | 
 |                         {type:'line', encode: {x: 'date', y: 'Milk Tea', itemId: 'date'}}, | 
 |                         {type:'line', encode: {x: 'date', y: 'Cheese Cocoa', itemId: 'date'}}, | 
 |                         {type:'line', encode: {x: 'date', y: 'Walnut Brownie', itemId: 'date'}} | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 var baseSource = [ | 
 |                     ['date', 'Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie'], | 
 |                     ['2012-03-01', 11.1, 40.4, 65.1, 13.3], | 
 |                     ['2012-03-02', 36.5, 52.1, 85.7, 23.1], | 
 |                     ['2012-03-03', 64.1, 17.2, 99.5, 16.4], | 
 |                     ['2012-03-04', 15.2, 77.1, 29.2, 62.4], | 
 |                     ['2012-03-05', 55.4, 73.1, 49.2, 22.9], | 
 |                     ['2012-03-06', 35.2, 27.1, 24.6, 92.7], | 
 |                     ['2012-03-07', 51.7, 57.1, 89.1, 69.2] | 
 |                 ]; | 
 |                 var lastDate = +echarts.number.parseDate('2012-03-07'); | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'dynamic-category', { | 
 |                     title: 'dynamic-category', | 
 |                     dataTable: keyColumnsDrink, | 
 |                     option: option, | 
 |                     info: baseSource | 
 |                 }); | 
 |  | 
 |                 if (chart) { | 
 |                     setInterval(function () { | 
 |                         lastDate += 3600 * 24 * 1000; | 
 |  | 
 |                         baseSource.push([ | 
 |                             echarts.format.formatTime('yyyy-MM-dd', lastDate), | 
 |                             +(Math.random() * 100).toFixed(1), | 
 |                             +(Math.random() * 100).toFixed(1), | 
 |                             +(Math.random() * 100).toFixed(1), | 
 |                             +(Math.random() * 100).toFixed(1) | 
 |                         ]); | 
 |  | 
 |                         baseSource.splice(1, 1); | 
 |  | 
 |                         chart.setOption({ | 
 |                             dataset: { | 
 |                                 source: baseSource | 
 |                             } | 
 |                         }); | 
 |                     }, 1000); | 
 |                 } | 
 |  | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |                 var option = { | 
 |                     legend: {}, | 
 |                     tooltip: {trigger: 'axis'}, | 
 |                     xAxis: {type: 'time'}, | 
 |                     yAxis: {}, | 
 |                     series: [ | 
 |                         {type:'line', encode: {x: 'date', y: 'Matcha Latte', itemId: 'date'}}, | 
 |                         {type:'line', encode: {x: 'date', y: 'Milk Tea', itemId: 'date'}}, | 
 |                         {type:'line', encode: {x: 'date', y: 'Cheese Cocoa', itemId: 'date'}}, | 
 |                         {type:'line', encode: {x: 'date', y: 'Walnut Brownie', itemId: 'date'}} | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 var baseSource = [ | 
 |                     ['date', 'Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie'], | 
 |                     ['2012-03-01', 11.1, 40.4, 65.1, 13.3], | 
 |                     ['2012-03-02', 36.5, 52.1, 85.7, 23.1], | 
 |                     ['2012-03-03', 64.1, 17.2, 99.5, 16.4], | 
 |                     ['2012-03-04', 15.2, 77.1, 29.2, 62.4], | 
 |                     ['2012-03-05', 55.4, 73.1, 49.2, 22.9], | 
 |                     ['2012-03-06', 35.2, 27.1, 24.6, 92.7], | 
 |                     ['2012-03-07', 51.7, 57.1, 89.1, 69.2] | 
 |                 ]; | 
 |                 var lastDate = +echarts.number.parseDate('2012-03-07'); | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'dynamic-time', { | 
 |                     title: 'dynamic-time', | 
 |                     dataTable: keyColumnsDrink, | 
 |                     option: option, | 
 |                     info: baseSource | 
 |                 }); | 
 |  | 
 |                 if (chart) { | 
 |                     setInterval(function () { | 
 |                         lastDate += 3600 * 24 * 1000; | 
 |  | 
 |                         baseSource.push([ | 
 |                             echarts.format.formatTime('yyyy-MM-dd', lastDate), | 
 |                             +(Math.random() * 100).toFixed(1), | 
 |                             +(Math.random() * 100).toFixed(1), | 
 |                             +(Math.random() * 100).toFixed(1), | 
 |                             +(Math.random() * 100).toFixed(1) | 
 |                         ]); | 
 |  | 
 |                         baseSource.splice(1, 1); | 
 |  | 
 |                         chart.setOption({ | 
 |                             dataset: { | 
 |                                 source: baseSource | 
 |                             } | 
 |                         }); | 
 |                     }, 1000); | 
 |                 } | 
 |  | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |  | 
 |                 var option = { | 
 |                     legend: {}, | 
 |                     tooltip: {}, | 
 |                     dataset: { | 
 |                         dimensions: ['product', '2015', '2016', '2017'], | 
 |                         source: [ | 
 |                             {product: 'Matcha Latte', '2015': 43.3, '2016': 85.8}, | 
 |                             {product: 'Milk Tea', '2015': 83.1, '2016': 73.4}, | 
 |                             {product: 'Cheese Cocoa', '2015': 86.4, '2016': 65.2}, | 
 |                             {product: 'Walnut Brownie', '2015': 72.4, '2016': 53.9} | 
 |                         ] | 
 |                     }, | 
 |                     xAxis: {type: 'category'}, | 
 |                     yAxis: {}, | 
 |                     series: [ | 
 |                         {type: 'bar'}, | 
 |                         {type: 'bar'} | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'dimension-but-no-column1', { | 
 |                     title: '[obejct array] No 2017, but chart should be rendered', | 
 |                     dataTable: option.dataset.source, | 
 |                     option: option, | 
 |                     info: option.dataset.dimensions, | 
 |                     infoKey: 'dimensions' | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |  | 
 |                 var option = { | 
 |                     legend: {}, | 
 |                     tooltip: {}, | 
 |                     dataset: { | 
 |                         dimensions: ['product', '2015', '2016', '2017'], | 
 |                         source: [ | 
 |                             ['Matcha Latte', 43.3, 85.8], | 
 |                             ['Milk Tea', 83.1, 73.4], | 
 |                             ['Cheese Cocoa', 86.4, 65.2], | 
 |                             ['Walnut Brownie', 72.4, 53.9] | 
 |                         ] | 
 |                     }, | 
 |                     xAxis: {type: 'category'}, | 
 |                     yAxis: {}, | 
 |                     series: [ | 
 |                         {type: 'bar'}, | 
 |                         {type: 'bar'} | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'dimension-but-no-column2', { | 
 |                     title: '[2d-array] No 2017, but chart should be rendered', | 
 |                     dataTable: option.dataset.source, | 
 |                     option: option, | 
 |                     info: option.dataset.dimensions, | 
 |                     infoKey: 'dimensions' | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |         <script> | 
 |             require([ | 
 |                 'echarts' | 
 |             ], function (echarts) { | 
 |  | 
 |                 var option = { | 
 |                     legend: {}, | 
 |                     tooltip: {}, | 
 |                     dataset: { | 
 |                         dimensions: ['product', '2015', '2016', '2017'], | 
 |                         source: { | 
 |                             'product': ['Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie'], | 
 |                             '2015': [43.3, 83.1, 86.4, 72.4], | 
 |                             '2016': [85.8, 73.4, 65.2, 53.9] | 
 |                         } | 
 |                     }, | 
 |                     xAxis: {type: 'category'}, | 
 |                     yAxis: {}, | 
 |                     series: [ | 
 |                         {type: 'bar'}, | 
 |                         {type: 'bar'} | 
 |                     ] | 
 |                 }; | 
 |  | 
 |                 var chart = testHelper.create(echarts, 'dimension-but-no-column3', { | 
 |                     title: '[key columns] No 2017, but chart should be rendered', | 
 |                     dataTable: option.dataset.source, | 
 |                     option: option, | 
 |                     info: option.dataset.dimensions, | 
 |                     infoKey: 'dimensions' | 
 |                 }); | 
 |             }); | 
 |         </script> | 
 |  | 
 |  | 
 |  | 
 |     </body> | 
 | </html> |