WIP: add more ts examples
diff --git a/public/examples/ts/funnel-customize.ts b/public/examples/ts/funnel-customize.ts
new file mode 100644
index 0000000..229ae83
--- /dev/null
+++ b/public/examples/ts/funnel-customize.ts
@@ -0,0 +1,89 @@
+/*
+title: Customized Funnel
+category: funnel
+titleCN: 漏斗图
+*/
+
+option = {
+ title: {
+ text: 'Funnel'
+ },
+ tooltip: {
+ trigger: 'item',
+ formatter: "{a} <br/>{b} : {c}%"
+ },
+ toolbox: {
+ feature: {
+ dataView: {readOnly: false},
+ restore: {},
+ saveAsImage: {}
+ }
+ },
+ legend: {
+ data: ['Show','Click','Visit','Inquiry','Order']
+ },
+ series: [
+ {
+ name: 'Expected',
+ type: 'funnel',
+ left: '10%',
+ width: '80%',
+ label: {
+ formatter: '{b}Expected'
+ },
+ labelLine: {
+ show: false
+ },
+ itemStyle: {
+ opacity: 0.7
+ },
+ emphasis: {
+ label: {
+ position: 'inside',
+ formatter: '{b}Expected: {c}%'
+ }
+ },
+ data: [
+ {value: 60, name: 'Visit'},
+ {value: 40, name: 'Inquiry'},
+ {value: 20, name: 'Order'},
+ {value: 80, name: 'Click'},
+ {value: 100, name: 'Show'}
+ ]
+ },
+ {
+ name: 'Actual',
+ type: 'funnel',
+ left: '10%',
+ width: '80%',
+ maxSize: '80%',
+ label: {
+ position: 'inside',
+ formatter: '{c}%',
+ color: '#fff'
+ },
+ itemStyle: {
+ opacity: 0.5,
+ borderColor: '#fff',
+ borderWidth: 2
+ },
+ emphasis: {
+ label: {
+ position: 'inside',
+ formatter: '{b}Actual: {c}%'
+ }
+ },
+ data: [
+ {value: 30, name: 'Visit'},
+ {value: 10, name: 'Inquiry'},
+ {value: 5, name: 'Order'},
+ {value: 50, name: 'Click'},
+ {value: 80, name: 'Show'}
+ ],
+ // Ensure outer shape will not be over inner shape when hover.
+ z: 100
+ }
+ ]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/funnel-mutiple.ts b/public/examples/ts/funnel-mutiple.ts
new file mode 100644
index 0000000..6b5b9f6
--- /dev/null
+++ b/public/examples/ts/funnel-mutiple.ts
@@ -0,0 +1,104 @@
+/*
+title: Multiple Funnels
+category: funnel
+titleCN: Funnel
+*/
+
+option = {
+ title: {
+ text: 'Funnel',
+ left: 'left',
+ top: 'bottom'
+ },
+ tooltip: {
+ trigger: 'item',
+ formatter: '{a} <br/>{b} : {c}%'
+ },
+ toolbox: {
+ orient: 'vertical',
+ top: 'center',
+ feature: {
+ dataView: {readOnly: false},
+ restore: {},
+ saveAsImage: {}
+ }
+ },
+ legend: {
+ orient: 'vertical',
+ left: 'left',
+ data: ['Show', 'Click', 'Visit', 'Inquiry', 'Order']
+ },
+
+ series: [
+ {
+ name: 'Funnel',
+ type: 'funnel',
+ width: '40%',
+ height: '45%',
+ left: '5%',
+ top: '50%',
+ data: [
+ {value: 60, name: 'Visit'},
+ {value: 30, name: 'Inquiry'},
+ {value: 10, name: 'Order'},
+ {value: 80, name: 'Click'},
+ {value: 100, name: 'Show'}
+ ]
+ },
+ {
+ name: 'Pyramid',
+ type: 'funnel',
+ width: '40%',
+ height: '45%',
+ left: '5%',
+ top: '5%',
+ sort: 'ascending',
+ data: [
+ {value: 60, name: 'Visit'},
+ {value: 30, name: 'Inquiry'},
+ {value: 10, name: 'Order'},
+ {value: 80, name: 'Click'},
+ {value: 100, name: 'Show'}
+ ]
+ },
+ {
+ name: 'Funnel',
+ type: 'funnel',
+ width: '40%',
+ height: '45%',
+ left: '55%',
+ top: '5%',
+ label: {
+ position: 'left'
+ },
+ data: [
+ {value: 60, name: 'Visit'},
+ {value: 30, name: 'Inquiry'},
+ {value: 10, name: 'Order'},
+ {value: 80, name: 'Click'},
+ {value: 100, name: 'Show'}
+ ]
+ },
+ {
+ name: 'Pyramid',
+ type: 'funnel',
+ width: '40%',
+ height: '45%',
+ left: '55%',
+ top: '50%',
+ sort: 'ascending',
+ label: {
+ position: 'left'
+ },
+ data: [
+ {value: 60, name: 'Visit'},
+ {value: 30, name: 'Inquiry'},
+ {value: 10, name: 'Order'},
+ {value: 80, name: 'Click'},
+ {value: 100, name: 'Show'}
+ ]
+ }
+ ]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/funnel.ts b/public/examples/ts/funnel.ts
new file mode 100644
index 0000000..f31dee6
--- /dev/null
+++ b/public/examples/ts/funnel.ts
@@ -0,0 +1,69 @@
+/*
+title: Funnel Chart
+category: funnel
+titleCN: 漏斗图
+*/
+
+option = {
+ title: {
+ text: 'Funnel'
+ },
+ tooltip: {
+ trigger: 'item',
+ formatter: "{a} <br/>{b} : {c}%"
+ },
+ toolbox: {
+ feature: {
+ dataView: {readOnly: false},
+ restore: {},
+ saveAsImage: {}
+ }
+ },
+ legend: {
+ data: ['Show','Click','Visit','Inquiry','Order']
+ },
+
+ series: [
+ {
+ name:'Funnel',
+ type:'funnel',
+ left: '10%',
+ top: 60,
+ bottom: 60,
+ width: '80%',
+ min: 0,
+ max: 100,
+ minSize: '0%',
+ maxSize: '100%',
+ sort: 'descending',
+ gap: 2,
+ label: {
+ show: true,
+ position: 'inside'
+ },
+ labelLine: {
+ length: 10,
+ lineStyle: {
+ width: 1,
+ type: 'solid'
+ }
+ },
+ itemStyle: {
+ borderColor: '#fff',
+ borderWidth: 1
+ },
+ emphasis: {
+ label: {
+ fontSize: 20
+ }
+ },
+ data: [
+ {value: 60, name: 'Visit'},
+ {value: 40, name: 'Inquiry'},
+ {value: 20, name: 'Order'},
+ {value: 80, name: 'Click'},
+ {value: 100, name: 'Show'}
+ ]
+ }
+ ]
+};
diff --git a/public/examples/ts/gauge-barometer.ts b/public/examples/ts/gauge-barometer.ts
new file mode 100644
index 0000000..167c818
--- /dev/null
+++ b/public/examples/ts/gauge-barometer.ts
@@ -0,0 +1,129 @@
+/*
+title: Gauge Barometer chart
+titleCN: 气压表
+category: gauge
+difficulty: 6
+*/
+
+option = {
+ series: [{
+ type: 'gauge',
+ min: 0,
+ max: 100,
+ splitNumber: 10,
+ radius: '80%',
+ axisLine: {
+ lineStyle: {
+ color: [
+ [1, '#f00']
+ ],
+ width: 3
+ }
+ },
+ splitLine: {
+ distance: -18,
+ length: 18,
+ lineStyle: {
+ color: '#f00'
+ }
+ },
+ axisTick: {
+ distance: -12,
+ length: 10,
+ lineStyle: {
+ color: '#f00'
+ }
+ },
+ axisLabel: {
+ distance: -50,
+ color: '#f00',
+ fontSize: 25
+ },
+ anchor: {
+ show: true,
+ size: 20,
+ itemStyle: {
+ borderColor: '#000',
+ borderWidth: 2
+ }
+ },
+ pointer: {
+ offsetCenter: [0, '10%'],
+ icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z',
+ length: '115%',
+ itemStyle: {
+ color: '#000'
+ }
+ },
+ detail: {
+ valueAnimation: true,
+ precision: 1
+ },
+ title: {
+ offsetCenter: [0, '-50%']
+ },
+ data: [{
+ value: 58.46,
+ name: 'PLP低压计'
+ }]
+ },
+ {
+ type: 'gauge',
+ min: 0,
+ max: 60,
+ splitNumber: 6,
+ axisLine: {
+ lineStyle: {
+ color: [
+ [1, '#000']
+ ],
+ width: 3
+ }
+ },
+ splitLine: {
+ distance: -3,
+ length: 18,
+ lineStyle: {
+ color: '#000'
+ }
+ },
+ axisTick: {
+ distance: 0,
+ length: 10,
+ lineStyle: {
+ color: '#000'
+ }
+ },
+ axisLabel: {
+ distance: 10,
+ fontSize: 25,
+ color: '#000'
+ },
+ pointer: {
+ show: false
+ },
+ title: {
+ show: false
+ },
+ anchor: {
+ show: true,
+ size: 14,
+ itemStyle: {
+ color: '#000'
+ }
+ }
+ }]
+};
+setInterval(function () {
+ myChart.setOption<echarts.EChartsOption>({
+ series: [{
+ type: 'gauge',
+ data: [{
+ value: +(Math.random() * 100).toFixed(2),
+ name: 'PLP低压计'
+ }]
+ }]
+ });
+}, 2000);
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge-car.ts b/public/examples/ts/gauge-car.ts
new file mode 100644
index 0000000..5fad2f8
--- /dev/null
+++ b/public/examples/ts/gauge-car.ts
@@ -0,0 +1,515 @@
+/*
+title: Gauge Car
+category: gauge
+titleCN: Gauge Car
+difficulty: 8
+*/
+
+option = {
+ backgroundColor: '#000',
+ tooltip: {
+ formatter: '{a} <br/>{b} : {c}%'
+ },
+ toolbox: {
+ feature: {
+ restore: {},
+ saveAsImage: {}
+ }
+ },
+ series: [
+ // left
+ {
+ name: 'gauge 0',
+ type: 'gauge',
+ min: -200,
+ max: 250,
+ startAngle: -30,
+ endAngle: -315,
+ splitNumber: 9,
+ radius: '35%',
+ center: ['21%', '55%'],
+ axisLine: {
+ lineStyle: {
+ color: [
+ [1, '#AE96A6']
+ ],
+ }
+ },
+ splitLine: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ show: false
+ },
+ anchor: {},
+ pointer: {
+ show: false
+ },
+ detail: {
+ show: false
+ },
+ title: {
+ fontSize: 12,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ color: '#fff',
+ offsetCenter: [0, '-60%']
+ },
+ progress: {
+ show: true,
+ width: 3,
+ itemStyle: {
+ color: '#fff'
+ }
+ },
+ data: [{
+ value: 250,
+ name: 'km/h'
+ }]
+ },
+ {
+ name: 'gauge 1',
+ type: 'gauge',
+ min: 0,
+ max: 250,
+ startAngle: -140,
+ endAngle: -305,
+ splitNumber: 5,
+ radius: '35%',
+ center: ['21%', '55%'],
+ axisLine: {
+ lineStyle: {
+ color: [
+ [1, '#AE96A6']
+ ],
+ }
+ },
+ splitLine: {
+ distance: -7,
+ length: 12,
+ lineStyle: {
+ color: '#fff',
+ width: 4
+ }
+ },
+ axisTick: {
+ distance: -8,
+ length: 8,
+ lineStyle: {
+ color: '#fff',
+ width: 2
+ }
+ },
+ axisLabel: {
+ distance: 14,
+ fontSize: 18,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ color: '#fff'
+ },
+ anchor: {},
+ pointer: {
+ icon: 'path://M-36.5,23.9L-41,4.4c-0.1-0.4-0.4-0.7-0.7-0.7c-0.5-0.1-1.1,0.2-1.2,0.7l-4.5,19.5c0,0.1,0,0.1,0,0.2v92.3c0,0.6,0.4,1,1,1h9c0.6,0,1-0.4,1-1V24.1C-36.5,24-36.5,23.9-36.5,23.9z M-39.5,114.6h-5v-85h5V114.6z',
+ width: 5,
+ length: '40%',
+ offsetCenter: [0, '-58%'],
+ itemStyle: {
+ color: '#f00',
+ shadowColor: 'rgba(255, 0, 0)',
+ shadowBlur: 5,
+ shadowOffsetY: 2
+ }
+ },
+ title: {
+ color: '#fff',
+ fontSize: 14,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ offsetCenter: [0, 0]
+ },
+ detail: {
+ show: false
+ },
+ data: [{
+ value: 0,
+ name: '当前位置:\n \n 中科路'
+ }]
+ },
+ // middle
+ {
+ name: 'gauge 2',
+ type: 'gauge',
+ min: 0,
+ max: 8,
+ z: 10,
+ startAngle: 210,
+ endAngle: -30,
+ splitNumber: 8,
+ radius: '50%',
+ center: ['50%', '50%'],
+ axisLine: {
+ show: true,
+ lineStyle: {
+ width: 0,
+ color: [
+ [0.825, '#fff'],
+ [1, '#f00']
+ ]
+ }
+ },
+ splitLine: {
+ distance: 20,
+ length: 15,
+ lineStyle: {
+ color: 'auto',
+ width: 4,
+ shadowColor: 'rgba(255, 255, 255, 0.5)',
+ shadowBlur: 15,
+ shadowOffsetY: -10
+ }
+ },
+ axisTick: {
+ distance: 20,
+ length: 8,
+ lineStyle: {
+ color: 'auto',
+ width: 2,
+ shadowColor: 'rgba(255, 255, 255)',
+ shadowBlur: 10,
+ shadowOffsetY: -10,
+ }
+ },
+ axisLabel: {
+ distance: 10,
+ fontSize: 35,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ color: '#fff'
+ },
+ anchor: {},
+ pointer: {
+ icon: 'path://M-36.5,23.9L-41,4.4c-0.1-0.4-0.4-0.7-0.7-0.7c-0.5-0.1-1.1,0.2-1.2,0.7l-4.5,19.5c0,0.1,0,0.1,0,0.2v92.3c0,0.6,0.4,1,1,1h9c0.6,0,1-0.4,1-1V24.1C-36.5,24-36.5,23.9-36.5,23.9z M-39.5,114.6h-5v-85h5V114.6z',
+ width: 10,
+ offsetCenter: [0, '-10%'],
+ length: '75%',
+ itemStyle: {
+ color: '#f00',
+ shadowColor: 'rgba(255, 0, 0)',
+ shadowBlur: 5,
+ shadowOffsetY: 3
+ }
+ },
+ title: {
+ color: '#fff',
+ fontSize: 12,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ offsetCenter: [0, '-50%']
+ },
+ data: [{
+ value: 0.6,
+ name: '1/min x 1000'
+ }],
+ detail: {
+ show: false
+ }
+ },
+ {
+ name: 'gauge 3',
+ type: 'gauge',
+ min: 0,
+ max: 8,
+ z: 10,
+ splitNumber: 8,
+ radius: '50%',
+ axisLine: {
+ lineStyle: {
+ width: 14,
+ color: [
+ [1, '#000']
+ ],
+ }
+ },
+ splitLine: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ show: false
+ },
+ anchor: {},
+ pointer: {
+ show: false
+ },
+ title: {
+ show: false
+ },
+ detail: {
+ offsetCenter: ['25%', '50%'],
+ formatter: '{a|{value}}{b|km/h}',
+ rich: {
+ a: {
+ fontSize: 60,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ color: '#fff',
+ align: 'center',
+ padding: [0, 5, 0, 0]
+ },
+ b: {
+ fontSize: 14,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ color: '#fff',
+ padding: [0, 0, 20, 0]
+ }
+ }
+ },
+ // value is speed
+ data: [{
+ value: 0,
+ name: ''
+ }]
+ },
+ // right
+ {
+ name: 'gauge 4',
+ type: 'gauge',
+ min: 0,
+ max: 8,
+ startAngle: 135,
+ endAngle: -150,
+ splitNumber: 8,
+ radius: '35%',
+ center: ['79%', '55%'],
+ axisLine: {
+ lineStyle: {
+ color: [
+ [1, '#AE96A6']
+ ],
+ }
+ },
+ splitLine: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ show: false
+ },
+ anchor: {},
+ pointer: {
+ show: false
+ },
+ title: {},
+ detail: {
+ offsetCenter: ['-15%', 0],
+ formatter: [
+ '{a| 00:00}',
+ '{a|行驶时间 0:00}{b| h}',
+ '{a|行驶距离 0.0}{b| km}',
+ '{a|平均耗能 ---}{b| 1/100km}',
+ '{a|平均速度 ---}{b| km/h}'
+ ].join('\n'),
+ rich: {
+ a: {
+ fontSize: 14,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ lineHeight: 22,
+ color: '#fff',
+ align: 'left'
+ },
+ b: {
+ fontWeight: 600,
+ fontFamily: "Arial",
+ lineHeight: 22,
+ color: '#fff',
+ align: 'left'
+ }
+ }
+ },
+ progress: {
+ show: true,
+ width: 3,
+ itemStyle: {
+ color: '#fff'
+ }
+ },
+ data: [{
+ value: 250,
+ name: ''
+ }]
+ },
+ {
+ name: 'gauge 5',
+ type: 'gauge',
+ min: 0,
+ max: 1,
+ startAngle: 125,
+ endAngle: 55,
+ splitNumber: 2,
+ radius: '34%',
+ center: ['79%', '55.3%'],
+ axisLine: {
+ lineStyle: {
+ width: 9,
+ color: [
+ [0.15, '#f00'],
+ [1, 'rgba(255, 0, 0, 0)']
+ ],
+ }
+ },
+ splitLine: {
+ distance: -14,
+ length: 16,
+ lineStyle: {
+ color: '#fff',
+ width: 4
+ }
+ },
+ axisTick: {
+ distance: -14,
+ length: 10,
+ lineStyle: {
+ color: '#fff',
+ width: 2
+ }
+ },
+ axisLabel: {
+ distance: 12,
+ fontSize: 18,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ color: '#fff',
+ formatter: function(value) {
+ if (value === 0.5) {
+ return '2/4';
+ }
+ if (value === 1) {
+ return '4/4';
+ }
+ return value;
+ }
+ },
+ progress: {
+ show: true,
+ width: 5,
+ itemStyle: {
+ color: '#fff'
+ }
+ },
+ anchor: {
+ show: true,
+ itemStyle: {},
+ offsetCenter: ['-22%', '-57%'],
+ size: 18,
+ icon: 'path://M1.11979167,1.11111112 C1.11979167,0.497461393 1.61725306,0 2.23090279,0 L12.2309028,0 C12.8445525,1.43824153e-08 13.3420139,0.497461403 13.3420139,1.11111112 L13.3420139,10 L15.5642361,10 C16.7915356,10 17.7864583,10.9949228 17.7864583,12.2222222 L17.7864583,16.6666667 C17.7865523,17.28025 18.2839861,17.7776077 18.8975694,17.7776077 C19.5111527,17.7776077 20.0085866,17.28025 20.0086805,16.6666667 L20.0086805,8.88888888 L17.7864583,8.88888888 C17.1728086,8.88888888 16.6753472,8.3914275 16.6753472,7.77777779 L16.6753472,3.79333333 L15.6197917,2.73777777 C15.1859413,2.30392741 15.1859413,1.60051702 15.6197917,1.16666667 L15.6197917,1.16666667 C16.053642,0.732816318 16.7570524,0.732816318 17.1909028,1.16666667 L21.9053472,5.88111112 C22.1140468,6.08922811 22.2312072,6.37193273 22.2309028,6.66666667 L22.2309028,16.6666667 C22.2309028,18.5076158 20.7385186,20 18.8975695,20 C17.0566203,20 15.5642361,18.5076158 15.5642361,16.6666667 L15.5642361,12.2222222 L13.3420139,12.2222222 L13.3420139,17.7777778 L13.3420139,17.7777778 C13.9556636,17.7777778 14.453125,18.2752392 14.453125,18.8888889 L14.453125,18.8888889 C14.453125,19.5025386 13.9556636,20 13.3420139,20 L1.11979165,20 C0.506141934,20 0.00868054688,19.5025386 0.00868054687,18.8888889 L0.00868054687,18.8888889 C0.00868054688,18.2752392 0.506141934,17.7777778 1.11979165,17.7777778 L1.11979167,17.7777778 L1.11979167,1.11111112 Z M3.34201388,2.22222221 L3.34201388,8.88888888 L11.1197917,8.88888888 L11.1197917,2.22222221 L3.34201388,2.22222221 Z'
+ },
+ pointer: {
+ show: false
+ },
+ title: {},
+ detail: {
+ offsetCenter: ['10%', '-56%'],
+ formatter: '{a|831}{b| km}',
+ rich: {
+ a: {
+ fontSize: 15,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ color: '#fff'
+ },
+ b: {
+ fontWeight: 600,
+ fontFamily: "Arial",
+ color: '#fff'
+ }
+ }
+ },
+ data: [{
+ value: 0.85,
+ name: ''
+ }]
+ },
+ {
+ name: 'gauge 6',
+ type: 'gauge',
+ min: -120,
+ max: -60,
+ startAngle: 230,
+ endAngle: 310,
+ clockwise: false,
+ splitNumber: 2,
+ radius: '35%',
+ center: ['79%', '55%'],
+ axisLine: {
+ lineStyle: {
+ color: [
+ [1, '#AE96A6'],
+ [1.1, '#f00']
+ ],
+ }
+ },
+ splitLine: {
+ distance: -8,
+ length: 12,
+ lineStyle: {
+ color: '#fff',
+ width: 4
+ }
+ },
+ axisTick: {
+ splitNumber: 3,
+ length: 8,
+ distance: -8,
+ lineStyle: {
+ color: '#fff',
+ width: 2
+ }
+ },
+ axisLabel: {
+ distance: 14,
+ fontSize: 18,
+ fontWeight: 800,
+ fontFamily: "Arial",
+ color: '#fff',
+ formatter: function(value) {
+ return -value
+ }
+ },
+ anchor: {
+ show: true,
+ itemStyle: {},
+ offsetCenter: [0, '55%'],
+ size: 20,
+ icon: 'path://M-34.1-1.1L-34.1-1.1c0-0.3-0.3-0.6-0.6-0.6h-3.6v-1.5c0-0.5-0.2-0.9-0.6-1.1s-0.9-0.2-1.3,0c-0.4,0.2-0.6,0.7-0.6,1.1V7.9c0,0,0,0.1,0,0.1c-0.8,0.5-1.2,1.5-0.9,2.5c0.3,0.9,1.1,1.6,2.1,1.6c1,0,1.8-0.6,2.1-1.5c0.3-0.9,0-1.9-0.8-2.5V6.3h3.5c0.4,0,0.7-0.3,0.7-0.7l0,0c0-0.4-0.3-0.7-0.7-0.7h-3.5V2.9h3.5c0.4,0,0.7-0.3,0.7-0.7l0,0c0-0.4-0.3-0.7-0.7-0.7h-3.5v-2.1h3.6C-34.4-0.5-34.1-0.8-34.1-1.1z M-44.9,11.6c-0.7,0-1.4-0.2-2-0.6c-0.4-0.3-0.9-0.4-1.4-0.4c-0.4,0-0.9,0.2-1.2,0.4c-0.4,0.2-1.4-0.9-0.9-1.3c0.6-0.4,1.3-0.6,2-0.7c0.8,0,1.5,0.2,2.2,0.5c0.4,0.3,0.9,0.4,1.3,0.4c0.6,0,1.1-0.2,1.5-0.6s1.6,0.7,0.9,1.3S-44,11.6-44.9,11.6L-44.9,11.6z M-34.3,11.6c-0.7,0-1.4-0.3-2-0.7c-0.6-0.4,0.5-1.6,0.9-1.3s0.8,0.4,1.2,0.4c0.5,0,1-0.1,1.4-0.4c0.6-0.3,1.3-0.5,2-0.6h0c0.9,0,1.7,0.3,2.4,0.9c0.7,0.5-0.5,1.6-0.9,1.3c-0.4-0.3-1-0.6-1.5-0.6h0c-0.5,0-0.9,0.2-1.3,0.4c-0.6,0.3-1.3,0.5-2,0.6H-34.3z M-33.5,16.3c-0.7,0-1.4-0.3-1.9-0.8c-0.4-0.3-0.6-0.5-1-0.5c-0.4,0-0.7,0.2-1,0.4c-0.6,0.5-1.3,0.7-2,0.7c-0.7,0-1.4-0.3-1.9-0.8c-0.2-0.3-0.6-0.4-0.9-0.4c-0.4,0-0.7,0.1-1.1,0.5c-0.6,0.5-1.3,0.7-2.1,0.7c-0.7-0.1-1.4-0.4-1.9-0.9c-0.4-0.3-0.6-0.5-1-0.5c-0.3,0-0.6,0.2-0.9,0.4s-1.6-0.7-1.1-1.2c0.5-0.5,1.2-0.8,1.9-0.9c1-0.1,1.6,0.4,2.1,0.8c0.3,0.3,0.6,0.5,1,0.5c0.4,0,0.6-0.1,1-0.4c0.6-0.5,1.4-0.8,2.1-0.8c0.7,0,1.4,0.3,1.9,0.8c0.2,0.2,0.6,0.4,0.9,0.4c0.4,0,0.6-0.1,1-0.4c0.6-0.5,1.3-0.7,2-0.7c0.8,0,1.5,0.3,2,0.9c0.4,0.3,0.6,0.4,0.9,0.4c0.3,0,0.7-0.2,1.1-0.5c0.5-0.4,1.2-0.9,2.3-0.8c0.7,0,1.4,0.3,1.9,0.7c0.5,0.4-0.7,1.5-1,1.3s-0.6-0.4-1-0.4c-0.4,0-0.7,0.2-1.2,0.5C-32,15.9-32.7,16.2-33.5,16.3L-33.5,16.3z'
+ },
+ pointer: {
+ icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
+ width: 15,
+ length: '4',
+ offsetCenter: [0, '-90%'],
+ itemStyle: {
+ color: '#f00'
+ }
+ },
+ title: {},
+ detail: {
+ show: false
+ },
+ data: [{
+ value: -120,
+ name: ''
+ }]
+ }
+ ]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge-clock.ts b/public/examples/ts/gauge-clock.ts
new file mode 100644
index 0000000..d101b77
--- /dev/null
+++ b/public/examples/ts/gauge-clock.ts
@@ -0,0 +1,221 @@
+/*
+title: Clock
+titleCN: 时钟仪表盘
+category: gauge
+shotWidth: 1000
+difficulty: 7
+videoStart: 2000
+videoEnd: 8000
+*/
+
+option = {
+ series: [{
+ name: 'hour',
+ type: 'gauge',
+ startAngle: 90,
+ endAngle: -270,
+ min: 0,
+ max: 12,
+ splitNumber: 12,
+ clockwise: true,
+ axisLine: {
+ lineStyle: {
+ width: 15,
+ color: [
+ [1, 'rgba(0,0,0,0.7)']
+ ],
+ shadowColor: 'rgba(0, 0, 0, 0.5)',
+ shadowBlur: 15
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ shadowColor: 'rgba(0, 0, 0, 0.3)',
+ shadowBlur: 3,
+ shadowOffsetX: 1,
+ shadowOffsetY: 2
+ }
+ },
+ axisLabel: {
+ fontSize: 50,
+ distance: 25,
+ formatter: function (value) {
+ if (value === 0) {
+ return '';
+ }
+ return value + '';
+ }
+ },
+ anchor: {
+ show: true,
+ icon: 'path://M532.8,70.8C532.8,70.8,532.8,70.8,532.8,70.8L532.8,70.8C532.7,70.8,532.8,70.8,532.8,70.8z M456.1,49.6c-2.2-6.2-8.1-10.6-15-10.6h-37.5v10.6h37.5l0,0c2.9,0,5.3,2.4,5.3,5.3c0,2.9-2.4,5.3-5.3,5.3v0h-22.5c-1.5,0.1-3,0.4-4.3,0.9c-4.5,1.6-8.1,5.2-9.7,9.8c-0.6,1.7-0.9,3.4-0.9,5.3v16h10.6v-16l0,0l0,0c0-2.7,2.1-5,4.7-5.3h10.3l10.4,21.2h11.8l-10.4-21.2h0c6.9,0,12.8-4.4,15-10.6c0.6-1.7,0.9-3.5,0.9-5.3C457,53,456.7,51.2,456.1,49.6z M388.9,92.1h11.3L381,39h-3.6h-11.3L346.8,92v0h11.3l3.9-10.7h7.3h7.7l3.9-10.6h-7.7h-7.3l7.7-21.2v0L388.9,92.1z M301,38.9h-10.6v53.1H301V70.8h28.4l3.7-10.6H301V38.9zM333.2,38.9v10.6v10.7v31.9h10.6V38.9H333.2z M249.5,81.4L249.5,81.4L249.5,81.4c-2.9,0-5.3-2.4-5.3-5.3h0V54.9h0l0,0c0-2.9,2.4-5.3,5.3-5.3l0,0l0,0h33.6l3.9-10.6h-37.5c-1.9,0-3.6,0.3-5.3,0.9c-4.5,1.6-8.1,5.2-9.7,9.7c-0.6,1.7-0.9,3.5-0.9,5.3l0,0v21.3c0,1.9,0.3,3.6,0.9,5.3c1.6,4.5,5.2,8.1,9.7,9.7c1.7,0.6,3.5,0.9,5.3,0.9h33.6l3.9-10.6H249.5z M176.8,38.9v10.6h49.6l3.9-10.6H176.8z M192.7,81.4L192.7,81.4L192.7,81.4c-2.9,0-5.3-2.4-5.3-5.3l0,0v-5.3h38.9l3.9-10.6h-53.4v10.6v5.3l0,0c0,1.9,0.3,3.6,0.9,5.3c1.6,4.5,5.2,8.1,9.7,9.7c1.7,0.6,3.4,0.9,5.3,0.9h23.4h10.2l3.9-10.6l0,0H192.7z M460.1,38.9v10.6h21.4v42.5h10.6V49.6h17.5l3.8-10.6H460.1z M541.6,68.2c-0.2,0.1-0.4,0.3-0.7,0.4C541.1,68.4,541.4,68.3,541.6,68.2L541.6,68.2z M554.3,60.2h-21.6v0l0,0c-2.9,0-5.3-2.4-5.3-5.3c0-2.9,2.4-5.3,5.3-5.3l0,0l0,0h33.6l3.8-10.6h-37.5l0,0c-6.9,0-12.8,4.4-15,10.6c-0.6,1.7-0.9,3.5-0.9,5.3c0,1.9,0.3,3.7,0.9,5.3c2.2,6.2,8.1,10.6,15,10.6h21.6l0,0c2.9,0,5.3,2.4,5.3,5.3c0,2.9-2.4,5.3-5.3,5.3l0,0h-37.5v10.6h37.5c6.9,0,12.8-4.4,15-10.6c0.6-1.7,0.9-3.5,0.9-5.3c0-1.9-0.3-3.7-0.9-5.3C567.2,64.6,561.3,60.2,554.3,60.2z',
+ showAbove: false,
+ offsetCenter: [0, '-35%'],
+ size: 120,
+ keepAspect: true,
+ itemStyle: {
+ color: '#707177'
+ }
+ },
+ pointer: {
+ icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
+ width: 12,
+ length: '55%',
+ offsetCenter: [0, '8%'],
+ itemStyle: {
+ color: '#C0911F',
+ shadowColor: 'rgba(0, 0, 0, 0.3)',
+ shadowBlur: 8,
+ shadowOffsetX: 2,
+ shadowOffsetY: 4
+ }
+ },
+ detail: {
+ show: false
+ },
+ title: {
+ offsetCenter: [0, '30%']
+ },
+ data: [{
+ value: 0
+ }]
+ },
+ {
+ name: 'minute',
+ type: 'gauge',
+ startAngle: 90,
+ endAngle: -270,
+ min: 0,
+ max: 60,
+ clockwise: true,
+ axisLine: {
+ show: false
+ },
+ splitLine: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ show: false
+ },
+ pointer: {
+ icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
+ width: 8,
+ length: '70%',
+ offsetCenter: [0, '8%'],
+ itemStyle: {
+ color: '#C0911F',
+ shadowColor: 'rgba(0, 0, 0, 0.3)',
+ shadowBlur: 8,
+ shadowOffsetX: 2,
+ shadowOffsetY: 4
+ }
+ },
+ anchor: {
+ show: true,
+ size: 20,
+ showAbove: false,
+ itemStyle: {
+ borderWidth: 15,
+ borderColor: '#C0911F',
+ shadowColor: 'rgba(0, 0, 0, 0.3)',
+ shadowBlur: 8,
+ shadowOffsetX: 2,
+ shadowOffsetY: 4
+ }
+ },
+ detail: {
+ show: false
+ },
+ title: {
+ offsetCenter: ['0%', '-40%']
+ },
+ data: [{
+ value: 0
+ }]
+ },
+ {
+ name: 'second',
+ type: 'gauge',
+ startAngle: 90,
+ endAngle: -270,
+ min: 0,
+ max: 60,
+ animationEasingUpdate: 'bounceOut',
+ clockwise: true,
+ axisLine: {
+ show: false
+ },
+ splitLine: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ show: false
+ },
+ pointer: {
+ icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
+ width: 4,
+ length: '85%',
+ offsetCenter: [0, '8%'],
+ itemStyle: {
+ color: '#C0911F',
+ shadowColor: 'rgba(0, 0, 0, 0.3)',
+ shadowBlur: 8,
+ shadowOffsetX: 2,
+ shadowOffsetY: 4
+ }
+ },
+ anchor: {
+ show: true,
+ size: 15,
+ showAbove: true,
+ itemStyle: {
+ color: '#C0911F',
+ shadowColor: 'rgba(0, 0, 0, 0.3)',
+ shadowBlur: 8,
+ shadowOffsetX: 2,
+ shadowOffsetY: 4
+ }
+ },
+ detail: {
+ show: false
+ },
+ title: {
+ offsetCenter: ['0%', '-40%']
+ },
+ data: [{
+ value: 0
+ }]
+ }]
+};
+
+setInterval(function () {
+ var date = new Date();
+ var second = date.getSeconds();
+ var minute = date.getMinutes() + second / 60;
+ var hour = date.getHours() % 12 + minute / 60;
+
+ option.animationDurationUpdate = 300;
+ myChart.setOption<echarts.EChartsOption>({
+ series: [{
+ name: 'hour',
+ animation: hour !== 0,
+ data: [{ value: hour }]
+ }, {
+ name: 'minute',
+ animation: minute !== 0,
+ data: [{ value: minute }]
+ }, {
+ animation: second !== 0,
+ name: 'second',
+ data: [{ value: second }]
+ }]
+ });
+}, 1000);
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge-grade.ts b/public/examples/ts/gauge-grade.ts
new file mode 100644
index 0000000..9fa594c
--- /dev/null
+++ b/public/examples/ts/gauge-grade.ts
@@ -0,0 +1,91 @@
+/*
+title: Grade Gauge
+titleCN: 等级仪表盘
+category: gauge
+shotWidth: 800
+difficulty: 4
+*/
+
+option = {
+ series: [{
+ type: 'gauge',
+ startAngle: 180,
+ endAngle: 0,
+ min: 0,
+ max: 1,
+ splitNumber: 8,
+ axisLine: {
+ lineStyle: {
+ width: 6,
+ color: [
+ [0.25, '#FF6E76'],
+ [0.5, '#FDDD60'],
+ [0.75, '#58D9F9'],
+ [1, '#7CFFB2']
+ ]
+ }
+ },
+ pointer: {
+ icon: 'path://M12.8,0.7l12,40.1H0.7L12.8,0.7z',
+ length: '12%',
+ width: 20,
+ offsetCenter: [0, '-60%'],
+ itemStyle: {
+ color: 'auto'
+ }
+ },
+ axisTick: {
+ length: 12,
+ lineStyle: {
+ color: 'auto',
+ width: 2
+ }
+ },
+ splitLine: {
+ length: 20,
+ lineStyle: {
+ color: 'auto',
+ width: 5
+ }
+ },
+ axisLabel: {
+ color: '#464646',
+ fontSize: 20,
+ distance: -60,
+ formatter: function (value) {
+ if (value === 0.875) {
+ return 'A';
+ }
+ else if (value === 0.625) {
+ return 'B';
+ }
+ else if (value === 0.375) {
+ return 'C';
+ }
+ else if (value === 0.125) {
+ return 'D';
+ }
+ return '';
+ }
+ },
+ title: {
+ offsetCenter: [0, '-20%'],
+ fontSize: 30
+ },
+ detail: {
+ fontSize: 50,
+ offsetCenter: [0, '0%'],
+ valueAnimation: true,
+ formatter: function (value) {
+ return Math.round(value * 100) + '分';
+ },
+ color: 'auto'
+ },
+ data: [{
+ value: 0.70,
+ name: 'Grade Rating'
+ }]
+ }]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge-multi-title.ts b/public/examples/ts/gauge-multi-title.ts
new file mode 100644
index 0000000..2737680
--- /dev/null
+++ b/public/examples/ts/gauge-multi-title.ts
@@ -0,0 +1,92 @@
+/*
+title: Multi Title Gauge
+titleCN: 多标题仪表盘
+category: gauge
+difficulty: 4
+*/
+
+const gaugeData = [{
+ value: 20,
+ name: 'Good',
+ title: {
+ offsetCenter: ['-40%', '80%']
+ },
+ detail: {
+ offsetCenter: ['-40%', '95%']
+ }
+},
+{
+ value: 40,
+ name: 'Better',
+ title: {
+ offsetCenter: ['0%', '80%']
+ },
+ detail: {
+ offsetCenter: ['0%', '95%']
+ }
+},
+{
+ value: 60,
+ name: 'Perfect',
+ title: {
+ offsetCenter: ['40%', '80%']
+ },
+ detail: {
+ offsetCenter: ['40%', '95%']
+ }
+}];
+
+option = {
+ series: [{
+ type: 'gauge',
+ anchor: {
+ show: true,
+ showAbove: true,
+ size: 18,
+ itemStyle: {
+ color: '#FAC858'
+ }
+ },
+ pointer: {
+ icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',
+ width: 8,
+ length: '80%',
+ offsetCenter: [0, '8%']
+ },
+
+ progress: {
+ show: true,
+ overlap: true,
+ roundCap: true
+ },
+ axisLine: {
+ roundCap: true
+ },
+ data: gaugeData,
+ title: {
+ fontSize: 14
+ },
+ detail: {
+ width: 40,
+ height: 14,
+ fontSize: 14,
+ color: '#fff',
+ backgroundColor: 'auto',
+ borderRadius: 3,
+ formatter: '{value}%'
+ }
+ }]
+};
+
+setInterval(function () {
+ gaugeData[0].value = +(Math.random() * 100).toFixed(2);
+ gaugeData[1].value = +(Math.random() * 100).toFixed(2);
+ gaugeData[2].value = +(Math.random() * 100).toFixed(2);
+ myChart.setOption<echarts.EChartsOption>({
+ series: [{
+ data: gaugeData
+ }]
+ });
+}, 2000);
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge-progress.ts b/public/examples/ts/gauge-progress.ts
new file mode 100644
index 0000000..13a810e
--- /dev/null
+++ b/public/examples/ts/gauge-progress.ts
@@ -0,0 +1,95 @@
+/*
+title: Grogress Gauge
+titleCN: 进度仪表盘
+category: gauge
+shotWidth: 800
+difficulty: 3
+*/
+
+option = {
+ series: [{
+ type: 'gauge',
+ startAngle: 180,
+ endAngle: 0,
+ min: 0,
+ max: 240,
+ splitNumber: 12,
+ itemStyle: {
+ color: '#58D9F9',
+ shadowColor: 'rgba(0,138,255,0.45)',
+ shadowBlur: 10,
+ shadowOffsetX: 2,
+ shadowOffsetY: 2
+ },
+ progress: {
+ show: true,
+ roundCap: true,
+ width: 18
+ },
+ pointer: {
+ icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z',
+ length: '75%',
+ width: 16,
+ offsetCenter: [0, '5%']
+ },
+ axisLine: {
+ roundCap: true,
+ lineStyle: {
+ width: 18
+ }
+ },
+ axisTick: {
+ splitNumber: 2,
+ lineStyle: {
+ width: 2,
+ color: '#999'
+ }
+ },
+ splitLine: {
+ length: 12,
+ lineStyle: {
+ width: 3,
+ color: '#999'
+ }
+ },
+ axisLabel: {
+ distance: 30,
+ color: '#999',
+ fontSize: 20
+ },
+ title: {
+ show: false
+ },
+ detail: {
+ backgroundColor: '#fff',
+ borderColor: '#999',
+ borderWidth: 2,
+ width: '60%',
+ lineHeight: 40,
+ height: 40,
+ borderRadius: 8,
+ offsetCenter: [0, '35%'],
+ valueAnimation: true,
+ formatter: function (value) {
+ return '{value|' + value.toFixed(0) + '}{unit|km/h}';
+ },
+ rich: {
+ value: {
+ fontSize: 50,
+ fontWeight: 'bolder',
+ color: '#777'
+ },
+ unit: {
+ fontSize: 20,
+ color: '#999',
+ padding: [0, 0, -20, 10]
+ }
+ }
+ },
+ data: [{
+ value: 100
+ }]
+ }]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge-ring.ts b/public/examples/ts/gauge-ring.ts
new file mode 100644
index 0000000..3ecce63
--- /dev/null
+++ b/public/examples/ts/gauge-ring.ts
@@ -0,0 +1,112 @@
+/*
+title: Ring Gauge
+titleCN: 得分环
+category: gauge
+difficulty: 5
+videoStart: 1000
+videoEnd: 8000
+*/
+
+const gaugeData = [{
+ value: 20,
+ name: 'Perfect',
+ title: {
+ offsetCenter: ['0%', '-30%']
+ },
+ detail: {
+ valueAnimation: true,
+ offsetCenter: ['0%', '-20%']
+ }
+},
+{
+ value: 40,
+ name: 'Good',
+ title: {
+ offsetCenter: ['0%', '0%']
+ },
+ detail: {
+ valueAnimation: true,
+ offsetCenter: ['0%', '10%']
+ }
+},
+{
+ value: 60,
+ name: 'Commonly',
+ title: {
+ offsetCenter: ['0%', '30%']
+ },
+ detail: {
+ valueAnimation: true,
+ offsetCenter: ['0%', '40%']
+ }
+}]
+
+option = {
+ series: [{
+ type: 'gauge',
+ startAngle: 90,
+ endAngle: -270,
+ pointer: {
+ show: false
+ },
+ progress: {
+ show: true,
+ overlap: false,
+ roundCap: true,
+ clip: false,
+ itemStyle: {
+ borderWidth: 1,
+ borderColor: '#464646'
+ }
+ },
+ axisLine: {
+
+ lineStyle: {
+ width: 40
+ }
+ },
+ splitLine: {
+ show: false,
+ distance: 0,
+ length: 10
+ },
+ axisTick: {
+ show: false
+ },
+ axisLabel: {
+ show: false,
+ distance: 50
+ },
+ data: gaugeData,
+ title: {
+ fontSize: 14
+ },
+ detail: {
+ width: 50,
+ height: 14,
+ fontSize: 14,
+ color: 'auto',
+ borderColor: 'auto',
+ borderRadius: 20,
+ borderWidth: 1,
+ formatter: '{value}%'
+ }
+ }]
+};
+
+setInterval(function () {
+ gaugeData[0].value = +(Math.random() * 100).toFixed(2);
+ gaugeData[1].value = +(Math.random() * 100).toFixed(2);
+ gaugeData[2].value = +(Math.random() * 100).toFixed(2);
+ myChart.setOption<echarts.EChartsOption>({
+ series: [{
+ data: gaugeData,
+ pointer: {
+ show: false
+ }
+ }]
+ }, true);
+}, 2000);
+
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge-simple.ts b/public/examples/ts/gauge-simple.ts
new file mode 100644
index 0000000..1b087d0
--- /dev/null
+++ b/public/examples/ts/gauge-simple.ts
@@ -0,0 +1,31 @@
+/*
+title: Simple Gauge
+titleCN: 带标签数字动画的基础仪表盘
+category: gauge
+difficulty: 1
+videoStart: 0
+videoEnd: 1000
+*/
+
+option = {
+ tooltip: {
+ formatter: '{a} <br/>{b} : {c}%'
+ },
+ series: [{
+ name: 'Pressure',
+ type: 'gauge',
+ progress: {
+ show: true
+ },
+ detail: {
+ valueAnimation: true,
+ formatter: '{value}'
+ },
+ data: [{
+ value: 50,
+ name: 'SCORE'
+ }]
+ }]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge-speed.ts b/public/examples/ts/gauge-speed.ts
new file mode 100644
index 0000000..0169fba
--- /dev/null
+++ b/public/examples/ts/gauge-speed.ts
@@ -0,0 +1,57 @@
+/*
+title: Speed Gauge
+titleCN: 速度仪表盘
+category: gauge
+difficulty: 2
+*/
+
+option = {
+ series: [{
+ type: 'gauge',
+ progress: {
+ show: true,
+ width: 18
+ },
+ axisLine: {
+ lineStyle: {
+ width: 18
+ }
+ },
+ axisTick: {
+ show: false
+ },
+ splitLine: {
+ length: 15,
+ lineStyle: {
+ width: 2,
+ color: '#999'
+ }
+ },
+ axisLabel: {
+ distance: 25,
+ color: '#999',
+ fontSize: 20
+ },
+ anchor: {
+ show: true,
+ showAbove: true,
+ size: 25,
+ itemStyle: {
+ borderWidth: 10
+ }
+ },
+ title: {
+ show: false
+ },
+ detail: {
+ valueAnimation: true,
+ fontSize: 80,
+ offsetCenter: [0, '70%']
+ },
+ data: [{
+ value: 70
+ }]
+ }]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge-stage.ts b/public/examples/ts/gauge-stage.ts
new file mode 100644
index 0000000..f575d8e
--- /dev/null
+++ b/public/examples/ts/gauge-stage.ts
@@ -0,0 +1,66 @@
+/*
+title: Stage Speed Gauge
+titleCN: 阶段速度仪表盘
+category: gauge
+difficulty: 3
+*/
+
+option = {
+ series: [{
+ type: 'gauge',
+ axisLine: {
+ lineStyle: {
+ width: 30,
+ color: [
+ [0.3, '#67e0e3'],
+ [0.7, '#37a2da'],
+ [1, '#fd666d']
+ ]
+ }
+ },
+ pointer: {
+ itemStyle: {
+ color: 'auto'
+ }
+ },
+ axisTick: {
+ distance: -30,
+ length: 8,
+ lineStyle: {
+ color: '#fff',
+ width: 2
+ }
+ },
+ splitLine: {
+ distance: -30,
+ length: 30,
+ lineStyle: {
+ color: '#fff',
+ width: 4
+ }
+ },
+ axisLabel: {
+ color: 'auto',
+ distance: 40,
+ fontSize: 20
+ },
+ detail: {
+ valueAnimation: true,
+ formatter: '{value} km/h',
+ color: 'auto'
+ },
+ data: [{
+ value: 70
+ }]
+ }]
+};
+
+setInterval(function () {
+ myChart.setOption<echarts.EChartsOption>({
+ series: [{
+ data: [{
+ value: +(Math.random() * 100).toFixed(2)
+ }]
+ }]
+ });
+}, 2000);
\ No newline at end of file
diff --git a/public/examples/ts/gauge-temperature.ts b/public/examples/ts/gauge-temperature.ts
new file mode 100644
index 0000000..158666c
--- /dev/null
+++ b/public/examples/ts/gauge-temperature.ts
@@ -0,0 +1,135 @@
+/*
+title: Temperature Gauge chart
+titleCN: 气温仪表盘
+category: gauge
+difficulty: 4
+videoStart: 2000
+videoEnd: 5000
+*/
+
+option = {
+ series: [{
+ type: 'gauge',
+ center: ["50%", "60%"],
+ startAngle: 200,
+ endAngle: -20,
+ min: 0,
+ max: 60,
+ splitNumber: 12,
+ itemStyle: {
+ color: '#FFAB91'
+ },
+ progress: {
+ show: true,
+ width: 30
+ },
+
+ pointer: {
+ show: false,
+ },
+ axisLine: {
+ lineStyle: {
+ width: 30
+ }
+ },
+ axisTick: {
+ distance: -45,
+ splitNumber: 5,
+ lineStyle: {
+ width: 2,
+ color: '#999'
+ }
+ },
+ splitLine: {
+ distance: -52,
+ length: 14,
+ lineStyle: {
+ width: 3,
+ color: '#999'
+ }
+ },
+ axisLabel: {
+ distance: -20,
+ color: '#999',
+ fontSize: 20
+ },
+ anchor: {
+ show: false
+ },
+ title: {
+ show: false
+ },
+ detail: {
+ valueAnimation: true,
+ width: '60%',
+ lineHeight: 40,
+ height: '15%',
+ borderRadius: 8,
+ offsetCenter: [0, '-15%'],
+ fontSize: 60,
+ fontWeight: 'bolder',
+ formatter: '{value} °C',
+ color: 'auto'
+ },
+ data: [{
+ value: 20
+ }]
+ },
+
+ {
+ type: 'gauge',
+ center: ["50%", "60%"],
+ startAngle: 200,
+ endAngle: -20,
+ min: 0,
+ max: 60,
+ itemStyle: {
+ color: '#FD7347',
+ },
+ progress: {
+ show: true,
+ width: 8
+ },
+
+ pointer: {
+ show: false
+ },
+ axisLine: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ },
+ splitLine: {
+ show: false
+ },
+ axisLabel: {
+ show: false
+ },
+ detail: {
+ show: false
+ },
+ data: [{
+ value: 20,
+ }]
+
+ }
+ ],
+};
+
+setInterval(function() {
+ const random = +(Math.random() * 60).toFixed(2);
+ myChart.setOption<echarts.EChartsOption>({
+ series: [{
+ data: [{
+ value: random
+ }]
+ }, {
+ data: [{
+ value: random
+ }]
+ }]
+ });
+}, 2000);
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/gauge.ts b/public/examples/ts/gauge.ts
new file mode 100644
index 0000000..1148f61
--- /dev/null
+++ b/public/examples/ts/gauge.ts
@@ -0,0 +1,25 @@
+/*
+title: Gauge Basic chart
+titleCN: 基础仪表盘
+category: gauge
+difficulty: 1
+*/
+
+option = {
+ tooltip: {
+ formatter: '{a} <br/>{b} : {c}%'
+ },
+ series: [{
+ name: 'Pressure',
+ type: 'gauge',
+ detail: {
+ formatter: '{value}'
+ },
+ data: [{
+ value: 50,
+ name: 'SCORE'
+ }]
+ }]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/geo-beef-cuts.ts b/public/examples/ts/geo-beef-cuts.ts
new file mode 100644
index 0000000..23ec964
--- /dev/null
+++ b/public/examples/ts/geo-beef-cuts.ts
@@ -0,0 +1,76 @@
+/*
+title: GEO Beef Cuts
+category: map
+titleCN: 庖丁解牛
+*/
+
+$.get(ROOT_PATH + '/data/asset/geo/Beef_cuts_France.svg', function (svg) {
+
+ echarts.registerMap('Beef_cuts_France', { svg: svg });
+
+ option = {
+ tooltip: {
+ },
+ visualMap: {
+ left: 'center',
+ bottom: '10%',
+ min: 5,
+ max: 100,
+ orient: 'horizontal',
+ text: ['', 'Price'],
+ realtime: true,
+ calculable: true,
+ inRange: {
+ color: ['#dbac00', '#db6e00', '#cf0000']
+ }
+ },
+ series: [{
+ name: 'French Beef Cuts',
+ type: 'map',
+ map: 'Beef_cuts_France',
+ roam: true,
+ emphasis: {
+ label: {
+ show: false
+ }
+ },
+ selectedMode: false,
+ data: [
+ { name: 'Queue', value: 15 },
+ { name: 'Langue', value: 35 },
+ { name: 'Plat de joue', value: 15 },
+ { name: 'Gros bout de poitrine', value: 25 },
+ { name: 'Jumeau à pot-au-feu', value: 45 },
+ { name: 'Onglet', value: 85 },
+ { name: 'Plat de tranche', value: 25 },
+ { name: 'Araignée', value: 15 },
+ { name: 'Gîte à la noix', value: 55 },
+ { name: 'Bavette d\'aloyau', value: 25 },
+ { name: 'Tende de tranche', value: 65 },
+ { name: 'Rond de gîte', value: 45 },
+ { name: 'Bavettede de flanchet', value: 85 },
+ { name: 'Flanchet', value: 35 },
+ { name: 'Hampe', value: 75 },
+ { name: 'Plat de côtes', value: 65 },
+ { name: 'Tendron Milieu de poitrine', value: 65 },
+ { name: 'Macreuse à pot-au-feu', value: 85 },
+ { name: 'Rumsteck', value: 75 },
+ { name: 'Faux-filet', value: 65 },
+ { name: 'Côtes Entrecôtes', value: 55 },
+ { name: 'Basses côtes', value: 45 },
+ { name: 'Collier', value: 85 },
+ { name: 'Jumeau à biftek', value: 15 },
+ { name: 'Paleron', value: 65 },
+ { name: 'Macreuse à bifteck', value: 45 },
+ { name: 'Gîte', value: 85 },
+ { name: 'Aiguillette baronne', value: 65 },
+ { name: 'Filet', value: 95 },
+ ]
+ }]
+ };
+
+ myChart.setOption(option);
+
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/geo-seatmap-flight.ts b/public/examples/ts/geo-seatmap-flight.ts
new file mode 100644
index 0000000..0676317
--- /dev/null
+++ b/public/examples/ts/geo-seatmap-flight.ts
@@ -0,0 +1,95 @@
+/*
+title: Flight Seatmap with SVG
+category: map
+titleCN: 航班选座(SVG)
+*/
+
+$.get(ROOT_PATH + '/data/asset/geo/flight-seats.svg', function (svg) {
+
+ echarts.registerMap('flight-seats', { svg: svg });
+
+ const takenSeatNames = ['26E', '26D', '26C', '25D', '23C', '21A', '20F'];
+
+ option = {
+ tooltip: {
+ },
+ geo: {
+ map: 'flight-seats',
+ roam: true,
+ selectedMode: 'multiple',
+ layoutCenter: ['50%', '50%'],
+ layoutSize: '95%',
+ tooltip: {
+ show: true
+ },
+ itemStyle: {
+ color: '#fff'
+ },
+ emphasis: {
+ itemStyle: {
+ color: null,
+ borderColor: 'green',
+ borderWidth: 2
+ },
+ label: {
+ show: false
+ }
+ },
+ select: {
+ itemStyle: {
+ color: 'green'
+ },
+ label: {
+ show: false,
+ textBorderColor: '#fff',
+ textBorderWidth: 2
+ }
+ },
+ regions: makeTakenRegions(takenSeatNames)
+ }
+ };
+
+ function makeTakenRegions(takenSeatNames: string[]) {
+ var regions = [];
+ for (var i = 0; i < takenSeatNames.length; i++) {
+ regions.push({
+ name: takenSeatNames[i],
+ silent: true,
+ itemStyle: {
+ color: '#bf0e08'
+ },
+ emphasis: {
+ itemStyle: {
+ borderColor: '#aaa',
+ borderWidth: 1
+ }
+ },
+ select: {
+ itemStyle: {
+ color: '#bf0e08'
+ }
+ }
+ });
+ }
+ return regions;
+ }
+
+ myChart.setOption(option);
+
+ // Get selected seats.
+ myChart.on('geoselectchanged', function (params: any) {
+ const selectedNames: string[] = params.allSelected[0].name.slice();
+
+ // Remove taken seats.
+ for (var i = selectedNames.length - 1; i >= 0; i--) {
+ if (takenSeatNames.indexOf(selectedNames[i]) >= 0) {
+ selectedNames.splice(i, 1);
+ }
+ }
+
+ console.log('selected', selectedNames);
+ });
+
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/geo-svg-lines.ts b/public/examples/ts/geo-svg-lines.ts
new file mode 100644
index 0000000..31ee272
--- /dev/null
+++ b/public/examples/ts/geo-svg-lines.ts
@@ -0,0 +1,86 @@
+/*
+title: GEO SVG Lines
+category: map
+titleCN: GEO 路径图(SVG)
+*/
+
+$.get(ROOT_PATH + '/data/asset/geo/MacOdrum-LV5-floorplan-web.svg', function (svg) {
+
+ echarts.registerMap('MacOdrum-LV5-floorplan-web', { svg: svg });
+
+ option = {
+ title: {
+ text: 'Visit Route',
+ left: 'center',
+ bottom: 10
+ },
+ tooltip: {
+ },
+ geo: {
+ map: 'MacOdrum-LV5-floorplan-web',
+ roam: true,
+ emphasis: {
+ itemStyle: {
+ color: null
+ },
+ label: {
+ show: false
+ }
+ }
+ },
+ series: [{
+ name: 'Route',
+ type: 'lines',
+ coordinateSystem: 'geo',
+ geoIndex: 0,
+ emphasis: {
+ label: {
+ show: false
+ }
+ },
+ polyline: true,
+ lineStyle: {
+ color: '#c46e54',
+ width: 5,
+ opacity: 1,
+ type: 'dotted'
+ },
+ effect: {
+ show: true,
+ period: 8,
+ color: '#a10000',
+ constantSpeed: 80,
+ trailLength: 0,
+ symbolSize: [20, 12],
+ symbol: 'path://M35.5 40.5c0-22.16 17.84-40 40-40s40 17.84 40 40c0 1.6939-.1042 3.3626-.3067 5H35.8067c-.2025-1.6374-.3067-3.3061-.3067-5zm90.9621-2.6663c-.62-1.4856-.9621-3.1182-.9621-4.8337 0-6.925 5.575-12.5 12.5-12.5s12.5 5.575 12.5 12.5a12.685 12.685 0 0 1-.1529 1.9691l.9537.5506-15.6454 27.0986-.1554-.0897V65.5h-28.7285c-7.318 9.1548-18.587 15-31.2715 15s-23.9535-5.8452-31.2715-15H15.5v-2.8059l-.0937.0437-8.8727-19.0274C2.912 41.5258.5 37.5549.5 33c0-6.925 5.575-12.5 12.5-12.5S25.5 26.075 25.5 33c0 .9035-.0949 1.784-.2753 2.6321L29.8262 45.5h92.2098z'
+ },
+ data: [{
+ coords: [
+ [110.6189462165178, 456.64349563895087],
+ [124.10988522879458, 450.8570048730469],
+ [123.9272226116071, 389.9520693708147],
+ [61.58708083147317, 386.87942320312504],
+ [61.58708083147317, 72.8954315876116],
+ [258.29514854771196, 72.8954315876116],
+ [260.75457021484374, 336.8559607533482],
+ [280.5277985253906, 410.2406672084263],
+ [275.948185765904, 528.0254369698661],
+ [111.06907909458701, 552.795792593471],
+ [118.87138231445309, 701.365737015904],
+ [221.36468155133926, 758.7870354617745],
+ [307.86195445452006, 742.164737297712],
+ [366.8489324762834, 560.9895157073103],
+ [492.8750778390066, 560.9895157073103],
+ [492.8750778390066, 827.9639780566406],
+ [294.9255269587053, 827.9639780566406],
+ [282.79803391043527, 868.2476088113839]
+ ]
+ }]
+ }]
+ };
+
+ myChart.setOption(option);
+
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/geo-svg-map.ts b/public/examples/ts/geo-svg-map.ts
new file mode 100644
index 0000000..73cb134
--- /dev/null
+++ b/public/examples/ts/geo-svg-map.ts
@@ -0,0 +1,200 @@
+/*
+title: GEO SVG Map
+category: map
+titleCN: 地图(SVG)
+*/
+
+$.get(ROOT_PATH + '/data/asset/geo/Sicily_prehellenic_topographic_map.svg', function (svg) {
+
+ echarts.registerMap('sicily', {svg: svg});
+
+ option = {
+ tooltip: {
+ formatter: function (params) {
+ console.log(params);
+ return [
+ params.name + ':',
+ 'xxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxx'
+ ].join('<br>')
+ }
+ },
+ geo: [{
+ map: 'sicily',
+ roam: true,
+ layoutCenter: ['50%', '50%'],
+ layoutSize: '100%',
+ selectedMode: 'single',
+ tooltip: {
+ show: true,
+ confine: true,
+ formatter: function (params) {
+ return [
+ 'This is the introduction:',
+ 'xxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxx'
+ ].join('<br>');
+ }
+ },
+ itemStyle: {
+ color: undefined
+ },
+ emphasis: {
+ label: {
+ show: false
+ }
+ },
+ select: {
+ itemStyle: {
+ color: '#b50205'
+ },
+ label: {
+ show: false
+ }
+ },
+ regions: [{
+ name: 'route1',
+ itemStyle: {
+ borderWidth: 0
+ },
+ select: {
+ itemStyle: {
+ color: '#b5280d',
+ borderWidth: 0
+ }
+ },
+ tooltip: {
+ position: 'right',
+ alwaysShowContent: true,
+ enterable: true,
+ extraCssText: 'user-select: text',
+ formatter: [
+ 'Route 1:',
+ 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
+ ].join('<br>')
+ }
+ }, {
+ name: 'route2',
+ itemStyle: {
+ borderWidth: 0
+ },
+ select: {
+ itemStyle: {
+ color: '#b5280d',
+ borderWidth: 0
+ }
+ },
+ tooltip: {
+ position: 'left',
+ alwaysShowContent: true,
+ enterable: true,
+ extraCssText: 'user-select: text',
+ formatter: [
+ 'Route 2:',
+ 'xxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxx',
+ 'xxxxxxxxxxxxxx'
+ ].join('<br>')
+ }
+ }]
+ }],
+
+
+ // -------------
+ // Make buttons
+ grid: {
+ top: 10,
+ left: 'center',
+ width: 80,
+ height: 20
+ },
+ xAxis: { axisLine: { show: false }, splitLine: { show: false }, axisLabel: { show: false }, axisTick: { show : false } },
+ yAxis: { axisLine: { show: false }, splitLine: { show: false }, axisLabel: { show: false }, axisTick: { show : false } },
+ series: {
+ type: 'scatter',
+ itemStyle: {
+ },
+ label: {
+ show: true,
+ borderColor: '#999',
+ borderWidth: 1,
+ borderRadius: 2,
+ backgroundColor: '#fff',
+ padding: [3, 5],
+ fontSize: 18,
+ opacity: 1,
+ color: '#333'
+ },
+ encode: {
+ label: 2
+ },
+ symbolSize: 0,
+ tooltip: { show: false },
+ selectedMode: 'single',
+ select: {
+ label: {
+ color: '#fff',
+ borderColor: '#555',
+ backgroundColor: '#555'
+ }
+ },
+ data: [
+ [0, 0, 'route1'],
+ [1, 0, 'route2']
+ ]
+ }
+ // Make buttons end
+ // -----------------
+ };
+
+ myChart.setOption(option);
+
+ myChart.on('selectchanged', function (params: any) {
+ if (!params.selected.length) {
+ myChart.dispatchAction({
+ type: 'hideTip'
+ });
+ myChart.dispatchAction({
+ type: 'geoSelect',
+ geoIndex: 0
+ // Use no name to unselect.
+ });
+ }
+ else {
+ var btnDataIdx = params.selected[0].dataIndex[0];
+ var name = option.series.data[btnDataIdx][2];
+
+ myChart.dispatchAction({
+ type: 'geoSelect',
+ geoIndex: 0,
+ name: name
+ });
+ myChart.dispatchAction({
+ type: 'showTip',
+ geoIndex: 0,
+ name: name
+ });
+ }
+ });
+
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/geo-svg-scatter-simple.ts b/public/examples/ts/geo-svg-scatter-simple.ts
new file mode 100644
index 0000000..8ad7c02
--- /dev/null
+++ b/public/examples/ts/geo-svg-scatter-simple.ts
@@ -0,0 +1,56 @@
+/*
+title: GEO SVG Scatter
+category: map
+titleCN: 散点图(SVG)
+*/
+
+
+$.get(ROOT_PATH + '/data/asset/geo/Map_of_Iceland.svg', function (svg) {
+
+ echarts.registerMap('iceland_svg', { svg: svg });
+
+ option = {
+ tooltip: {
+ },
+ geo: {
+ tooltip: {
+ show: true
+ },
+ map: 'iceland_svg',
+ roam: true
+ },
+ series: {
+ type: 'effectScatter',
+ coordinateSystem: 'geo',
+ geoIndex: 0,
+ symbolSize: function (params) {
+ return (params[2] / 100 * 15) + 5;
+ },
+ itemStyle: {
+ color: '#b02a02'
+ },
+ encode: {
+ tooltip: 2
+ },
+ data: [
+ [488.2358421078053, 459.70913833075736, 100],
+ [770.3415644319939, 757.9672194986475, 30],
+ [1180.0329284196291, 743.6141808346214, 80],
+ [894.03790632245, 1188.1985153835008, 61],
+ [1372.98925630313, 477.3839988649537, 70],
+ [1378.62251255796, 935.6708486282843, 81],
+ ]
+ }
+ };
+
+ myChart.setOption(option);
+
+ myChart.getZr().on('click', function (params) {
+ var pixelPoint = [params.offsetX, params.offsetY];
+ var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);
+ console.log(dataPoint);
+ });
+
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/geo-svg-traffic.ts b/public/examples/ts/geo-svg-traffic.ts
new file mode 100644
index 0000000..c5ea4d9
--- /dev/null
+++ b/public/examples/ts/geo-svg-traffic.ts
@@ -0,0 +1,169 @@
+/*
+title: GEO SVG Traffic
+category: map
+titleCN: 交通(SVG)
+*/
+
+$.get(ROOT_PATH + '/data/asset/geo/ksia-ext-plan-min.svg', function (svg) {
+
+
+ echarts.registerMap('ksia-ext-plan', { svg: svg });
+
+ option = {
+ tooltip: {
+ },
+ geo: {
+ map: 'ksia-ext-plan',
+ roam: true,
+ layoutCenter: ['50%', '50%'],
+ layoutSize: '100%'
+ },
+ series: [{
+ name: 'Route',
+ type: 'lines',
+ coordinateSystem: 'geo',
+ geoIndex: 0,
+ emphasis: {
+ label: {
+ show: false
+ }
+ },
+ polyline: true,
+ lineStyle: {
+ color: '#c46e54',
+ width: 0
+ },
+ effect: {
+ show: true,
+ period: 8,
+ color: '#a10000',
+ // constantSpeed: 80,
+ trailLength: 0,
+ symbolSize: [12, 30],
+ symbol: 'path://M87.1667 3.8333L80.5.5h-60l-6.6667 3.3333L.5 70.5v130l10 10h80l10 -10v-130zM15.5 190.5l15 -20h40l15 20zm75 -65l-15 5v35l15 15zm-80 0l15 5v35l-15 15zm65 0l15 -5v-40l-15 20zm-50 0l-15 -5v-40l15 20zm 65,-55 -15,25 c -15,-5 -35,-5 -50,0 l -15,-25 c 25,-15 55,-15 80,0 z'
+ },
+ z: 100,
+ data: [{
+ effect: {
+ color: '#a10000',
+ constantSpeed: 100,
+ delay: 0,
+ },
+ coords: [
+ [50.875133928571415, 242.66287667410717],
+ [62.03696428571425, 264.482421875],
+ [72.63357421874997, 273.62779017857144],
+ [92.78291852678569, 285.869140625],
+ [113.43637834821425, 287.21854073660717],
+ [141.44788783482142, 288.92947823660717],
+ [191.71686104910714, 289.5507114955357],
+ [198.3060072544643, 294.0673828125],
+ [204.99699497767858, 304.60288783482144],
+ [210.79177734375003, 316.7373046875],
+ [212.45179408482142, 329.3656529017857],
+ [210.8885267857143, 443.3925083705358],
+ [215.35936941964286, 453.00634765625],
+ [224.38761997767858, 452.15087890625],
+ [265.71490792410714, 452.20179966517856],
+ [493.3408844866072, 453.77525111607144],
+ [572.8892940848216, 448.77992466517856],
+ [608.9513755580358, 448.43366350446433],
+ [619.99099609375, 450.8778599330358],
+ [624.2479715401787, 456.2194475446429],
+ [628.1434095982145, 463.9899553571429],
+ [629.8492550223216, 476.0276227678571],
+ [631.2750362723216, 535.7322126116071],
+ [624.6757059151787, 546.6496233258929],
+ [617.1801702008929, 552.6480887276786],
+ [603.7269056919645, 554.5066964285714],
+ [588.0178515625, 557.5517578125],
+ [529.4386104910716, 556.2991071428571],
+ [422.1994921875001, 551.38525390625],
+ [291.66921875, 552.5767996651786],
+ [219.4279380580357, 547.4949079241071],
+ [209.53912667410714, 541.5931919642858],
+ [206.70793247767858, 526.1947544642858],
+ [206.70793247767858, 507.4049944196429],
+ [206.12234375000003, 468.7663225446429],
+ [204.48778738839286, 459.44782366071433],
+ [197.56256417410714, 452.8943219866071],
+ [170.31995814732142, 456.27546037946433],
+ [1.8078906249999704, 460.5935407366071]
+ ]
+ }, {
+ effect: {
+ color: '#00067d',
+ constantSpeed: 80,
+ delay: 0,
+ },
+ coords: [
+ [779.4595368303574, 287.98744419642856],
+ [689.07009765625, 291.0477818080357],
+ [301.83300223214286, 290.49783761160717],
+ [229.31165736607142, 291.73011997767856],
+ [220.73660156250003, 297.4077845982143],
+ [214.74832031250003, 308.52378627232144],
+ [213.82156250000003, 421.35400390625],
+ [213.19523716517858, 443.0564313616071],
+ [222.31005301339286, 455.95465959821433],
+ [271.71846540178575, 454.37611607142856],
+ [359.64843191964286, 455.9393833705358],
+ [580.2524358258929, 448.11286272321433],
+ [627.7156752232145, 460.7463030133929],
+ [632.3290959821429, 536.6386021205358],
+ [628.9123130580358, 548.4776785714286],
+ [612.5667494419645, 556.8235909598214],
+ [543.7167912946429, 555.4741908482143],
+ [429.1756361607143, 551.9402901785714],
+ [293.42089285714286, 551.2172154017858],
+ [226.20039899553575, 556.0699637276786],
+ [215.49176339285714, 562.7253069196429],
+ [213.21051339285714, 591.6024693080358],
+ [212.00878348214286, 625.6735491071429],
+ [197.43017020089286, 645.0743582589286],
+ [187.41405691964286, 647.0857282366071],
+ [101.79589285714286, 649.0207170758929],
+ [69.96023437499997, 650.1613420758929],
+ [56.48150948660714, 656.8268694196429],
+ [51.11446149553569, 665.2542550223214]
+ ]
+ }, {
+ effect: {
+ color: '#997405',
+ constantSpeed: 60,
+ delay: 0,
+ },
+ coords: [
+ [2.5920703124999704, 450.66908482142856],
+ [204.0651450892857, 453.13364955357144],
+ [378.72844029017864, 453.13874162946433],
+ [551.1817745535716, 456.1532505580358],
+ [578.3734598214287, 456.91196986607144],
+ [601.2317885044645, 458.9895368303571],
+ [614.1503850446429, 462.1669921875],
+ [618.99294921875, 479.68882533482144],
+ [620.0826534598216, 513.5969587053571],
+ [615.6932840401787, 528.7306082589286],
+ [608.4829045758929, 533.2625558035714],
+ [592.7127455357145, 534.9582170758929],
+ [583.09890625, 527.5492466517858],
+ [578.6535239955358, 516.4077845982143],
+ [578.6535239955358, 498.36146763392856],
+ [577.9966462053571, 477.0613141741071],
+ [575.3691350446429, 469.1940569196429],
+ [569.0753292410716, 462.63037109375],
+ [553.9518638392858, 460.6444614955358],
+ [298.10051060267864, 465.61432756696433],
+ [193.49908761160714, 460.1759905133929],
+ [116.40505859374997, 465.78236607142856],
+ [3.5137360491071092, 463.47565569196433]
+ ]
+ }]
+ }]
+ };
+
+ myChart.setOption(option);
+
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-circular-layout.ts b/public/examples/ts/graph-circular-layout.ts
new file mode 100644
index 0000000..275e57d
--- /dev/null
+++ b/public/examples/ts/graph-circular-layout.ts
@@ -0,0 +1,68 @@
+/*
+title: Les Miserables
+category: graph
+titleCN: 悲惨世界人物关系图(环形布局)
+shotWidth: 900
+difficulty: 5
+*/
+
+interface GraphNode {
+ symbolSize: number
+ label?: {
+ show?: boolean
+ }
+}
+
+myChart.showLoading();
+$.getJSON(ROOT_PATH + '/data/asset/data/les-miserables.json', function (graph) {
+ myChart.hideLoading();
+
+ graph.nodes.forEach(function (node: GraphNode) {
+ node.label = {
+ show: node.symbolSize > 30
+ };
+ });
+
+ option = {
+ title: {
+ text: 'Les Miserables',
+ subtext: 'Circular layout',
+ top: 'bottom',
+ left: 'right'
+ },
+ tooltip: {},
+ legend: [{
+ data: graph.categories.map(function (a: { name: string }) {
+ return a.name;
+ })
+ }],
+ animationDurationUpdate: 1500,
+ animationEasingUpdate: 'quinticInOut',
+ series: [
+ {
+ name: 'Les Miserables',
+ type: 'graph',
+ layout: 'circular',
+ circular: {
+ rotateLabel: true
+ },
+ data: graph.nodes,
+ links: graph.links,
+ categories: graph.categories,
+ roam: true,
+ label: {
+ position: 'right',
+ formatter: '{b}'
+ },
+ lineStyle: {
+ color: 'source',
+ curveness: 0.3
+ }
+ }
+ ]
+ };
+
+ myChart.setOption(option);
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-force-dynamic.ts b/public/examples/ts/graph-force-dynamic.ts
new file mode 100644
index 0000000..80f56ca
--- /dev/null
+++ b/public/examples/ts/graph-force-dynamic.ts
@@ -0,0 +1,59 @@
+/*
+title: Graph Dynamic
+category: graph
+shotDelay: 5000
+titleCN: 动态增加图节点
+difficulty: 6
+*/
+
+const data: NonNullable<echarts.GraphSeriesOption['data']> = [{
+ fixed: true,
+ x: myChart.getWidth() / 2,
+ y: myChart.getHeight() / 2,
+ symbolSize: 20,
+ id: '-1'
+}];
+
+const edges: NonNullable<echarts.GraphSeriesOption['edges']> = [];
+
+option = {
+ series: [{
+ type: 'graph',
+ layout: 'force',
+ animation: false,
+ data: data,
+ force: {
+ // initLayout: 'circular'
+ // gravity: 0
+ repulsion: 100,
+ edgeLength: 5
+ },
+ edges: edges
+ }]
+};
+
+setInterval(function () {
+ data.push({
+ id: data.length + ''
+ });
+ var source = Math.round((data.length - 1) * Math.random());
+ var target = Math.round((data.length - 1) * Math.random());
+ if (source !== target) {
+ edges.push({
+ source: source,
+ target: target
+ });
+ }
+ myChart.setOption({
+ series: [{
+ roam: true,
+ data: data,
+ edges: edges
+ }]
+ });
+
+ // console.log('nodes: ' + data.length);
+ // console.log('links: ' + data.length);
+}, 200);
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-force.ts b/public/examples/ts/graph-force.ts
new file mode 100644
index 0000000..9d6a088
--- /dev/null
+++ b/public/examples/ts/graph-force.ts
@@ -0,0 +1,56 @@
+/*
+title: Force Layout
+category: graph
+titleCN: 力引导布局
+difficulty: 3
+*/
+
+interface GraphNode {
+ symbolSize: number
+ label?: {
+ show?: boolean
+ }
+}
+myChart.showLoading();
+$.get(ROOT_PATH + '/data/asset/data/les-miserables.json', function (graph) {
+ myChart.hideLoading();
+ graph.nodes.forEach(function (node: GraphNode) {
+ node.symbolSize = 5;
+ });
+ option = {
+ title: {
+ text: 'Les Miserables',
+ subtext: 'Default layout',
+ top: 'bottom',
+ left: 'right'
+ },
+ tooltip: {},
+ legend: [{
+ // selectedMode: 'single',
+ data: graph.categories.map(function (a: { name: string }) {
+ return a.name;
+ })
+ }],
+ series: [
+ {
+ name: 'Les Miserables',
+ type: 'graph',
+ layout: 'force',
+ data: graph.nodes,
+ links: graph.links,
+ categories: graph.categories,
+ roam: true,
+ label: {
+ position: 'right'
+ },
+ force: {
+ repulsion: 100
+ }
+ }
+ ]
+ };
+
+ myChart.setOption(option);
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-force2.ts b/public/examples/ts/graph-force2.ts
new file mode 100644
index 0000000..7aff54b
--- /dev/null
+++ b/public/examples/ts/graph-force2.ts
@@ -0,0 +1,66 @@
+/*
+title: Force Layout
+category: graph
+titleCN: 力引导布局
+difficulty: 1
+*/
+
+function createNodes(count: number) {
+ var nodes = [];
+ for (var i = 0; i < count; i++) {
+ nodes.push({
+ id: i + ''
+ });
+ }
+ return nodes;
+}
+
+function createEdges(count: number) {
+ var edges = [];
+ if (count === 2) {
+ return [
+ [0, 1]
+ ];
+ }
+ for (var i = 0; i < count; i++) {
+ edges.push([i, (i + 1) % count]);
+ }
+ return edges;
+}
+
+var datas = [];
+for (var i = 0; i < 16; i++) {
+ datas.push({
+ nodes: createNodes(i + 2),
+ edges: createEdges(i + 2)
+ });
+}
+
+option = {
+ series: datas.map(function (item, idx) {
+ return {
+ type: 'graph',
+ layout: 'force',
+ animation: false,
+ data: item.nodes,
+ left: (idx % 4) * 25 + '%',
+ top: Math.floor(idx / 4) * 25 + '%',
+ width: '25%',
+ height: '25%',
+ force: {
+ // initLayout: 'circular'
+ // gravity: 0
+ repulsion: 60,
+ edgeLength: 2
+ },
+ edges: item.edges.map(function (e) {
+ return {
+ source: e[0] + '',
+ target: e[1] + ''
+ };
+ })
+ };
+ })
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-grid.ts b/public/examples/ts/graph-grid.ts
new file mode 100644
index 0000000..f1cae83
--- /dev/null
+++ b/public/examples/ts/graph-grid.ts
@@ -0,0 +1,52 @@
+/*
+title: Graph on Cartesian
+category: graph
+titleCN: 笛卡尔坐标系上的 Graph
+difficulty: 2
+*/
+
+const axisData = ['Mon', 'Tue', 'Wed', 'Very Loooong Thu', 'Fri', 'Sat', 'Sun'];
+const data = axisData.map(function (item, i) {
+ return Math.round(Math.random() * 1000 * (i + 1));
+});
+const links = data.map(function (item, i) {
+ return {
+ source: i,
+ target: i + 1
+ };
+});
+links.pop();
+option = {
+ title: {
+ text: 'Graph on Cartesian'
+ },
+ tooltip: {},
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: axisData
+ },
+ yAxis: {
+ type: 'value'
+ },
+ series: [
+ {
+ type: 'graph',
+ layout: 'none',
+ coordinateSystem: 'cartesian2d',
+ symbolSize: 40,
+ label: {
+ show: true
+ },
+ edgeSymbol: ['circle', 'arrow'],
+ edgeSymbolSize: [4, 10],
+ data: data,
+ links: links,
+ lineStyle: {
+ color: '#2f4554'
+ }
+ }
+ ]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-label-overlap.ts b/public/examples/ts/graph-label-overlap.ts
new file mode 100644
index 0000000..aa985ae
--- /dev/null
+++ b/public/examples/ts/graph-label-overlap.ts
@@ -0,0 +1,51 @@
+/*
+title: Hide Overlapped Label
+category: graph
+titleCN: 关系图自动隐藏重叠标签
+difficulty: 3
+*/
+
+myChart.showLoading();
+$.getJSON(ROOT_PATH + '/data/asset/data/les-miserables.json', function (graph) {
+ myChart.hideLoading();
+
+ option = {
+ tooltip: {},
+ legend: [{
+ data: graph.categories.map(function (a) {
+ return a.name;
+ })
+ }],
+ series: [
+ {
+ name: 'Les Miserables',
+ type: 'graph',
+ layout: 'none',
+ data: graph.nodes,
+ links: graph.links,
+ categories: graph.categories,
+ roam: true,
+ label: {
+ show: true,
+ position: 'right',
+ formatter: '{b}'
+ },
+ labelLayout: {
+ hideOverlap: true
+ },
+ scaleLimit: {
+ min: 0.4,
+ max: 2
+ },
+ lineStyle: {
+ color: 'source',
+ curveness: 0.3
+ }
+ }
+ ]
+ };
+
+ myChart.setOption(option);
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-life-expectancy.ts b/public/examples/ts/graph-life-expectancy.ts
new file mode 100644
index 0000000..59b9e51
--- /dev/null
+++ b/public/examples/ts/graph-life-expectancy.ts
@@ -0,0 +1,107 @@
+/*
+title: Graph Life Expectancy
+category: graph
+titleCN: Graph Life Expectancy
+difficulty: 7
+*/
+
+
+$.get(ROOT_PATH + '/data/asset/data/life-expectancy.json', function (rawData) {
+
+ const series: NonNullable<echarts.EChartsOption['series']> = [];
+
+ rawData.counties.forEach(function (country: string) {
+ const data = rawData.series.map(function (yearData: (string | number)[][]) {
+ const item = yearData.filter(function (item: (string | number)[]) {
+ return item[3] === country;
+ })[0];
+ return {
+ label: {
+ show: +item[4] % 20 === 0 && +item[4] > 1940,
+ position: 'top'
+ },
+ emphasis: {
+ label: {
+ show: true
+ }
+ },
+ name: item[4],
+ value: item
+ };
+ });
+ var links = data.map(function (item: unknown, idx: number) {
+ return {
+ source: idx,
+ target: idx + 1
+ };
+ });
+ links.pop();
+
+ series.push({
+ name: country,
+ type: 'graph',
+ coordinateSystem: 'cartesian2d',
+ data: data,
+ links: links,
+ edgeSymbol: ['none', 'arrow'],
+ edgeSymbolSize: 5,
+ legendHoverLink: false,
+ lineStyle: {
+ color: '#333'
+ },
+ itemStyle: {
+ borderWidth: 1,
+ borderColor: '#333'
+ },
+ label: {
+ color: '#333',
+ position: 'right'
+ },
+ symbolSize: 10,
+ animationDelay: function (idx) {
+ return idx * 100;
+ }
+ });
+ });
+
+ option = {
+ visualMap: {
+ show: false,
+ min: 0,
+ max: 100,
+ dimension: 1
+ },
+ legend: {
+ data: rawData.counties,
+ selectedMode: 'single',
+ right: 100
+ },
+ grid: {
+ left: 0,
+ bottom: 0,
+ containLabel: true,
+ top: 80
+ },
+ xAxis: {
+ type: 'value'
+ },
+ yAxis: {
+ type: 'value',
+ scale: true
+ },
+ toolbox: {
+ feature: {
+ dataZoom: {}
+ }
+ },
+ dataZoom: {
+ type: 'inside'
+ },
+ series: series
+ };
+
+
+ myChart.setOption(option);
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-npm.ts b/public/examples/ts/graph-npm.ts
new file mode 100644
index 0000000..df4fdfe
--- /dev/null
+++ b/public/examples/ts/graph-npm.ts
@@ -0,0 +1,70 @@
+/*
+title: NPM Dependencies
+category: graph
+titleCN: NPM 依赖关系图
+difficulty: 9
+*/
+
+interface RawNode {
+ x: number
+ y: number
+ id: string
+ label: string
+ size: number
+ color: string
+}
+
+interface RawEdge {
+ sourceID: string
+ targetID: string
+}
+
+myChart.showLoading();
+$.getJSON(ROOT_PATH + '/data/asset/data/npmdepgraph.min10.json', function (json) {
+ myChart.hideLoading();
+ myChart.setOption(option = {
+ title: {
+ text: 'NPM Dependencies'
+ },
+ animationDurationUpdate: 1500,
+ animationEasingUpdate: 'quinticInOut',
+ series: [{
+ type: 'graph',
+ layout: 'none',
+ // progressiveThreshold: 700,
+ data: json.nodes.map(function (node: RawNode) {
+ return {
+ x: node.x,
+ y: node.y,
+ id: node.id,
+ name: node.label,
+ symbolSize: node.size,
+ itemStyle: {
+ color: node.color
+ }
+ };
+ }),
+ edges: json.edges.map(function (edge: RawEdge) {
+ return {
+ source: edge.sourceID,
+ target: edge.targetID
+ };
+ }),
+ emphasis: {
+ focus: 'adjacency',
+ label: {
+ position: 'right',
+ show: true
+ }
+ },
+ roam: true,
+ lineStyle: {
+ width: 0.5,
+ curveness: 0.3,
+ opacity: 0.7
+ }
+ }]
+ }, true);
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-simple.ts b/public/examples/ts/graph-simple.ts
new file mode 100644
index 0000000..ee89495
--- /dev/null
+++ b/public/examples/ts/graph-simple.ts
@@ -0,0 +1,89 @@
+/*
+title: Simple Graph
+category: graph
+titleCN: Graph 简单示例
+difficulty: 2
+*/
+
+option = {
+ title: {
+ text: 'Basic Graph'
+ },
+ tooltip: {},
+ animationDurationUpdate: 1500,
+ animationEasingUpdate: 'quinticInOut',
+ series: [
+ {
+ type: 'graph',
+ layout: 'none',
+ symbolSize: 50,
+ roam: true,
+ label: {
+ show: true
+ },
+ edgeSymbol: ['circle', 'arrow'],
+ edgeSymbolSize: [4, 10],
+ edgeLabel: {
+ fontSize: 20
+ },
+ data: [{
+ name: 'Node 1',
+ x: 300,
+ y: 300
+ }, {
+ name: 'Node 2',
+ x: 800,
+ y: 300
+ }, {
+ name: 'Node 3',
+ x: 550,
+ y: 100
+ }, {
+ name: 'Node 4',
+ x: 550,
+ y: 500
+ }],
+ // links: [],
+ links: [{
+ source: 0,
+ target: 1,
+ symbolSize: [5, 20],
+ label: {
+ show: true
+ },
+ lineStyle: {
+ width: 5,
+ curveness: 0.2
+ }
+ }, {
+ source: 'Node 2',
+ target: 'Node 1',
+ label: {
+ show: true
+ },
+ lineStyle: {
+ curveness: 0.2
+ }
+ }, {
+ source: 'Node 1',
+ target: 'Node 3'
+ }, {
+ source: 'Node 2',
+ target: 'Node 3'
+ }, {
+ source: 'Node 2',
+ target: 'Node 4'
+ }, {
+ source: 'Node 1',
+ target: 'Node 4'
+ }],
+ lineStyle: {
+ opacity: 0.9,
+ width: 2,
+ curveness: 0
+ }
+ }
+ ]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph-webkit-dep.ts b/public/examples/ts/graph-webkit-dep.ts
new file mode 100644
index 0000000..b894125
--- /dev/null
+++ b/public/examples/ts/graph-webkit-dep.ts
@@ -0,0 +1,45 @@
+/*
+title: Graph Webkit Dep
+category: graph
+titleCN: WebKit 模块关系依赖图
+shotWidth: 900
+difficulty: 8
+*/
+
+myChart.showLoading();
+
+myChart.showLoading();
+$.get(ROOT_PATH + '/data/asset/data/webkit-dep.json', function (webkitDep) {
+ myChart.hideLoading();
+
+ option = {
+ legend: {
+ data: ['HTMLElement', 'WebGL', 'SVG', 'CSS', 'Other']
+ },
+ series: [{
+ type: 'graph',
+ layout: 'force',
+ animation: false,
+ label: {
+ position: 'right',
+ formatter: '{b}'
+ },
+ draggable: true,
+ data: webkitDep.nodes.map(function (node: any, idx: number) {
+ node.id = idx;
+ return node;
+ }),
+ categories: webkitDep.categories,
+ force: {
+ edgeLength: 5,
+ repulsion: 20,
+ gravity: 0.2
+ },
+ edges: webkitDep.links
+ }]
+ };
+
+ myChart.setOption(option);
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/graph.ts b/public/examples/ts/graph.ts
new file mode 100644
index 0000000..55e81e5
--- /dev/null
+++ b/public/examples/ts/graph.ts
@@ -0,0 +1,70 @@
+/*
+title: Les Miserables
+category: graph
+titleCN: 悲惨世界人物关系图
+difficulty: 4
+*/
+
+interface GraphNode {
+ symbolSize: number
+ label?: {
+ show?: boolean
+ }
+}
+
+myChart.showLoading();
+$.getJSON(ROOT_PATH + '/data/asset/data/les-miserables.json', function (graph) {
+ myChart.hideLoading();
+
+ graph.nodes.forEach(function (node: GraphNode) {
+ node.label = {
+ show: node.symbolSize > 30
+ };
+ });
+ option = {
+ title: {
+ text: 'Les Miserables',
+ subtext: 'Default layout',
+ top: 'bottom',
+ left: 'right'
+ },
+ tooltip: {},
+ legend: [{
+ // selectedMode: 'single',
+ data: graph.categories.map(function (a: { name: string }) {
+ return a.name;
+ })
+ }],
+ animationDuration: 1500,
+ animationEasingUpdate: 'quinticInOut',
+ series: [
+ {
+ name: 'Les Miserables',
+ type: 'graph',
+ layout: 'none',
+ data: graph.nodes,
+ links: graph.links,
+ categories: graph.categories,
+ roam: true,
+ label: {
+ position: 'right',
+ formatter: '{b}'
+ },
+ lineStyle: {
+ color: 'source',
+ curveness: 0.3
+ },
+ emphasis: {
+ focus: 'adjacency',
+ lineStyle: {
+ width: 10
+ }
+ }
+ }
+ ]
+ };
+
+ myChart.setOption(option);
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/grid-multiple.ts b/public/examples/ts/grid-multiple.ts
new file mode 100644
index 0000000..20b79e8
--- /dev/null
+++ b/public/examples/ts/grid-multiple.ts
@@ -0,0 +1,176 @@
+/*
+title: Rainfall and Water Flow
+category: line
+titleCN: 雨量流量关系图
+difficulty: 4
+*/
+
+
+let timeData = [
+ '2009/6/12 2:00', '2009/6/12 3:00', '2009/6/12 4:00', '2009/6/12 5:00', '2009/6/12 6:00', '2009/6/12 7:00', '2009/6/12 8:00', '2009/6/12 9:00', '2009/6/12 10:00', '2009/6/12 11:00', '2009/6/12 12:00', '2009/6/12 13:00', '2009/6/12 14:00', '2009/6/12 15:00', '2009/6/12 16:00', '2009/6/12 17:00', '2009/6/12 18:00', '2009/6/12 19:00', '2009/6/12 20:00', '2009/6/12 21:00', '2009/6/12 22:00', '2009/6/12 23:00',
+ '2009/6/13 0:00', '2009/6/13 1:00', '2009/6/13 2:00', '2009/6/13 3:00', '2009/6/13 4:00', '2009/6/13 5:00', '2009/6/13 6:00', '2009/6/13 7:00', '2009/6/13 8:00', '2009/6/13 9:00', '2009/6/13 10:00', '2009/6/13 11:00', '2009/6/13 12:00', '2009/6/13 13:00', '2009/6/13 14:00', '2009/6/13 15:00', '2009/6/13 16:00', '2009/6/13 17:00', '2009/6/13 18:00', '2009/6/13 19:00', '2009/6/13 20:00', '2009/6/13 21:00', '2009/6/13 22:00', '2009/6/13 23:00',
+ '2009/6/14 0:00', '2009/6/14 1:00', '2009/6/14 2:00', '2009/6/14 3:00', '2009/6/14 4:00', '2009/6/14 5:00', '2009/6/14 6:00', '2009/6/14 7:00', '2009/6/14 8:00', '2009/6/14 9:00', '2009/6/14 10:00', '2009/6/14 11:00', '2009/6/14 12:00', '2009/6/14 13:00', '2009/6/14 14:00', '2009/6/14 15:00', '2009/6/14 16:00', '2009/6/14 17:00', '2009/6/14 18:00', '2009/6/14 19:00', '2009/6/14 20:00', '2009/6/14 21:00', '2009/6/14 22:00', '2009/6/14 23:00',
+ '2009/6/15 0:00', '2009/6/15 1:00', '2009/6/15 2:00', '2009/6/15 3:00', '2009/6/15 4:00', '2009/6/15 5:00', '2009/6/15 6:00', '2009/6/15 7:00', '2009/6/15 8:00', '2009/6/15 9:00', '2009/6/15 10:00', '2009/6/15 11:00', '2009/6/15 12:00', '2009/6/15 13:00', '2009/6/15 14:00', '2009/6/15 15:00', '2009/6/15 16:00', '2009/6/15 17:00', '2009/6/15 18:00', '2009/6/15 19:00', '2009/6/15 20:00', '2009/6/15 21:00', '2009/6/15 22:00', '2009/6/15 23:00',
+ '2009/6/15 0:00', '2009/6/16 1:00', '2009/6/16 2:00', '2009/6/16 3:00', '2009/6/16 4:00', '2009/6/16 5:00', '2009/6/16 6:00', '2009/6/16 7:00', '2009/6/16 8:00', '2009/6/16 9:00', '2009/6/16 10:00', '2009/6/16 11:00', '2009/6/16 12:00', '2009/6/16 13:00', '2009/6/16 14:00', '2009/6/16 15:00', '2009/6/16 16:00', '2009/6/16 17:00', '2009/6/16 18:00', '2009/6/16 19:00', '2009/6/16 20:00', '2009/6/16 21:00', '2009/6/16 22:00', '2009/6/16 23:00',
+ '2009/6/15 0:00', '2009/6/17 1:00', '2009/6/17 2:00', '2009/6/17 3:00', '2009/6/17 4:00', '2009/6/17 5:00', '2009/6/17 6:00', '2009/6/17 7:00', '2009/6/17 8:00', '2009/6/17 9:00', '2009/6/17 10:00', '2009/6/17 11:00', '2009/6/17 12:00', '2009/6/17 13:00', '2009/6/17 14:00', '2009/6/17 15:00', '2009/6/17 16:00', '2009/6/17 17:00', '2009/6/17 18:00', '2009/6/17 19:00', '2009/6/17 20:00', '2009/6/17 21:00', '2009/6/17 22:00', '2009/6/17 23:00',
+ '2009/6/18 0:00', '2009/6/18 1:00', '2009/6/18 2:00', '2009/6/18 3:00', '2009/6/18 4:00', '2009/6/18 5:00', '2009/6/18 6:00', '2009/6/18 7:00', '2009/6/18 8:00', '2009/6/18 9:00', '2009/6/18 10:00', '2009/6/18 11:00', '2009/6/18 12:00', '2009/6/18 13:00', '2009/6/18 14:00', '2009/6/18 15:00', '2009/6/18 16:00', '2009/6/18 17:00', '2009/6/18 18:00', '2009/6/18 19:00', '2009/6/18 20:00', '2009/6/18 21:00', '2009/6/18 22:00', '2009/6/18 23:00',
+ '2009/6/15 0:00', '2009/6/19 1:00', '2009/6/19 2:00', '2009/6/19 3:00', '2009/6/19 4:00', '2009/6/19 5:00', '2009/6/19 6:00', '2009/6/19 7:00', '2009/6/19 8:00', '2009/6/19 9:00', '2009/6/19 10:00', '2009/6/19 11:00', '2009/6/19 12:00', '2009/6/19 13:00', '2009/6/19 14:00', '2009/6/19 15:00', '2009/6/19 16:00', '2009/6/19 17:00', '2009/6/19 18:00', '2009/6/19 19:00', '2009/6/19 20:00', '2009/6/19 21:00', '2009/6/19 22:00', '2009/6/19 23:00',
+ '2009/6/20 0:00', '2009/6/20 1:00', '2009/6/20 2:00', '2009/6/20 3:00', '2009/6/20 4:00', '2009/6/20 5:00', '2009/6/20 6:00', '2009/6/20 7:00', '2009/6/20 8:00', '2009/6/20 9:00', '2009/6/20 10:00', '2009/6/20 11:00', '2009/6/20 12:00', '2009/6/20 13:00', '2009/6/20 14:00', '2009/6/20 15:00', '2009/6/20 16:00', '2009/6/20 17:00', '2009/6/20 18:00', '2009/6/20 19:00', '2009/6/20 20:00', '2009/6/20 21:00', '2009/6/20 22:00', '2009/6/20 23:00',
+ '2009/6/21 0:00', '2009/6/21 1:00', '2009/6/21 2:00', '2009/6/21 3:00', '2009/6/21 4:00', '2009/6/21 5:00', '2009/6/21 6:00', '2009/6/21 7:00', '2009/6/21 8:00', '2009/6/21 9:00', '2009/6/21 10:00', '2009/6/21 11:00', '2009/6/21 12:00', '2009/6/21 13:00', '2009/6/21 14:00', '2009/6/21 15:00', '2009/6/21 16:00', '2009/6/21 17:00', '2009/6/21 18:00', '2009/6/21 19:00', '2009/6/21 20:00', '2009/6/21 21:00', '2009/6/21 22:00', '2009/6/21 23:00',
+ '2009/6/22 0:00', '2009/6/22 1:00', '2009/6/22 2:00', '2009/6/22 3:00', '2009/6/22 4:00', '2009/6/22 5:00', '2009/6/22 6:00', '2009/6/22 7:00', '2009/6/22 8:00', '2009/6/22 9:00', '2009/6/22 10:00', '2009/6/22 11:00', '2009/6/22 12:00', '2009/6/22 13:00', '2009/6/22 14:00', '2009/6/22 15:00', '2009/6/22 16:00', '2009/6/22 17:00', '2009/6/22 18:00', '2009/6/22 19:00', '2009/6/22 20:00', '2009/6/22 21:00', '2009/6/22 22:00', '2009/6/22 23:00',
+ '2009/6/23 0:00', '2009/6/23 1:00', '2009/6/23 2:00', '2009/6/23 3:00', '2009/6/23 4:00', '2009/6/23 5:00', '2009/6/23 6:00', '2009/6/23 7:00', '2009/6/23 8:00', '2009/6/23 9:00', '2009/6/23 10:00', '2009/6/23 11:00', '2009/6/23 12:00', '2009/6/23 13:00', '2009/6/23 14:00', '2009/6/23 15:00', '2009/6/23 16:00', '2009/6/23 17:00', '2009/6/23 18:00', '2009/6/23 19:00', '2009/6/23 20:00', '2009/6/23 21:00', '2009/6/23 22:00', '2009/6/23 23:00',
+ '2009/6/24 0:00', '2009/6/24 1:00', '2009/6/24 2:00', '2009/6/24 3:00', '2009/6/24 4:00', '2009/6/24 5:00', '2009/6/24 6:00', '2009/6/24 7:00', '2009/6/24 8:00', '2009/6/24 9:00', '2009/6/24 10:00', '2009/6/24 11:00', '2009/6/24 12:00', '2009/6/24 13:00', '2009/6/24 14:00', '2009/6/24 15:00', '2009/6/24 16:00', '2009/6/24 17:00', '2009/6/24 18:00', '2009/6/24 19:00', '2009/6/24 20:00', '2009/6/24 21:00', '2009/6/24 22:00', '2009/6/24 23:00',
+ '2009/6/25 0:00', '2009/6/25 1:00', '2009/6/25 2:00', '2009/6/25 3:00', '2009/6/25 4:00', '2009/6/25 5:00', '2009/6/25 6:00', '2009/6/25 7:00', '2009/6/25 8:00', '2009/6/25 9:00', '2009/6/25 10:00', '2009/6/25 11:00', '2009/6/25 12:00', '2009/6/25 13:00', '2009/6/25 14:00', '2009/6/25 15:00', '2009/6/25 16:00', '2009/6/25 17:00', '2009/6/25 18:00', '2009/6/25 19:00', '2009/6/25 20:00', '2009/6/25 21:00', '2009/6/25 22:00', '2009/6/25 23:00',
+ '2009/6/26 0:00', '2009/6/26 1:00', '2009/6/26 2:00', '2009/6/26 3:00', '2009/6/26 4:00', '2009/6/26 5:00', '2009/6/26 6:00', '2009/6/26 7:00', '2009/6/26 8:00', '2009/6/26 9:00', '2009/6/26 10:00', '2009/6/26 11:00', '2009/6/26 12:00', '2009/6/26 13:00', '2009/6/26 14:00', '2009/6/26 15:00', '2009/6/26 16:00', '2009/6/26 17:00', '2009/6/26 18:00', '2009/6/26 19:00', '2009/6/26 20:00', '2009/6/26 21:00', '2009/6/26 22:00', '2009/6/26 23:00',
+ '2009/6/27 0:00', '2009/6/27 1:00', '2009/6/27 2:00', '2009/6/27 3:00', '2009/6/27 4:00', '2009/6/27 5:00', '2009/6/27 6:00', '2009/6/27 7:00', '2009/6/27 8:00', '2009/6/27 9:00', '2009/6/27 10:00', '2009/6/27 11:00', '2009/6/27 12:00', '2009/6/27 13:00', '2009/6/27 14:00', '2009/6/27 15:00', '2009/6/27 16:00', '2009/6/27 17:00', '2009/6/27 18:00', '2009/6/27 19:00', '2009/6/27 20:00', '2009/6/27 21:00', '2009/6/27 22:00', '2009/6/27 23:00',
+ '2009/6/28 0:00', '2009/6/28 1:00', '2009/6/28 2:00', '2009/6/28 3:00', '2009/6/28 4:00', '2009/6/28 5:00', '2009/6/28 6:00', '2009/6/28 7:00', '2009/6/28 8:00', '2009/6/28 9:00', '2009/6/28 10:00', '2009/6/28 11:00', '2009/6/28 12:00', '2009/6/28 13:00', '2009/6/28 14:00', '2009/6/28 15:00', '2009/6/28 16:00', '2009/6/28 17:00', '2009/6/28 18:00', '2009/6/28 19:00', '2009/6/28 20:00', '2009/6/28 21:00', '2009/6/28 22:00', '2009/6/28 23:00',
+ '2009/6/29 0:00', '2009/6/29 1:00', '2009/6/29 2:00', '2009/6/29 3:00', '2009/6/29 4:00', '2009/6/29 5:00', '2009/6/29 6:00', '2009/6/29 7:00', '2009/6/29 8:00', '2009/6/29 9:00', '2009/6/29 10:00', '2009/6/29 11:00', '2009/6/29 12:00', '2009/6/29 13:00', '2009/6/29 14:00', '2009/6/29 15:00', '2009/6/29 16:00', '2009/6/29 17:00', '2009/6/29 18:00', '2009/6/29 19:00', '2009/6/29 20:00', '2009/6/29 21:00', '2009/6/29 22:00', '2009/6/29 23:00',
+ '2009/6/30 0:00', '2009/6/30 1:00', '2009/6/30 2:00', '2009/6/30 3:00', '2009/6/30 4:00', '2009/6/30 5:00', '2009/6/30 6:00', '2009/6/30 7:00', '2009/6/30 8:00', '2009/6/30 9:00', '2009/6/30 10:00', '2009/6/30 11:00', '2009/6/30 12:00', '2009/6/30 13:00', '2009/6/30 14:00', '2009/6/30 15:00', '2009/6/30 16:00', '2009/6/30 17:00', '2009/6/30 18:00', '2009/6/30 19:00', '2009/6/30 20:00', '2009/6/30 21:00', '2009/6/30 22:00', '2009/6/30 23:00',
+ '2009/7/1 0:00', '2009/7/1 1:00', '2009/7/1 2:00', '2009/7/1 3:00', '2009/7/1 4:00', '2009/7/1 5:00', '2009/7/1 6:00', '2009/7/1 7:00', '2009/7/1 8:00', '2009/7/1 9:00', '2009/7/1 10:00', '2009/7/1 11:00', '2009/7/1 12:00', '2009/7/1 13:00', '2009/7/1 14:00', '2009/7/1 15:00', '2009/7/1 16:00', '2009/7/1 17:00', '2009/7/1 18:00', '2009/7/1 19:00', '2009/7/1 20:00', '2009/7/1 21:00', '2009/7/1 22:00', '2009/7/1 23:00',
+ '2009/7/2 0:00', '2009/7/2 1:00', '2009/7/2 2:00', '2009/7/2 3:00', '2009/7/2 4:00', '2009/7/2 5:00', '2009/7/2 6:00', '2009/7/2 7:00', '2009/7/2 8:00', '2009/7/2 9:00', '2009/7/2 10:00', '2009/7/2 11:00', '2009/7/2 12:00', '2009/7/2 13:00', '2009/7/2 14:00', '2009/7/2 15:00', '2009/7/2 16:00', '2009/7/2 17:00', '2009/7/2 18:00', '2009/7/2 19:00', '2009/7/2 20:00', '2009/7/2 21:00', '2009/7/2 22:00', '2009/7/2 23:00',
+ '2009/7/3 0:00', '2009/7/3 1:00', '2009/7/3 2:00', '2009/7/3 3:00', '2009/7/3 4:00', '2009/7/3 5:00', '2009/7/3 6:00', '2009/7/3 7:00', '2009/7/3 8:00', '2009/7/3 9:00', '2009/7/3 10:00', '2009/7/3 11:00', '2009/7/3 12:00', '2009/7/3 13:00', '2009/7/3 14:00', '2009/7/3 15:00', '2009/7/3 16:00', '2009/7/3 17:00', '2009/7/3 18:00', '2009/7/3 19:00', '2009/7/3 20:00', '2009/7/3 21:00', '2009/7/3 22:00', '2009/7/3 23:00',
+ '2009/7/4 0:00', '2009/7/4 1:00', '2009/7/4 2:00', '2009/7/4 3:00', '2009/7/4 4:00', '2009/7/4 5:00', '2009/7/4 6:00', '2009/7/4 7:00', '2009/7/4 8:00', '2009/7/4 9:00', '2009/7/4 10:00', '2009/7/4 11:00', '2009/7/4 12:00', '2009/7/4 13:00', '2009/7/4 14:00', '2009/7/4 15:00', '2009/7/4 16:00', '2009/7/4 17:00', '2009/7/4 18:00', '2009/7/4 19:00', '2009/7/4 20:00', '2009/7/4 21:00', '2009/7/4 22:00', '2009/7/4 23:00',
+ '2009/7/5 0:00', '2009/7/5 1:00', '2009/7/5 2:00', '2009/7/5 3:00', '2009/7/5 4:00', '2009/7/5 5:00', '2009/7/5 6:00', '2009/7/5 7:00', '2009/7/5 8:00', '2009/7/5 9:00', '2009/7/5 10:00', '2009/7/5 11:00', '2009/7/5 12:00', '2009/7/5 13:00', '2009/7/5 14:00', '2009/7/5 15:00', '2009/7/5 16:00', '2009/7/5 17:00', '2009/7/5 18:00', '2009/7/5 19:00', '2009/7/5 20:00', '2009/7/5 21:00', '2009/7/5 22:00', '2009/7/5 23:00',
+ '2009/7/6 0:00', '2009/7/6 1:00', '2009/7/6 2:00', '2009/7/6 3:00', '2009/7/6 4:00', '2009/7/6 5:00', '2009/7/6 6:00', '2009/7/6 7:00', '2009/7/6 8:00', '2009/7/6 9:00', '2009/7/6 10:00', '2009/7/6 11:00', '2009/7/6 12:00', '2009/7/6 13:00', '2009/7/6 14:00', '2009/7/6 15:00', '2009/7/6 16:00', '2009/7/6 17:00', '2009/7/6 18:00', '2009/7/6 19:00', '2009/7/6 20:00', '2009/7/6 21:00', '2009/7/6 22:00', '2009/7/6 23:00',
+ '2009/7/7 0:00', '2009/7/7 1:00', '2009/7/7 2:00', '2009/7/7 3:00', '2009/7/7 4:00', '2009/7/7 5:00', '2009/7/7 6:00', '2009/7/7 7:00', '2009/7/7 8:00', '2009/7/7 9:00', '2009/7/7 10:00', '2009/7/7 11:00', '2009/7/7 12:00', '2009/7/7 13:00', '2009/7/7 14:00', '2009/7/7 15:00', '2009/7/7 16:00', '2009/7/7 17:00', '2009/7/7 18:00', '2009/7/7 19:00', '2009/7/7 20:00', '2009/7/7 21:00', '2009/7/7 22:00', '2009/7/7 23:00',
+ '2009/7/8 0:00', '2009/7/8 1:00', '2009/7/8 2:00', '2009/7/8 3:00', '2009/7/8 4:00', '2009/7/8 5:00', '2009/7/8 6:00', '2009/7/8 7:00', '2009/7/8 8:00', '2009/7/8 9:00', '2009/7/8 10:00', '2009/7/8 11:00', '2009/7/8 12:00', '2009/7/8 13:00', '2009/7/8 14:00', '2009/7/8 15:00', '2009/7/8 16:00', '2009/7/8 17:00', '2009/7/8 18:00', '2009/7/8 19:00', '2009/7/8 20:00', '2009/7/8 21:00', '2009/7/8 22:00', '2009/7/8 23:00',
+ '2009/7/9 0:00', '2009/7/9 1:00', '2009/7/9 2:00', '2009/7/9 3:00', '2009/7/9 4:00', '2009/7/9 5:00', '2009/7/9 6:00', '2009/7/9 7:00', '2009/7/9 8:00', '2009/7/9 9:00', '2009/7/9 10:00', '2009/7/9 11:00', '2009/7/9 12:00', '2009/7/9 13:00', '2009/7/9 14:00', '2009/7/9 15:00', '2009/7/9 16:00', '2009/7/9 17:00', '2009/7/9 18:00', '2009/7/9 19:00', '2009/7/9 20:00', '2009/7/9 21:00', '2009/7/9 22:00', '2009/7/9 23:00',
+ '2009/7/10 0:00', '2009/7/10 1:00', '2009/7/10 2:00', '2009/7/10 3:00', '2009/7/10 4:00', '2009/7/10 5:00', '2009/7/10 6:00', '2009/7/10 7:00', '2009/7/10 8:00', '2009/7/10 9:00', '2009/7/10 10:00', '2009/7/10 11:00', '2009/7/10 12:00', '2009/7/10 13:00', '2009/7/10 14:00', '2009/7/10 15:00', '2009/7/10 16:00', '2009/7/10 17:00', '2009/7/10 18:00', '2009/7/10 19:00', '2009/7/10 20:00', '2009/7/10 21:00', '2009/7/10 22:00', '2009/7/10 23:00',
+ '2009/7/11 0:00', '2009/7/11 1:00', '2009/7/11 2:00', '2009/7/11 3:00', '2009/7/11 4:00', '2009/7/11 5:00', '2009/7/11 6:00', '2009/7/11 7:00', '2009/7/11 8:00', '2009/7/11 9:00', '2009/7/11 10:00', '2009/7/11 11:00', '2009/7/11 12:00', '2009/7/11 13:00', '2009/7/11 14:00', '2009/7/11 15:00', '2009/7/11 16:00', '2009/7/11 17:00', '2009/7/11 18:00', '2009/7/11 19:00', '2009/7/11 20:00', '2009/7/11 21:00', '2009/7/11 22:00', '2009/7/11 23:00',
+ '2009/7/12 0:00', '2009/7/12 1:00', '2009/7/12 2:00', '2009/7/12 3:00', '2009/7/12 4:00', '2009/7/12 5:00', '2009/7/12 6:00', '2009/7/12 7:00', '2009/7/12 8:00', '2009/7/12 9:00', '2009/7/12 10:00', '2009/7/12 11:00', '2009/7/12 12:00', '2009/7/12 13:00', '2009/7/12 14:00', '2009/7/12 15:00', '2009/7/12 16:00', '2009/7/12 17:00', '2009/7/12 18:00', '2009/7/12 19:00', '2009/7/12 20:00', '2009/7/12 21:00', '2009/7/12 22:00', '2009/7/12 23:00',
+ '2009/7/13 0:00', '2009/7/13 1:00', '2009/7/13 2:00', '2009/7/13 3:00', '2009/7/13 4:00', '2009/7/13 5:00', '2009/7/13 6:00', '2009/7/13 7:00', '2009/7/13 8:00', '2009/7/13 9:00', '2009/7/13 10:00', '2009/7/13 11:00', '2009/7/13 12:00', '2009/7/13 13:00', '2009/7/13 14:00', '2009/7/13 15:00', '2009/7/13 16:00', '2009/7/13 17:00', '2009/7/13 18:00', '2009/7/13 19:00', '2009/7/13 20:00', '2009/7/13 21:00', '2009/7/13 22:00', '2009/7/13 23:00',
+ '2009/7/14 0:00', '2009/7/14 1:00', '2009/7/14 2:00', '2009/7/14 3:00', '2009/7/14 4:00', '2009/7/14 5:00', '2009/7/14 6:00', '2009/7/14 7:00', '2009/7/14 8:00', '2009/7/14 9:00', '2009/7/14 10:00', '2009/7/14 11:00', '2009/7/14 12:00', '2009/7/14 13:00', '2009/7/14 14:00', '2009/7/14 15:00', '2009/7/14 16:00', '2009/7/14 17:00', '2009/7/14 18:00', '2009/7/14 19:00', '2009/7/14 20:00', '2009/7/14 21:00', '2009/7/14 22:00', '2009/7/14 23:00',
+ '2009/7/15 0:00', '2009/7/15 1:00', '2009/7/15 2:00', '2009/7/15 3:00', '2009/7/15 4:00', '2009/7/15 5:00', '2009/7/15 6:00', '2009/7/15 7:00', '2009/7/15 8:00', '2009/7/15 9:00', '2009/7/15 10:00', '2009/7/15 11:00', '2009/7/15 12:00', '2009/7/15 13:00', '2009/7/15 14:00', '2009/7/15 15:00', '2009/7/15 16:00', '2009/7/15 17:00', '2009/7/15 18:00', '2009/7/15 19:00', '2009/7/15 20:00', '2009/7/15 21:00', '2009/7/15 22:00', '2009/7/15 23:00',
+ '2009/7/16 0:00', '2009/7/16 1:00', '2009/7/16 2:00', '2009/7/16 3:00', '2009/7/16 4:00', '2009/7/16 5:00', '2009/7/16 6:00', '2009/7/16 7:00', '2009/7/16 8:00', '2009/7/16 9:00', '2009/7/16 10:00', '2009/7/16 11:00', '2009/7/16 12:00', '2009/7/16 13:00', '2009/7/16 14:00', '2009/7/16 15:00', '2009/7/16 16:00', '2009/7/16 17:00', '2009/7/16 18:00', '2009/7/16 19:00', '2009/7/16 20:00', '2009/7/16 21:00', '2009/7/16 22:00', '2009/7/16 23:00',
+ '2009/7/17 0:00', '2009/7/17 1:00', '2009/7/17 2:00', '2009/7/17 3:00', '2009/7/17 4:00', '2009/7/17 5:00', '2009/7/17 6:00', '2009/7/17 7:00', '2009/7/17 8:00', '2009/7/17 9:00', '2009/7/17 10:00', '2009/7/17 11:00', '2009/7/17 12:00', '2009/7/17 13:00', '2009/7/17 14:00', '2009/7/17 15:00', '2009/7/17 16:00', '2009/7/17 17:00', '2009/7/17 18:00', '2009/7/17 19:00', '2009/7/17 20:00', '2009/7/17 21:00', '2009/7/17 22:00', '2009/7/17 23:00',
+ '2009/7/18 0:00', '2009/7/18 1:00', '2009/7/18 2:00', '2009/7/18 3:00', '2009/7/18 4:00', '2009/7/18 5:00', '2009/7/18 6:00', '2009/7/18 7:00', '2009/7/18 8:00', '2009/7/18 9:00', '2009/7/18 10:00', '2009/7/18 11:00', '2009/7/18 12:00', '2009/7/18 13:00', '2009/7/18 14:00', '2009/7/18 15:00', '2009/7/18 16:00', '2009/7/18 17:00', '2009/7/18 18:00', '2009/7/18 19:00', '2009/7/18 20:00', '2009/7/18 21:00', '2009/7/18 22:00', '2009/7/18 23:00',
+ '2009/7/19 0:00', '2009/7/19 1:00', '2009/7/19 2:00', '2009/7/19 3:00', '2009/7/19 4:00', '2009/7/19 5:00', '2009/7/19 6:00', '2009/7/19 7:00', '2009/7/19 8:00', '2009/7/19 9:00', '2009/7/19 10:00', '2009/7/19 11:00', '2009/7/19 12:00', '2009/7/19 13:00', '2009/7/19 14:00', '2009/7/19 15:00', '2009/7/19 16:00', '2009/7/19 17:00', '2009/7/19 18:00', '2009/7/19 19:00', '2009/7/19 20:00', '2009/7/19 21:00', '2009/7/19 22:00', '2009/7/19 23:00',
+ '2009/7/20 0:00', '2009/7/20 1:00', '2009/7/20 2:00', '2009/7/20 3:00', '2009/7/20 4:00', '2009/7/20 5:00', '2009/7/20 6:00', '2009/7/20 7:00', '2009/7/20 8:00', '2009/7/20 9:00', '2009/7/20 10:00', '2009/7/20 11:00', '2009/7/20 12:00', '2009/7/20 13:00', '2009/7/20 14:00', '2009/7/20 15:00', '2009/7/20 16:00', '2009/7/20 17:00', '2009/7/20 18:00', '2009/7/20 19:00', '2009/7/20 20:00', '2009/7/20 21:00', '2009/7/20 22:00', '2009/7/20 23:00',
+ '2009/7/21 0:00', '2009/7/21 1:00', '2009/7/21 2:00', '2009/7/21 3:00', '2009/7/21 4:00', '2009/7/21 5:00', '2009/7/21 6:00', '2009/7/21 7:00', '2009/7/21 8:00', '2009/7/21 9:00', '2009/7/21 10:00', '2009/7/21 11:00', '2009/7/21 12:00', '2009/7/21 13:00', '2009/7/21 14:00', '2009/7/21 15:00', '2009/7/21 16:00', '2009/7/21 17:00', '2009/7/21 18:00', '2009/7/21 19:00', '2009/7/21 20:00', '2009/7/21 21:00', '2009/7/21 22:00', '2009/7/21 23:00',
+ '2009/7/22 0:00', '2009/7/22 1:00', '2009/7/22 2:00', '2009/7/22 3:00', '2009/7/22 4:00', '2009/7/22 5:00', '2009/7/22 6:00', '2009/7/22 7:00', '2009/7/22 8:00', '2009/7/22 9:00', '2009/7/22 10:00', '2009/7/22 11:00', '2009/7/22 12:00', '2009/7/22 13:00', '2009/7/22 14:00', '2009/7/22 15:00', '2009/7/22 16:00', '2009/7/22 17:00', '2009/7/22 18:00', '2009/7/22 19:00', '2009/7/22 20:00', '2009/7/22 21:00', '2009/7/22 22:00', '2009/7/22 23:00',
+ '2009/7/23 0:00', '2009/7/23 1:00', '2009/7/23 2:00', '2009/7/23 3:00', '2009/7/23 4:00', '2009/7/23 5:00', '2009/7/23 6:00', '2009/7/23 7:00', '2009/7/23 8:00', '2009/7/23 9:00', '2009/7/23 10:00', '2009/7/23 11:00', '2009/7/23 12:00', '2009/7/23 13:00', '2009/7/23 14:00', '2009/7/23 15:00', '2009/7/23 16:00', '2009/7/23 17:00', '2009/7/23 18:00', '2009/7/23 19:00', '2009/7/23 20:00', '2009/7/23 21:00', '2009/7/23 22:00', '2009/7/23 23:00',
+ '2009/7/24 0:00', '2009/7/24 1:00', '2009/7/24 2:00', '2009/7/24 3:00', '2009/7/24 4:00', '2009/7/24 5:00', '2009/7/24 6:00', '2009/7/24 7:00', '2009/7/24 8:00', '2009/7/24 9:00', '2009/7/24 10:00', '2009/7/24 11:00', '2009/7/24 12:00', '2009/7/24 13:00', '2009/7/24 14:00', '2009/7/24 15:00', '2009/7/24 16:00', '2009/7/24 17:00', '2009/7/24 18:00', '2009/7/24 19:00', '2009/7/24 20:00', '2009/7/24 21:00', '2009/7/24 22:00', '2009/7/24 23:00',
+ '2009/7/25 0:00', '2009/7/25 1:00', '2009/7/25 2:00', '2009/7/25 3:00', '2009/7/25 4:00', '2009/7/25 5:00', '2009/7/25 6:00', '2009/7/25 7:00', '2009/7/25 8:00', '2009/7/25 9:00', '2009/7/25 10:00', '2009/7/25 11:00', '2009/7/25 12:00', '2009/7/25 13:00', '2009/7/25 14:00', '2009/7/25 15:00', '2009/7/25 16:00', '2009/7/25 17:00', '2009/7/25 18:00', '2009/7/25 19:00', '2009/7/25 20:00', '2009/7/25 21:00', '2009/7/25 22:00', '2009/7/25 23:00',
+ '2009/7/26 0:00', '2009/7/26 1:00', '2009/7/26 2:00', '2009/7/26 3:00', '2009/7/26 4:00', '2009/7/26 5:00', '2009/7/26 6:00', '2009/7/26 7:00', '2009/7/26 8:00', '2009/7/26 9:00', '2009/7/26 10:00', '2009/7/26 11:00', '2009/7/26 12:00', '2009/7/26 13:00', '2009/7/26 14:00', '2009/7/26 15:00', '2009/7/26 16:00', '2009/7/26 17:00', '2009/7/26 18:00', '2009/7/26 19:00', '2009/7/26 20:00', '2009/7/26 21:00', '2009/7/26 22:00', '2009/7/26 23:00',
+ '2009/7/27 0:00', '2009/7/27 1:00', '2009/7/27 2:00', '2009/7/27 3:00', '2009/7/27 4:00', '2009/7/27 5:00', '2009/7/27 6:00', '2009/7/27 7:00', '2009/7/27 8:00', '2009/7/27 9:00', '2009/7/27 10:00', '2009/7/27 11:00', '2009/7/27 12:00', '2009/7/27 13:00', '2009/7/27 14:00', '2009/7/27 15:00', '2009/7/27 16:00', '2009/7/27 17:00', '2009/7/27 18:00', '2009/7/27 19:00', '2009/7/27 20:00', '2009/7/27 21:00', '2009/7/27 22:00', '2009/7/27 23:00',
+ '2009/7/28 0:00', '2009/7/28 1:00', '2009/7/28 2:00', '2009/7/28 3:00', '2009/7/28 4:00', '2009/7/28 5:00', '2009/7/28 6:00', '2009/7/28 7:00', '2009/7/28 8:00', '2009/7/28 9:00', '2009/7/28 10:00', '2009/7/28 11:00', '2009/7/28 12:00', '2009/7/28 13:00', '2009/7/28 14:00', '2009/7/28 15:00', '2009/7/28 16:00', '2009/7/28 17:00', '2009/7/28 18:00', '2009/7/28 19:00', '2009/7/28 20:00', '2009/7/28 21:00', '2009/7/28 22:00', '2009/7/28 23:00',
+ '2009/7/29 0:00', '2009/7/29 1:00', '2009/7/29 2:00', '2009/7/29 3:00', '2009/7/29 4:00', '2009/7/29 5:00', '2009/7/29 6:00', '2009/7/29 7:00', '2009/7/29 8:00', '2009/7/29 9:00', '2009/7/29 10:00', '2009/7/29 11:00', '2009/7/29 12:00', '2009/7/29 13:00', '2009/7/29 14:00', '2009/7/29 15:00', '2009/7/29 16:00', '2009/7/29 17:00', '2009/7/29 18:00', '2009/7/29 19:00', '2009/7/29 20:00', '2009/7/29 21:00', '2009/7/29 22:00', '2009/7/29 23:00',
+ '2009/7/30 0:00', '2009/7/30 1:00', '2009/7/30 2:00', '2009/7/30 3:00', '2009/7/30 4:00', '2009/7/30 5:00', '2009/7/30 6:00', '2009/7/30 7:00', '2009/7/30 8:00', '2009/7/30 9:00', '2009/7/30 10:00', '2009/7/30 11:00', '2009/7/30 12:00', '2009/7/30 13:00', '2009/7/30 14:00', '2009/7/30 15:00', '2009/7/30 16:00', '2009/7/30 17:00', '2009/7/30 18:00', '2009/7/30 19:00', '2009/7/30 20:00', '2009/7/30 21:00', '2009/7/30 22:00', '2009/7/30 23:00',
+ '2009/7/31 0:00', '2009/7/31 1:00', '2009/7/31 2:00', '2009/7/31 3:00', '2009/7/31 4:00', '2009/7/31 5:00', '2009/7/31 6:00', '2009/7/31 7:00', '2009/7/31 8:00', '2009/7/31 9:00', '2009/7/31 10:00', '2009/7/31 11:00', '2009/7/31 12:00', '2009/7/31 13:00', '2009/7/31 14:00', '2009/7/31 15:00', '2009/7/31 16:00', '2009/7/31 17:00', '2009/7/31 18:00', '2009/7/31 19:00', '2009/7/31 20:00', '2009/7/31 21:00', '2009/7/31 22:00', '2009/7/31 23:00',
+ '2009/8/1 0:00', '2009/8/1 1:00', '2009/8/1 2:00', '2009/8/1 3:00', '2009/8/1 4:00', '2009/8/1 5:00', '2009/8/1 6:00', '2009/8/1 7:00', '2009/8/1 8:00', '2009/8/1 9:00', '2009/8/1 10:00', '2009/8/1 11:00', '2009/8/1 12:00', '2009/8/1 13:00', '2009/8/1 14:00', '2009/8/1 15:00', '2009/8/1 16:00', '2009/8/1 17:00', '2009/8/1 18:00', '2009/8/1 19:00', '2009/8/1 20:00', '2009/8/1 21:00', '2009/8/1 22:00', '2009/8/1 23:00', '2009/8/2 0:00', '2009/8/2 1:00', '2009/8/2 2:00', '2009/8/2 3:00', '2009/8/2 4:00', '2009/8/2 5:00', '2009/8/2 6:00', '2009/8/2 7:00', '2009/8/2 8:00', '2009/8/2 9:00', '2009/8/2 10:00', '2009/8/2 11:00', '2009/8/2 12:00', '2009/8/2 13:00', '2009/8/2 14:00', '2009/8/2 15:00', '2009/8/2 16:00', '2009/8/2 17:00', '2009/8/2 18:00', '2009/8/2 19:00', '2009/8/2 20:00', '2009/8/2 21:00', '2009/8/2 22:00', '2009/8/2 23:00', '2009/8/3 0:00', '2009/8/3 1:00', '2009/8/3 2:00', '2009/8/3 3:00', '2009/8/3 4:00', '2009/8/3 5:00', '2009/8/3 6:00', '2009/8/3 7:00', '2009/8/3 8:00', '2009/8/3 9:00', '2009/8/3 10:00', '2009/8/3 11:00', '2009/8/3 12:00', '2009/8/3 13:00', '2009/8/3 14:00', '2009/8/3 15:00', '2009/8/3 16:00', '2009/8/3 17:00', '2009/8/3 18:00', '2009/8/3 19:00', '2009/8/3 20:00', '2009/8/3 21:00', '2009/8/3 22:00', '2009/8/3 23:00', '2009/8/4 0:00', '2009/8/4 1:00', '2009/8/4 2:00', '2009/8/4 3:00', '2009/8/4 4:00', '2009/8/4 5:00', '2009/8/4 6:00', '2009/8/4 7:00', '2009/8/4 8:00', '2009/8/4 9:00', '2009/8/4 10:00', '2009/8/4 11:00', '2009/8/4 12:00', '2009/8/4 13:00', '2009/8/4 14:00', '2009/8/4 15:00', '2009/8/4 16:00', '2009/8/4 17:00', '2009/8/4 18:00', '2009/8/4 19:00', '2009/8/4 20:00', '2009/8/4 21:00', '2009/8/4 22:00', '2009/8/4 23:00', '2009/8/5 0:00', '2009/8/5 1:00', '2009/8/5 2:00', '2009/8/5 3:00', '2009/8/5 4:00', '2009/8/5 5:00', '2009/8/5 6:00', '2009/8/5 7:00', '2009/8/5 8:00', '2009/8/5 9:00', '2009/8/5 10:00', '2009/8/5 11:00', '2009/8/5 12:00', '2009/8/5 13:00', '2009/8/5 14:00', '2009/8/5 15:00', '2009/8/5 16:00', '2009/8/5 17:00', '2009/8/5 18:00', '2009/8/5 19:00', '2009/8/5 20:00', '2009/8/5 21:00', '2009/8/5 22:00', '2009/8/5 23:00', '2009/8/6 0:00', '2009/8/6 1:00', '2009/8/6 2:00', '2009/8/6 3:00', '2009/8/6 4:00', '2009/8/6 5:00', '2009/8/6 6:00', '2009/8/6 7:00', '2009/8/6 8:00', '2009/8/6 9:00', '2009/8/6 10:00', '2009/8/6 11:00', '2009/8/6 12:00', '2009/8/6 13:00', '2009/8/6 14:00', '2009/8/6 15:00', '2009/8/6 16:00', '2009/8/6 17:00', '2009/8/6 18:00', '2009/8/6 19:00', '2009/8/6 20:00', '2009/8/6 21:00', '2009/8/6 22:00', '2009/8/6 23:00', '2009/8/7 0:00', '2009/8/7 1:00', '2009/8/7 2:00', '2009/8/7 3:00', '2009/8/7 4:00', '2009/8/7 5:00', '2009/8/7 6:00', '2009/8/7 7:00', '2009/8/7 8:00', '2009/8/7 9:00', '2009/8/7 10:00', '2009/8/7 11:00', '2009/8/7 12:00', '2009/8/7 13:00', '2009/8/7 14:00', '2009/8/7 15:00', '2009/8/7 16:00', '2009/8/7 17:00', '2009/8/7 18:00', '2009/8/7 19:00', '2009/8/7 20:00', '2009/8/7 21:00', '2009/8/7 22:00', '2009/8/7 23:00', '2009/8/8 0:00', '2009/8/8 1:00', '2009/8/8 2:00', '2009/8/8 3:00', '2009/8/8 4:00', '2009/8/8 5:00', '2009/8/8 6:00', '2009/8/8 7:00', '2009/8/8 8:00', '2009/8/8 9:00', '2009/8/8 10:00', '2009/8/8 11:00', '2009/8/8 12:00', '2009/8/8 13:00', '2009/8/8 14:00', '2009/8/8 15:00', '2009/8/8 16:00', '2009/8/8 17:00', '2009/8/8 18:00', '2009/8/8 19:00', '2009/8/8 20:00', '2009/8/8 21:00', '2009/8/8 22:00', '2009/8/8 23:00', '2009/8/9 0:00', '2009/8/9 1:00', '2009/8/9 2:00', '2009/8/9 3:00', '2009/8/9 4:00', '2009/8/9 5:00', '2009/8/9 6:00', '2009/8/9 7:00', '2009/8/9 8:00', '2009/8/9 9:00', '2009/8/9 10:00', '2009/8/9 11:00', '2009/8/9 12:00', '2009/8/9 13:00', '2009/8/9 14:00', '2009/8/9 15:00', '2009/8/9 16:00', '2009/8/9 17:00', '2009/8/9 18:00', '2009/8/9 19:00', '2009/8/9 20:00', '2009/8/9 21:00', '2009/8/9 22:00', '2009/8/9 23:00', '2009/8/10 0:00', '2009/8/10 1:00', '2009/8/10 2:00', '2009/8/10 3:00', '2009/8/10 4:00', '2009/8/10 5:00', '2009/8/10 6:00', '2009/8/10 7:00', '2009/8/10 8:00', '2009/8/10 9:00', '2009/8/10 10:00', '2009/8/10 11:00', '2009/8/10 12:00', '2009/8/10 13:00', '2009/8/10 14:00', '2009/8/10 15:00', '2009/8/10 16:00', '2009/8/10 17:00', '2009/8/10 18:00', '2009/8/10 19:00', '2009/8/10 20:00', '2009/8/10 21:00', '2009/8/10 22:00', '2009/8/10 23:00', '2009/8/11 0:00', '2009/8/11 1:00', '2009/8/11 2:00', '2009/8/11 3:00', '2009/8/11 4:00', '2009/8/11 5:00', '2009/8/11 6:00', '2009/8/11 7:00', '2009/8/11 8:00', '2009/8/11 9:00', '2009/8/11 10:00', '2009/8/11 11:00', '2009/8/11 12:00', '2009/8/11 13:00', '2009/8/11 14:00', '2009/8/11 15:00', '2009/8/11 16:00', '2009/8/11 17:00', '2009/8/11 18:00', '2009/8/11 19:00', '2009/8/11 20:00', '2009/8/11 21:00', '2009/8/11 22:00', '2009/8/11 23:00', '2009/8/12 0:00', '2009/8/12 1:00', '2009/8/12 2:00', '2009/8/12 3:00', '2009/8/12 4:00', '2009/8/12 5:00', '2009/8/12 6:00', '2009/8/12 7:00', '2009/8/12 8:00', '2009/8/12 9:00', '2009/8/12 10:00', '2009/8/12 11:00', '2009/8/12 12:00', '2009/8/12 13:00', '2009/8/12 14:00', '2009/8/12 15:00', '2009/8/12 16:00', '2009/8/12 17:00', '2009/8/12 18:00', '2009/8/12 19:00', '2009/8/12 20:00', '2009/8/12 21:00', '2009/8/12 22:00', '2009/8/12 23:00', '2009/8/13 0:00', '2009/8/13 1:00', '2009/8/13 2:00', '2009/8/13 3:00', '2009/8/13 4:00', '2009/8/13 5:00', '2009/8/13 6:00', '2009/8/13 7:00', '2009/8/13 8:00', '2009/8/13 9:00', '2009/8/13 10:00', '2009/8/13 11:00', '2009/8/13 12:00', '2009/8/13 13:00', '2009/8/13 14:00', '2009/8/13 15:00', '2009/8/13 16:00', '2009/8/13 17:00', '2009/8/13 18:00', '2009/8/13 19:00', '2009/8/13 20:00', '2009/8/13 21:00', '2009/8/13 22:00', '2009/8/13 23:00', '2009/8/14 0:00', '2009/8/14 1:00', '2009/8/14 2:00', '2009/8/14 3:00', '2009/8/14 4:00', '2009/8/14 5:00', '2009/8/14 6:00', '2009/8/14 7:00', '2009/8/14 8:00', '2009/8/14 9:00', '2009/8/14 10:00', '2009/8/14 11:00', '2009/8/14 12:00', '2009/8/14 13:00', '2009/8/14 14:00', '2009/8/14 15:00', '2009/8/14 16:00', '2009/8/14 17:00', '2009/8/14 18:00', '2009/8/14 19:00', '2009/8/14 20:00', '2009/8/14 21:00', '2009/8/14 22:00', '2009/8/14 23:00', '2009/8/15 0:00', '2009/8/15 1:00', '2009/8/15 2:00', '2009/8/15 3:00', '2009/8/15 4:00', '2009/8/15 5:00', '2009/8/15 6:00', '2009/8/15 7:00', '2009/8/15 8:00', '2009/8/15 9:00', '2009/8/15 10:00', '2009/8/15 11:00', '2009/8/15 12:00', '2009/8/15 13:00', '2009/8/15 14:00', '2009/8/15 15:00', '2009/8/15 16:00', '2009/8/15 17:00', '2009/8/15 18:00', '2009/8/15 19:00', '2009/8/15 20:00', '2009/8/15 21:00', '2009/8/15 22:00', '2009/8/15 23:00', '2009/8/16 0:00', '2009/8/16 1:00', '2009/8/16 2:00', '2009/8/16 3:00', '2009/8/16 4:00', '2009/8/16 5:00', '2009/8/16 6:00', '2009/8/16 7:00', '2009/8/16 8:00', '2009/8/16 9:00', '2009/8/16 10:00', '2009/8/16 11:00', '2009/8/16 12:00', '2009/8/16 13:00', '2009/8/16 14:00', '2009/8/16 15:00', '2009/8/16 16:00', '2009/8/16 17:00', '2009/8/16 18:00', '2009/8/16 19:00', '2009/8/16 20:00', '2009/8/16 21:00', '2009/8/16 22:00', '2009/8/16 23:00', '2009/8/17 0:00', '2009/8/17 1:00', '2009/8/17 2:00', '2009/8/17 3:00', '2009/8/17 4:00', '2009/8/17 5:00', '2009/8/17 6:00', '2009/8/17 7:00', '2009/8/17 8:00', '2009/8/17 9:00', '2009/8/17 10:00', '2009/8/17 11:00', '2009/8/17 12:00', '2009/8/17 13:00', '2009/8/17 14:00', '2009/8/17 15:00', '2009/8/17 16:00', '2009/8/17 17:00', '2009/8/17 18:00', '2009/8/17 19:00', '2009/8/17 20:00', '2009/8/17 21:00', '2009/8/17 22:00', '2009/8/17 23:00', '2009/8/18 0:00', '2009/8/18 1:00', '2009/8/18 2:00', '2009/8/18 3:00', '2009/8/18 4:00', '2009/8/18 5:00', '2009/8/18 6:00', '2009/8/18 7:00', '2009/8/18 8:00', '2009/8/18 9:00', '2009/8/18 10:00', '2009/8/18 11:00', '2009/8/18 12:00', '2009/8/18 13:00', '2009/8/18 14:00', '2009/8/18 15:00', '2009/8/18 16:00', '2009/8/18 17:00', '2009/8/18 18:00', '2009/8/18 19:00', '2009/8/18 20:00', '2009/8/18 21:00', '2009/8/18 22:00', '2009/8/18 23:00', '2009/8/19 0:00', '2009/8/19 1:00', '2009/8/19 2:00', '2009/8/19 3:00', '2009/8/19 4:00', '2009/8/19 5:00', '2009/8/19 6:00', '2009/8/19 7:00', '2009/8/19 8:00', '2009/8/19 9:00', '2009/8/19 10:00', '2009/8/19 11:00', '2009/8/19 12:00', '2009/8/19 13:00', '2009/8/19 14:00', '2009/8/19 15:00', '2009/8/19 16:00', '2009/8/19 17:00', '2009/8/19 18:00', '2009/8/19 19:00', '2009/8/19 20:00', '2009/8/19 21:00', '2009/8/19 22:00', '2009/8/19 23:00', '2009/8/20 0:00', '2009/8/20 1:00', '2009/8/20 2:00', '2009/8/20 3:00', '2009/8/20 4:00', '2009/8/20 5:00', '2009/8/20 6:00', '2009/8/20 7:00', '2009/8/20 8:00', '2009/8/20 9:00', '2009/8/20 10:00', '2009/8/20 11:00', '2009/8/20 12:00', '2009/8/20 13:00', '2009/8/20 14:00', '2009/8/20 15:00', '2009/8/20 16:00', '2009/8/20 17:00', '2009/8/20 18:00', '2009/8/20 19:00', '2009/8/20 20:00', '2009/8/20 21:00', '2009/8/20 22:00', '2009/8/20 23:00', '2009/8/21 0:00', '2009/8/21 1:00', '2009/8/21 2:00', '2009/8/21 3:00', '2009/8/21 4:00', '2009/8/21 5:00', '2009/8/21 6:00', '2009/8/21 7:00', '2009/8/21 8:00', '2009/8/21 9:00', '2009/8/21 10:00', '2009/8/21 11:00', '2009/8/21 12:00', '2009/8/21 13:00', '2009/8/21 14:00', '2009/8/21 15:00', '2009/8/21 16:00', '2009/8/21 17:00', '2009/8/21 18:00', '2009/8/21 19:00', '2009/8/21 20:00', '2009/8/21 21:00', '2009/8/21 22:00', '2009/8/21 23:00', '2009/8/22 0:00', '2009/8/22 1:00', '2009/8/22 2:00', '2009/8/22 3:00', '2009/8/22 4:00', '2009/8/22 5:00', '2009/8/22 6:00', '2009/8/22 7:00', '2009/8/22 8:00', '2009/8/22 9:00', '2009/8/22 10:00', '2009/8/22 11:00', '2009/8/22 12:00', '2009/8/22 13:00', '2009/8/22 14:00', '2009/8/22 15:00', '2009/8/22 16:00', '2009/8/22 17:00', '2009/8/22 18:00', '2009/8/22 19:00', '2009/8/22 20:00', '2009/8/22 21:00', '2009/8/22 22:00', '2009/8/22 23:00', '2009/8/23 0:00', '2009/8/23 1:00', '2009/8/23 2:00', '2009/8/23 3:00', '2009/8/23 4:00', '2009/8/23 5:00', '2009/8/23 6:00', '2009/8/23 7:00', '2009/8/23 8:00', '2009/8/23 9:00', '2009/8/23 10:00', '2009/8/23 11:00', '2009/8/23 12:00', '2009/8/23 13:00', '2009/8/23 14:00', '2009/8/23 15:00', '2009/8/23 16:00', '2009/8/23 17:00', '2009/8/23 18:00', '2009/8/23 19:00', '2009/8/23 20:00', '2009/8/23 21:00', '2009/8/23 22:00', '2009/8/23 23:00', '2009/8/24 0:00', '2009/8/24 1:00', '2009/8/24 2:00', '2009/8/24 3:00', '2009/8/24 4:00', '2009/8/24 5:00', '2009/8/24 6:00', '2009/8/24 7:00', '2009/8/24 8:00', '2009/8/24 9:00', '2009/8/24 10:00', '2009/8/24 11:00', '2009/8/24 12:00', '2009/8/24 13:00', '2009/8/24 14:00', '2009/8/24 15:00', '2009/8/24 16:00', '2009/8/24 17:00', '2009/8/24 18:00', '2009/8/24 19:00', '2009/8/24 20:00', '2009/8/24 21:00', '2009/8/24 22:00', '2009/8/24 23:00', '2009/8/25 0:00', '2009/8/25 1:00', '2009/8/25 2:00', '2009/8/25 3:00', '2009/8/25 4:00', '2009/8/25 5:00', '2009/8/25 6:00', '2009/8/25 7:00', '2009/8/25 8:00', '2009/8/25 9:00', '2009/8/25 10:00', '2009/8/25 11:00', '2009/8/25 12:00', '2009/8/25 13:00', '2009/8/25 14:00', '2009/8/25 15:00', '2009/8/25 16:00', '2009/8/25 17:00', '2009/8/25 18:00', '2009/8/25 19:00', '2009/8/25 20:00', '2009/8/25 21:00', '2009/8/25 22:00', '2009/8/25 23:00', '2009/8/26 0:00', '2009/8/26 1:00', '2009/8/26 2:00', '2009/8/26 3:00', '2009/8/26 4:00', '2009/8/26 5:00', '2009/8/26 6:00', '2009/8/26 7:00', '2009/8/26 8:00', '2009/8/26 9:00', '2009/8/26 10:00', '2009/8/26 11:00', '2009/8/26 12:00', '2009/8/26 13:00', '2009/8/26 14:00', '2009/8/26 15:00', '2009/8/26 16:00', '2009/8/26 17:00', '2009/8/26 18:00', '2009/8/26 19:00', '2009/8/26 20:00', '2009/8/26 21:00', '2009/8/26 22:00', '2009/8/26 23:00', '2009/8/27 0:00', '2009/8/27 1:00', '2009/8/27 2:00', '2009/8/27 3:00', '2009/8/27 4:00', '2009/8/27 5:00', '2009/8/27 6:00', '2009/8/27 7:00', '2009/8/27 8:00', '2009/8/27 9:00', '2009/8/27 10:00', '2009/8/27 11:00', '2009/8/27 12:00', '2009/8/27 13:00', '2009/8/27 14:00', '2009/8/27 15:00', '2009/8/27 16:00', '2009/8/27 17:00', '2009/8/27 18:00', '2009/8/27 19:00', '2009/8/27 20:00', '2009/8/27 21:00', '2009/8/27 22:00', '2009/8/27 23:00', '2009/8/28 0:00', '2009/8/28 1:00', '2009/8/28 2:00', '2009/8/28 3:00', '2009/8/28 4:00', '2009/8/28 5:00', '2009/8/28 6:00', '2009/8/28 7:00', '2009/8/28 8:00', '2009/8/28 9:00', '2009/8/28 10:00', '2009/8/28 11:00', '2009/8/28 12:00', '2009/8/28 13:00', '2009/8/28 14:00', '2009/8/28 15:00', '2009/8/28 16:00', '2009/8/28 17:00', '2009/8/28 18:00', '2009/8/28 19:00', '2009/8/28 20:00', '2009/8/28 21:00', '2009/8/28 22:00', '2009/8/28 23:00', '2009/8/29 0:00', '2009/8/29 1:00', '2009/8/29 2:00', '2009/8/29 3:00', '2009/8/29 4:00', '2009/8/29 5:00', '2009/8/29 6:00', '2009/8/29 7:00', '2009/8/29 8:00', '2009/8/29 9:00', '2009/8/29 10:00', '2009/8/29 11:00', '2009/8/29 12:00', '2009/8/29 13:00', '2009/8/29 14:00', '2009/8/29 15:00', '2009/8/29 16:00', '2009/8/29 17:00', '2009/8/29 18:00', '2009/8/29 19:00', '2009/8/29 20:00', '2009/8/29 21:00', '2009/8/29 22:00', '2009/8/29 23:00', '2009/8/30 0:00', '2009/8/30 1:00', '2009/8/30 2:00', '2009/8/30 3:00', '2009/8/30 4:00', '2009/8/30 5:00', '2009/8/30 6:00', '2009/8/30 7:00', '2009/8/30 8:00', '2009/8/30 9:00', '2009/8/30 10:00', '2009/8/30 11:00', '2009/8/30 12:00', '2009/8/30 13:00', '2009/8/30 14:00', '2009/8/30 15:00', '2009/8/30 16:00', '2009/8/30 17:00', '2009/8/30 18:00', '2009/8/30 19:00', '2009/8/30 20:00', '2009/8/30 21:00', '2009/8/30 22:00', '2009/8/30 23:00', '2009/8/31 0:00', '2009/8/31 1:00', '2009/8/31 2:00', '2009/8/31 3:00', '2009/8/31 4:00', '2009/8/31 5:00', '2009/8/31 6:00', '2009/8/31 7:00', '2009/8/31 8:00', '2009/8/31 9:00', '2009/8/31 10:00', '2009/8/31 11:00', '2009/8/31 12:00', '2009/8/31 13:00', '2009/8/31 14:00', '2009/8/31 15:00', '2009/8/31 16:00', '2009/8/31 17:00', '2009/8/31 18:00', '2009/8/31 19:00', '2009/8/31 20:00', '2009/8/31 21:00', '2009/8/31 22:00', '2009/8/31 23:00',
+ '2009/9/1 0:00', '2009/9/1 1:00', '2009/9/1 2:00', '2009/9/1 3:00', '2009/9/1 4:00', '2009/9/1 5:00', '2009/9/1 6:00', '2009/9/1 7:00', '2009/9/1 8:00', '2009/9/1 9:00', '2009/9/1 10:00', '2009/9/1 11:00', '2009/9/1 12:00', '2009/9/1 13:00', '2009/9/1 14:00', '2009/9/1 15:00', '2009/9/1 16:00', '2009/9/1 17:00', '2009/9/1 18:00', '2009/9/1 19:00', '2009/9/1 20:00', '2009/9/1 21:00', '2009/9/1 22:00', '2009/9/1 23:00', '2009/9/2 0:00', '2009/9/2 1:00', '2009/9/2 2:00', '2009/9/2 3:00', '2009/9/2 4:00', '2009/9/2 5:00', '2009/9/2 6:00', '2009/9/2 7:00', '2009/9/2 8:00', '2009/9/2 9:00', '2009/9/2 10:00', '2009/9/2 11:00', '2009/9/2 12:00', '2009/9/2 13:00', '2009/9/2 14:00', '2009/9/2 15:00', '2009/9/2 16:00', '2009/9/2 17:00', '2009/9/2 18:00', '2009/9/2 19:00', '2009/9/2 20:00', '2009/9/2 21:00', '2009/9/2 22:00', '2009/9/2 23:00', '2009/9/3 0:00', '2009/9/3 1:00', '2009/9/3 2:00', '2009/9/3 3:00', '2009/9/3 4:00', '2009/9/3 5:00', '2009/9/3 6:00', '2009/9/3 7:00', '2009/9/3 8:00', '2009/9/3 9:00', '2009/9/3 10:00', '2009/9/3 11:00', '2009/9/3 12:00', '2009/9/3 13:00', '2009/9/3 14:00', '2009/9/3 15:00', '2009/9/3 16:00', '2009/9/3 17:00', '2009/9/3 18:00', '2009/9/3 19:00', '2009/9/3 20:00', '2009/9/3 21:00', '2009/9/3 22:00', '2009/9/3 23:00', '2009/9/4 0:00', '2009/9/4 1:00', '2009/9/4 2:00', '2009/9/4 3:00', '2009/9/4 4:00', '2009/9/4 5:00', '2009/9/4 6:00', '2009/9/4 7:00', '2009/9/4 8:00', '2009/9/4 9:00', '2009/9/4 10:00', '2009/9/4 11:00', '2009/9/4 12:00', '2009/9/4 13:00', '2009/9/4 14:00', '2009/9/4 15:00', '2009/9/4 16:00', '2009/9/4 17:00', '2009/9/4 18:00', '2009/9/4 19:00', '2009/9/4 20:00', '2009/9/4 21:00', '2009/9/4 22:00', '2009/9/4 23:00', '2009/9/5 0:00', '2009/9/5 1:00', '2009/9/5 2:00', '2009/9/5 3:00', '2009/9/5 4:00', '2009/9/5 5:00', '2009/9/5 6:00', '2009/9/5 7:00', '2009/9/5 8:00', '2009/9/5 9:00', '2009/9/5 10:00', '2009/9/5 11:00', '2009/9/5 12:00', '2009/9/5 13:00', '2009/9/5 14:00', '2009/9/5 15:00', '2009/9/5 16:00', '2009/9/5 17:00', '2009/9/5 18:00', '2009/9/5 19:00', '2009/9/5 20:00', '2009/9/5 21:00', '2009/9/5 22:00', '2009/9/5 23:00', '2009/9/6 0:00', '2009/9/6 1:00', '2009/9/6 2:00', '2009/9/6 3:00', '2009/9/6 4:00', '2009/9/6 5:00', '2009/9/6 6:00', '2009/9/6 7:00', '2009/9/6 8:00', '2009/9/6 9:00', '2009/9/6 10:00', '2009/9/6 11:00', '2009/9/6 12:00', '2009/9/6 13:00', '2009/9/6 14:00', '2009/9/6 15:00', '2009/9/6 16:00', '2009/9/6 17:00', '2009/9/6 18:00', '2009/9/6 19:00', '2009/9/6 20:00', '2009/9/6 21:00', '2009/9/6 22:00', '2009/9/6 23:00', '2009/9/7 0:00', '2009/9/7 1:00', '2009/9/7 2:00', '2009/9/7 3:00', '2009/9/7 4:00', '2009/9/7 5:00', '2009/9/7 6:00', '2009/9/7 7:00', '2009/9/7 8:00', '2009/9/7 9:00', '2009/9/7 10:00', '2009/9/7 11:00', '2009/9/7 12:00', '2009/9/7 13:00', '2009/9/7 14:00', '2009/9/7 15:00', '2009/9/7 16:00', '2009/9/7 17:00', '2009/9/7 18:00', '2009/9/7 19:00', '2009/9/7 20:00', '2009/9/7 21:00', '2009/9/7 22:00', '2009/9/7 23:00', '2009/9/8 0:00', '2009/9/8 1:00', '2009/9/8 2:00', '2009/9/8 3:00', '2009/9/8 4:00', '2009/9/8 5:00', '2009/9/8 6:00', '2009/9/8 7:00', '2009/9/8 8:00', '2009/9/8 9:00', '2009/9/8 10:00', '2009/9/8 11:00', '2009/9/8 12:00', '2009/9/8 13:00', '2009/9/8 14:00', '2009/9/8 15:00', '2009/9/8 16:00', '2009/9/8 17:00', '2009/9/8 18:00', '2009/9/8 19:00', '2009/9/8 20:00', '2009/9/8 21:00', '2009/9/8 22:00', '2009/9/8 23:00', '2009/9/9 0:00', '2009/9/9 1:00', '2009/9/9 2:00', '2009/9/9 3:00', '2009/9/9 4:00', '2009/9/9 5:00', '2009/9/9 6:00', '2009/9/9 7:00', '2009/9/9 8:00', '2009/9/9 9:00', '2009/9/9 10:00', '2009/9/9 11:00', '2009/9/9 12:00', '2009/9/9 13:00', '2009/9/9 14:00', '2009/9/9 15:00', '2009/9/9 16:00', '2009/9/9 17:00', '2009/9/9 18:00', '2009/9/9 19:00', '2009/9/9 20:00', '2009/9/9 21:00', '2009/9/9 22:00', '2009/9/9 23:00', '2009/9/10 0:00', '2009/9/10 1:00', '2009/9/10 2:00', '2009/9/10 3:00', '2009/9/10 4:00', '2009/9/10 5:00', '2009/9/10 6:00', '2009/9/10 7:00', '2009/9/10 8:00', '2009/9/10 9:00', '2009/9/10 10:00', '2009/9/10 11:00', '2009/9/10 12:00', '2009/9/10 13:00', '2009/9/10 14:00', '2009/9/10 15:00', '2009/9/10 16:00', '2009/9/10 17:00', '2009/9/10 18:00', '2009/9/10 19:00', '2009/9/10 20:00', '2009/9/10 21:00', '2009/9/10 22:00', '2009/9/10 23:00', '2009/9/11 0:00', '2009/9/11 1:00', '2009/9/11 2:00', '2009/9/11 3:00', '2009/9/11 4:00', '2009/9/11 5:00', '2009/9/11 6:00', '2009/9/11 7:00', '2009/9/11 8:00', '2009/9/11 9:00', '2009/9/11 10:00', '2009/9/11 11:00', '2009/9/11 12:00', '2009/9/11 13:00', '2009/9/11 14:00', '2009/9/11 15:00', '2009/9/11 16:00', '2009/9/11 17:00', '2009/9/11 18:00', '2009/9/11 19:00', '2009/9/11 20:00', '2009/9/11 21:00', '2009/9/11 22:00', '2009/9/11 23:00', '2009/9/12 0:00', '2009/9/12 1:00', '2009/9/12 2:00', '2009/9/12 3:00', '2009/9/12 4:00', '2009/9/12 5:00', '2009/9/12 6:00', '2009/9/12 7:00', '2009/9/12 8:00', '2009/9/12 9:00', '2009/9/12 10:00', '2009/9/12 11:00', '2009/9/12 12:00', '2009/9/12 13:00', '2009/9/12 14:00', '2009/9/12 15:00', '2009/9/12 16:00', '2009/9/12 17:00', '2009/9/12 18:00', '2009/9/12 19:00', '2009/9/12 20:00', '2009/9/12 21:00', '2009/9/12 22:00', '2009/9/12 23:00', '2009/9/13 0:00', '2009/9/13 1:00', '2009/9/13 2:00', '2009/9/13 3:00', '2009/9/13 4:00', '2009/9/13 5:00', '2009/9/13 6:00', '2009/9/13 7:00', '2009/9/13 8:00', '2009/9/13 9:00', '2009/9/13 10:00', '2009/9/13 11:00', '2009/9/13 12:00', '2009/9/13 13:00', '2009/9/13 14:00', '2009/9/13 15:00', '2009/9/13 16:00', '2009/9/13 17:00', '2009/9/13 18:00', '2009/9/13 19:00', '2009/9/13 20:00', '2009/9/13 21:00', '2009/9/13 22:00', '2009/9/13 23:00', '2009/9/14 0:00', '2009/9/14 1:00', '2009/9/14 2:00', '2009/9/14 3:00', '2009/9/14 4:00', '2009/9/14 5:00', '2009/9/14 6:00', '2009/9/14 7:00', '2009/9/14 8:00', '2009/9/14 9:00', '2009/9/14 10:00', '2009/9/14 11:00', '2009/9/14 12:00', '2009/9/14 13:00', '2009/9/14 14:00', '2009/9/14 15:00', '2009/9/14 16:00', '2009/9/14 17:00', '2009/9/14 18:00', '2009/9/14 19:00', '2009/9/14 20:00', '2009/9/14 21:00', '2009/9/14 22:00', '2009/9/14 23:00', '2009/9/15 0:00', '2009/9/15 1:00', '2009/9/15 2:00', '2009/9/15 3:00', '2009/9/15 4:00', '2009/9/15 5:00', '2009/9/15 6:00', '2009/9/15 7:00', '2009/9/15 8:00', '2009/9/15 9:00', '2009/9/15 10:00', '2009/9/15 11:00', '2009/9/15 12:00', '2009/9/15 13:00', '2009/9/15 14:00', '2009/9/15 15:00', '2009/9/15 16:00', '2009/9/15 17:00', '2009/9/15 18:00', '2009/9/15 19:00', '2009/9/15 20:00', '2009/9/15 21:00', '2009/9/15 22:00', '2009/9/15 23:00', '2009/9/16 0:00', '2009/9/16 1:00', '2009/9/16 2:00', '2009/9/16 3:00', '2009/9/16 4:00', '2009/9/16 5:00', '2009/9/16 6:00', '2009/9/16 7:00', '2009/9/16 8:00', '2009/9/16 9:00', '2009/9/16 10:00', '2009/9/16 11:00', '2009/9/16 12:00', '2009/9/16 13:00', '2009/9/16 14:00', '2009/9/16 15:00', '2009/9/16 16:00', '2009/9/16 17:00', '2009/9/16 18:00', '2009/9/16 19:00', '2009/9/16 20:00', '2009/9/16 21:00', '2009/9/16 22:00', '2009/9/16 23:00', '2009/9/17 0:00', '2009/9/17 1:00', '2009/9/17 2:00', '2009/9/17 3:00', '2009/9/17 4:00', '2009/9/17 5:00', '2009/9/17 6:00', '2009/9/17 7:00', '2009/9/17 8:00', '2009/9/17 9:00', '2009/9/17 10:00', '2009/9/17 11:00', '2009/9/17 12:00', '2009/9/17 13:00', '2009/9/17 14:00', '2009/9/17 15:00', '2009/9/17 16:00', '2009/9/17 17:00', '2009/9/17 18:00', '2009/9/17 19:00', '2009/9/17 20:00', '2009/9/17 21:00', '2009/9/17 22:00', '2009/9/17 23:00', '2009/9/18 0:00', '2009/9/18 1:00', '2009/9/18 2:00', '2009/9/18 3:00', '2009/9/18 4:00', '2009/9/18 5:00', '2009/9/18 6:00', '2009/9/18 7:00', '2009/9/18 8:00', '2009/9/18 9:00', '2009/9/18 10:00', '2009/9/18 11:00', '2009/9/18 12:00', '2009/9/18 13:00', '2009/9/18 14:00', '2009/9/18 15:00', '2009/9/18 16:00', '2009/9/18 17:00', '2009/9/18 18:00', '2009/9/18 19:00', '2009/9/18 20:00', '2009/9/18 21:00', '2009/9/18 22:00', '2009/9/18 23:00', '2009/9/19 0:00', '2009/9/19 1:00', '2009/9/19 2:00', '2009/9/19 3:00', '2009/9/19 4:00', '2009/9/19 5:00', '2009/9/19 6:00', '2009/9/19 7:00', '2009/9/19 8:00', '2009/9/19 9:00', '2009/9/19 10:00', '2009/9/19 11:00', '2009/9/19 12:00', '2009/9/19 13:00', '2009/9/19 14:00', '2009/9/19 15:00', '2009/9/19 16:00', '2009/9/19 17:00', '2009/9/19 18:00', '2009/9/19 19:00', '2009/9/19 20:00', '2009/9/19 21:00', '2009/9/19 22:00', '2009/9/19 23:00', '2009/9/20 0:00', '2009/9/20 1:00', '2009/9/20 2:00', '2009/9/20 3:00', '2009/9/20 4:00', '2009/9/20 5:00', '2009/9/20 6:00', '2009/9/20 7:00', '2009/9/20 8:00', '2009/9/20 9:00', '2009/9/20 10:00', '2009/9/20 11:00', '2009/9/20 12:00', '2009/9/20 13:00', '2009/9/20 14:00', '2009/9/20 15:00', '2009/9/20 16:00', '2009/9/20 17:00', '2009/9/20 18:00', '2009/9/20 19:00', '2009/9/20 20:00', '2009/9/20 21:00', '2009/9/20 22:00', '2009/9/20 23:00', '2009/9/21 0:00', '2009/9/21 1:00', '2009/9/21 2:00', '2009/9/21 3:00', '2009/9/21 4:00', '2009/9/21 5:00', '2009/9/21 6:00', '2009/9/21 7:00', '2009/9/21 8:00', '2009/9/21 9:00', '2009/9/21 10:00', '2009/9/21 11:00', '2009/9/21 12:00', '2009/9/21 13:00', '2009/9/21 14:00', '2009/9/21 15:00', '2009/9/21 16:00', '2009/9/21 17:00', '2009/9/21 18:00', '2009/9/21 19:00', '2009/9/21 20:00', '2009/9/21 21:00', '2009/9/21 22:00', '2009/9/21 23:00', '2009/9/22 0:00', '2009/9/22 1:00', '2009/9/22 2:00', '2009/9/22 3:00', '2009/9/22 4:00', '2009/9/22 5:00', '2009/9/22 6:00', '2009/9/22 7:00', '2009/9/22 8:00', '2009/9/22 9:00', '2009/9/22 10:00', '2009/9/22 11:00', '2009/9/22 12:00', '2009/9/22 13:00', '2009/9/22 14:00', '2009/9/22 15:00', '2009/9/22 16:00', '2009/9/22 17:00', '2009/9/22 18:00', '2009/9/22 19:00', '2009/9/22 20:00', '2009/9/22 21:00', '2009/9/22 22:00', '2009/9/22 23:00', '2009/9/23 0:00', '2009/9/23 1:00', '2009/9/23 2:00', '2009/9/23 3:00', '2009/9/23 4:00', '2009/9/23 5:00', '2009/9/23 6:00', '2009/9/23 7:00', '2009/9/23 8:00', '2009/9/23 9:00', '2009/9/23 10:00', '2009/9/23 11:00', '2009/9/23 12:00', '2009/9/23 13:00', '2009/9/23 14:00', '2009/9/23 15:00', '2009/9/23 16:00', '2009/9/23 17:00', '2009/9/23 18:00', '2009/9/23 19:00', '2009/9/23 20:00', '2009/9/23 21:00', '2009/9/23 22:00', '2009/9/23 23:00', '2009/9/24 0:00', '2009/9/24 1:00', '2009/9/24 2:00', '2009/9/24 3:00', '2009/9/24 4:00', '2009/9/24 5:00', '2009/9/24 6:00', '2009/9/24 7:00', '2009/9/24 8:00', '2009/9/24 9:00', '2009/9/24 10:00', '2009/9/24 11:00', '2009/9/24 12:00', '2009/9/24 13:00', '2009/9/24 14:00', '2009/9/24 15:00', '2009/9/24 16:00', '2009/9/24 17:00', '2009/9/24 18:00', '2009/9/24 19:00', '2009/9/24 20:00', '2009/9/24 21:00', '2009/9/24 22:00', '2009/9/24 23:00', '2009/9/25 0:00', '2009/9/25 1:00', '2009/9/25 2:00', '2009/9/25 3:00', '2009/9/25 4:00', '2009/9/25 5:00', '2009/9/25 6:00', '2009/9/25 7:00', '2009/9/25 8:00', '2009/9/25 9:00', '2009/9/25 10:00', '2009/9/25 11:00', '2009/9/25 12:00', '2009/9/25 13:00', '2009/9/25 14:00', '2009/9/25 15:00', '2009/9/25 16:00', '2009/9/25 17:00', '2009/9/25 18:00', '2009/9/25 19:00', '2009/9/25 20:00', '2009/9/25 21:00', '2009/9/25 22:00', '2009/9/25 23:00', '2009/9/26 0:00', '2009/9/26 1:00', '2009/9/26 2:00', '2009/9/26 3:00', '2009/9/26 4:00', '2009/9/26 5:00', '2009/9/26 6:00', '2009/9/26 7:00', '2009/9/26 8:00', '2009/9/26 9:00', '2009/9/26 10:00', '2009/9/26 11:00', '2009/9/26 12:00', '2009/9/26 13:00', '2009/9/26 14:00', '2009/9/26 15:00', '2009/9/26 16:00', '2009/9/26 17:00', '2009/9/26 18:00', '2009/9/26 19:00', '2009/9/26 20:00', '2009/9/26 21:00', '2009/9/26 22:00', '2009/9/26 23:00', '2009/9/27 0:00', '2009/9/27 1:00', '2009/9/27 2:00', '2009/9/27 3:00', '2009/9/27 4:00', '2009/9/27 5:00', '2009/9/27 6:00', '2009/9/27 7:00', '2009/9/27 8:00', '2009/9/27 9:00', '2009/9/27 10:00', '2009/9/27 11:00', '2009/9/27 12:00', '2009/9/27 13:00', '2009/9/27 14:00', '2009/9/27 15:00', '2009/9/27 16:00', '2009/9/27 17:00', '2009/9/27 18:00', '2009/9/27 19:00', '2009/9/27 20:00', '2009/9/27 21:00', '2009/9/27 22:00', '2009/9/27 23:00', '2009/9/28 0:00', '2009/9/28 1:00', '2009/9/28 2:00', '2009/9/28 3:00', '2009/9/28 4:00', '2009/9/28 5:00', '2009/9/28 6:00', '2009/9/28 7:00', '2009/9/28 8:00', '2009/9/28 9:00', '2009/9/28 10:00', '2009/9/28 11:00', '2009/9/28 12:00', '2009/9/28 13:00', '2009/9/28 14:00', '2009/9/28 15:00', '2009/9/28 16:00', '2009/9/28 17:00', '2009/9/28 18:00', '2009/9/28 19:00', '2009/9/28 20:00', '2009/9/28 21:00', '2009/9/28 22:00', '2009/9/28 23:00', '2009/9/29 0:00', '2009/9/29 1:00', '2009/9/29 2:00', '2009/9/29 3:00', '2009/9/29 4:00', '2009/9/29 5:00', '2009/9/29 6:00', '2009/9/29 7:00', '2009/9/29 8:00', '2009/9/29 9:00', '2009/9/29 10:00', '2009/9/29 11:00', '2009/9/29 12:00', '2009/9/29 13:00', '2009/9/29 14:00', '2009/9/29 15:00', '2009/9/29 16:00', '2009/9/29 17:00', '2009/9/29 18:00', '2009/9/29 19:00', '2009/9/29 20:00', '2009/9/29 21:00', '2009/9/29 22:00', '2009/9/29 23:00', '2009/9/30 0:00', '2009/9/30 1:00', '2009/9/30 2:00', '2009/9/30 3:00', '2009/9/30 4:00', '2009/9/30 5:00', '2009/9/30 6:00', '2009/9/30 7:00', '2009/9/30 8:00', '2009/9/30 9:00', '2009/9/30 10:00', '2009/9/30 11:00', '2009/9/30 12:00', '2009/9/30 13:00', '2009/9/30 14:00', '2009/9/30 15:00', '2009/9/30 16:00', '2009/9/30 17:00', '2009/9/30 18:00', '2009/9/30 19:00', '2009/9/30 20:00', '2009/9/30 21:00', '2009/9/30 22:00', '2009/9/30 23:00',
+ '2009/10/1 0:00', '2009/10/1 1:00', '2009/10/1 2:00', '2009/10/1 3:00', '2009/10/1 4:00', '2009/10/1 5:00', '2009/10/1 6:00', '2009/10/1 7:00', '2009/10/1 8:00', '2009/10/1 9:00', '2009/10/1 10:00', '2009/10/1 11:00', '2009/10/1 12:00', '2009/10/1 13:00', '2009/10/1 14:00', '2009/10/1 15:00', '2009/10/1 16:00', '2009/10/1 17:00', '2009/10/1 18:00', '2009/10/1 19:00', '2009/10/1 20:00', '2009/10/1 21:00', '2009/10/1 22:00', '2009/10/1 23:00', '2009/10/2 0:00', '2009/10/2 1:00', '2009/10/2 2:00', '2009/10/2 3:00', '2009/10/2 4:00', '2009/10/2 5:00', '2009/10/2 6:00', '2009/10/2 7:00', '2009/10/2 8:00', '2009/10/2 9:00', '2009/10/2 10:00', '2009/10/2 11:00', '2009/10/2 12:00', '2009/10/2 13:00', '2009/10/2 14:00', '2009/10/2 15:00', '2009/10/2 16:00', '2009/10/2 17:00', '2009/10/2 18:00', '2009/10/2 19:00', '2009/10/2 20:00', '2009/10/2 21:00', '2009/10/2 22:00', '2009/10/2 23:00', '2009/10/3 0:00', '2009/10/3 1:00', '2009/10/3 2:00', '2009/10/3 3:00', '2009/10/3 4:00', '2009/10/3 5:00', '2009/10/3 6:00', '2009/10/3 7:00', '2009/10/3 8:00', '2009/10/3 9:00', '2009/10/3 10:00', '2009/10/3 11:00', '2009/10/3 12:00', '2009/10/3 13:00', '2009/10/3 14:00', '2009/10/3 15:00', '2009/10/3 16:00', '2009/10/3 17:00', '2009/10/3 18:00', '2009/10/3 19:00', '2009/10/3 20:00', '2009/10/3 21:00', '2009/10/3 22:00', '2009/10/3 23:00', '2009/10/4 0:00', '2009/10/4 1:00', '2009/10/4 2:00', '2009/10/4 3:00', '2009/10/4 4:00', '2009/10/4 5:00', '2009/10/4 6:00', '2009/10/4 7:00', '2009/10/4 8:00', '2009/10/4 9:00', '2009/10/4 10:00', '2009/10/4 11:00', '2009/10/4 12:00', '2009/10/4 13:00', '2009/10/4 14:00', '2009/10/4 15:00', '2009/10/4 16:00', '2009/10/4 17:00', '2009/10/4 18:00', '2009/10/4 19:00', '2009/10/4 20:00', '2009/10/4 21:00', '2009/10/4 22:00', '2009/10/4 23:00', '2009/10/5 0:00', '2009/10/5 1:00', '2009/10/5 2:00', '2009/10/5 3:00', '2009/10/5 4:00', '2009/10/5 5:00', '2009/10/5 6:00', '2009/10/5 7:00', '2009/10/5 8:00', '2009/10/5 9:00', '2009/10/5 10:00', '2009/10/5 11:00', '2009/10/5 12:00', '2009/10/5 13:00', '2009/10/5 14:00', '2009/10/5 15:00', '2009/10/5 16:00', '2009/10/5 17:00', '2009/10/5 18:00', '2009/10/5 19:00', '2009/10/5 20:00', '2009/10/5 21:00', '2009/10/5 22:00', '2009/10/5 23:00', '2009/10/6 0:00', '2009/10/6 1:00', '2009/10/6 2:00', '2009/10/6 3:00', '2009/10/6 4:00', '2009/10/6 5:00', '2009/10/6 6:00', '2009/10/6 7:00', '2009/10/6 8:00', '2009/10/6 9:00', '2009/10/6 10:00', '2009/10/6 11:00', '2009/10/6 12:00', '2009/10/6 13:00', '2009/10/6 14:00', '2009/10/6 15:00', '2009/10/6 16:00', '2009/10/6 17:00', '2009/10/6 18:00', '2009/10/6 19:00', '2009/10/6 20:00', '2009/10/6 21:00', '2009/10/6 22:00', '2009/10/6 23:00', '2009/10/7 0:00', '2009/10/7 1:00', '2009/10/7 2:00', '2009/10/7 3:00', '2009/10/7 4:00', '2009/10/7 5:00', '2009/10/7 6:00', '2009/10/7 7:00', '2009/10/7 8:00', '2009/10/7 9:00', '2009/10/7 10:00', '2009/10/7 11:00', '2009/10/7 12:00', '2009/10/7 13:00', '2009/10/7 14:00', '2009/10/7 15:00', '2009/10/7 16:00', '2009/10/7 17:00', '2009/10/7 18:00', '2009/10/7 19:00', '2009/10/7 20:00', '2009/10/7 21:00', '2009/10/7 22:00', '2009/10/7 23:00', '2009/10/8 0:00', '2009/10/8 1:00', '2009/10/8 2:00', '2009/10/8 3:00', '2009/10/8 4:00', '2009/10/8 5:00', '2009/10/8 6:00', '2009/10/8 7:00', '2009/10/8 8:00', '2009/10/8 9:00', '2009/10/8 10:00', '2009/10/8 11:00', '2009/10/8 12:00', '2009/10/8 13:00', '2009/10/8 14:00', '2009/10/8 15:00', '2009/10/8 16:00', '2009/10/8 17:00', '2009/10/8 18:00', '2009/10/8 19:00', '2009/10/8 20:00', '2009/10/8 21:00', '2009/10/8 22:00', '2009/10/8 23:00', '2009/10/9 0:00', '2009/10/9 1:00', '2009/10/9 2:00', '2009/10/9 3:00', '2009/10/9 4:00', '2009/10/9 5:00', '2009/10/9 6:00', '2009/10/9 7:00', '2009/10/9 8:00', '2009/10/9 9:00', '2009/10/9 10:00', '2009/10/9 11:00', '2009/10/9 12:00', '2009/10/9 13:00', '2009/10/9 14:00', '2009/10/9 15:00', '2009/10/9 16:00', '2009/10/9 17:00', '2009/10/9 18:00', '2009/10/9 19:00', '2009/10/9 20:00', '2009/10/9 21:00', '2009/10/9 22:00', '2009/10/9 23:00', '2009/10/10 0:00', '2009/10/10 1:00', '2009/10/10 2:00', '2009/10/10 3:00', '2009/10/10 4:00', '2009/10/10 5:00', '2009/10/10 6:00', '2009/10/10 7:00', '2009/10/10 8:00', '2009/10/10 9:00', '2009/10/10 10:00', '2009/10/10 11:00', '2009/10/10 12:00', '2009/10/10 13:00', '2009/10/10 14:00', '2009/10/10 15:00', '2009/10/10 16:00', '2009/10/10 17:00', '2009/10/10 18:00', '2009/10/10 19:00', '2009/10/10 20:00', '2009/10/10 21:00', '2009/10/10 22:00', '2009/10/10 23:00', '2009/10/11 0:00', '2009/10/11 1:00', '2009/10/11 2:00', '2009/10/11 3:00', '2009/10/11 4:00', '2009/10/11 5:00', '2009/10/11 6:00', '2009/10/11 7:00', '2009/10/11 8:00', '2009/10/11 9:00', '2009/10/11 10:00', '2009/10/11 11:00', '2009/10/11 12:00', '2009/10/11 13:00', '2009/10/11 14:00', '2009/10/11 15:00', '2009/10/11 16:00', '2009/10/11 17:00', '2009/10/11 18:00', '2009/10/11 19:00', '2009/10/11 20:00', '2009/10/11 21:00', '2009/10/11 22:00', '2009/10/11 23:00', '2009/10/12 0:00', '2009/10/12 1:00', '2009/10/12 2:00', '2009/10/12 3:00', '2009/10/12 4:00', '2009/10/12 5:00', '2009/10/12 6:00', '2009/10/12 7:00', '2009/10/12 8:00', '2009/10/12 9:00', '2009/10/12 10:00', '2009/10/12 11:00', '2009/10/12 12:00', '2009/10/12 13:00', '2009/10/12 14:00', '2009/10/12 15:00', '2009/10/12 16:00', '2009/10/12 17:00', '2009/10/12 18:00', '2009/10/12 19:00', '2009/10/12 20:00', '2009/10/12 21:00', '2009/10/12 22:00', '2009/10/12 23:00', '2009/10/13 0:00', '2009/10/13 1:00', '2009/10/13 2:00', '2009/10/13 3:00', '2009/10/13 4:00', '2009/10/13 5:00', '2009/10/13 6:00', '2009/10/13 7:00', '2009/10/13 8:00', '2009/10/13 9:00', '2009/10/13 10:00', '2009/10/13 11:00', '2009/10/13 12:00', '2009/10/13 13:00', '2009/10/13 14:00', '2009/10/13 15:00', '2009/10/13 16:00', '2009/10/13 17:00', '2009/10/13 18:00', '2009/10/13 19:00', '2009/10/13 20:00', '2009/10/13 21:00', '2009/10/13 22:00', '2009/10/13 23:00', '2009/10/14 0:00', '2009/10/14 1:00', '2009/10/14 2:00', '2009/10/14 3:00', '2009/10/14 4:00', '2009/10/14 5:00', '2009/10/14 6:00', '2009/10/14 7:00', '2009/10/14 8:00', '2009/10/14 9:00', '2009/10/14 10:00', '2009/10/14 11:00', '2009/10/14 12:00', '2009/10/14 13:00', '2009/10/14 14:00', '2009/10/14 15:00', '2009/10/14 16:00', '2009/10/14 17:00', '2009/10/14 18:00', '2009/10/14 19:00', '2009/10/14 20:00', '2009/10/14 21:00', '2009/10/14 22:00', '2009/10/14 23:00', '2009/10/15 0:00', '2009/10/15 1:00', '2009/10/15 2:00', '2009/10/15 3:00', '2009/10/15 4:00', '2009/10/15 5:00', '2009/10/15 6:00', '2009/10/15 7:00', '2009/10/15 8:00', '2009/10/15 9:00', '2009/10/15 10:00', '2009/10/15 11:00', '2009/10/15 12:00', '2009/10/15 13:00', '2009/10/15 14:00', '2009/10/15 15:00', '2009/10/15 16:00', '2009/10/15 17:00', '2009/10/15 18:00', '2009/10/15 19:00', '2009/10/15 20:00', '2009/10/15 21:00', '2009/10/15 22:00', '2009/10/15 23:00', '2009/10/16 0:00', '2009/10/16 1:00', '2009/10/16 2:00', '2009/10/16 3:00', '2009/10/16 4:00', '2009/10/16 5:00', '2009/10/16 6:00', '2009/10/16 7:00', '2009/10/16 8:00', '2009/10/16 9:00', '2009/10/16 10:00', '2009/10/16 11:00', '2009/10/16 12:00', '2009/10/16 13:00', '2009/10/16 14:00', '2009/10/16 15:00', '2009/10/16 16:00', '2009/10/16 17:00', '2009/10/16 18:00', '2009/10/16 19:00', '2009/10/16 20:00', '2009/10/16 21:00', '2009/10/16 22:00', '2009/10/16 23:00', '2009/10/17 0:00', '2009/10/17 1:00', '2009/10/17 2:00', '2009/10/17 3:00', '2009/10/17 4:00', '2009/10/17 5:00', '2009/10/17 6:00', '2009/10/17 7:00', '2009/10/17 8:00', '2009/10/17 9:00', '2009/10/17 10:00', '2009/10/17 11:00', '2009/10/17 12:00', '2009/10/17 13:00', '2009/10/17 14:00', '2009/10/17 15:00', '2009/10/17 16:00', '2009/10/17 17:00', '2009/10/17 18:00', '2009/10/17 19:00', '2009/10/17 20:00', '2009/10/17 21:00', '2009/10/17 22:00', '2009/10/17 23:00', '2009/10/18 0:00', '2009/10/18 1:00', '2009/10/18 2:00', '2009/10/18 3:00', '2009/10/18 4:00', '2009/10/18 5:00', '2009/10/18 6:00', '2009/10/18 7:00', '2009/10/18 8:00'
+];
+
+timeData = timeData.map(function (str) {
+ return str.replace('2009/', '');
+});
+
+option = {
+ title: {
+ text: '雨量流量关系图',
+ subtext: '数据来自西安兰特水电测控技术有限公司',
+ left: 'center'
+ },
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ animation: false
+ }
+ },
+ legend: {
+ data: ['流量', '降雨量'],
+ left: 10
+ },
+ toolbox: {
+ feature: {
+ dataZoom: {
+ yAxisIndex: 'none'
+ },
+ restore: {},
+ saveAsImage: {}
+ }
+ },
+ axisPointer: {
+ link: [{
+ xAxisIndex: 'all'
+ }]
+ },
+ dataZoom: [
+ {
+ show: true,
+ realtime: true,
+ start: 30,
+ end: 70,
+ xAxisIndex: [0, 1]
+ },
+ {
+ type: 'inside',
+ realtime: true,
+ start: 30,
+ end: 70,
+ xAxisIndex: [0, 1]
+ }
+ ],
+ grid: [{
+ left: 50,
+ right: 50,
+ height: '35%'
+ }, {
+ left: 50,
+ right: 50,
+ top: '55%',
+ height: '35%'
+ }],
+ xAxis: [
+ {
+ type: 'category',
+ boundaryGap: false,
+ axisLine: {onZero: true},
+ data: timeData
+ },
+ {
+ gridIndex: 1,
+ type: 'category',
+ boundaryGap: false,
+ axisLine: {onZero: true},
+ data: timeData,
+ position: 'top'
+ }
+ ],
+ yAxis: [
+ {
+ name: '流量(m^3/s)',
+ type: 'value',
+ max: 500
+ },
+ {
+ gridIndex: 1,
+ name: '降雨量(mm)',
+ type: 'value',
+ inverse: true
+ }
+ ],
+ series: [
+ {
+ name: '流量',
+ type: 'line',
+ symbolSize: 8,
+ data: [
+ 0.97,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.92,0.91,0.9,0.89,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.88,0.9,0.93,0.96,0.99,1.03,1.06,1.1,1.14,1.17,1.2,1.23,1.26,1.29,1.33,1.36,1.4,1.43,1.45,1.48,1.49,1.51,1.51,1.5,1.49,1.47,1.44,1.41,1.37,1.34,1.3,1.27,1.24,1.22,1.2,1.19,1.18,1.16,1.15,1.14,1.13,1.12,1.11,1.11,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.09,1.09,1.08,1.07,1.06,1.05,1.04,1.03,1.03,1.02,1.01,1.01,1,0.99,0.98,0.97,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.92,0.91,0.9,0.89,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.84,0.83,0.82,0.81,0.8,0.8,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.75,0.73,0.71,0.68,0.65,0.63,0.61,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.57,0.57,0.56,0.55,0.55,0.54,0.54,0.53,0.52,0.52,0.51,0.51,0.5,0.5,0.49,0.48,0.48,0.47,0.47,0.47,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.52,0.67,0.9,1.19,1.52,1.87,2.22,2.55,2.84,3.07,3.22,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.24,3.13,2.97,2.77,2.54,2.3,2.05,1.82,1.62,1.46,1.35,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.3,1.26,1.21,1.14,1.06,0.97,0.89,0.81,0.74,0.69,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.6,0.59,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.59,0.61,0.63,0.65,0.68,0.71,0.73,0.75,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.75,0.73,0.71,0.68,0.65,0.63,0.61,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.59,0.59,0.6,0.61,0.62,0.62,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.66,0.68,0.69,0.71,0.73,0.74,0.76,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.81,0.82,0.84,0.86,0.88,0.9,0.92,0.93,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.92,0.91,0.9,0.89,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.84,0.82,0.8,0.78,0.76,0.75,0.73,0.72,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.72,0.73,0.74,0.76,0.78,0.79,0.82,0.84,0.86,0.89,0.91,0.94,0.97,1,1.02,1.05,1.08,1.11,1.14,1.17,1.19,1.22,1.25,1.27,1.29,1.31,1.33,1.35,1.36,1.38,1.39,1.39,1.4,1.4,1.4,1.39,1.37,1.35,1.32,1.29,1.26,1.22,1.18,1.14,1.1,1.05,1.01,0.97,0.93,0.89,0.85,0.82,0.78,0.76,0.74,0.72,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.72,0.73,0.74,0.75,0.77,0.78,0.8,0.82,0.84,0.87,0.89,0.92,0.94,0.97,0.99,1.02,1.05,1.08,1.1,1.13,1.16,1.18,1.21,1.23,1.26,1.28,1.3,1.32,1.34,1.35,1.37,1.38,1.39,1.4,1.41,1.41,1.42,1.42,1.43,1.43,1.43,1.44,1.44,1.44,1.44,1.45,1.45,1.45,1.46,1.46,1.46,1.47,1.47,1.48,1.48,1.49,1.5,1.51,1.54,1.62,1.73,1.88,2.05,2.24,2.45,2.67,2.89,3.11,3.31,3.51,3.69,3.86,4.03,4.18,4.33,4.48,4.62,4.76,4.89,5.02,5.16,5.29,5.43,5.57,5.71,5.86,6.02,6.18,6.36,6.54,6.73,6.93,7.15,7.38,7.62,7.88,8.16,8.46,8.77,9.11,9.46,9.84,10.24,10.67,11.12,11.6,12.3,13.66,16,38.43,82.21,146.6,218.7,226,225.23,223.08,219.78,212,199.82,184.6,168,151.65,137.21,126.31,119.94,115.52,112.06,108.92,105.44,101,94.56,86.36,77.67,69.76,63.9,60.38,57.41,54.84,52.57,50.56,48.71,46.97,45.25,43.48,41.6,39.5,37.19,34.81,32.46,30.27,28.36,26.85,25.86,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.27,24.65,23.7,22.52,21.17,19.75,18.33,16.98,15.8,14.85,14.23,14,14.02,14.08,14.17,14.29,14.44,14.61,14.8,15.01,15.23,15.47,15.71,15.95,16.19,16.43,16.67,16.89,17.1,17.29,17.46,17.61,17.73,17.82,17.88,17.9,17.63,16.88,15.75,14.33,12.71,10.98,9.23,7.56,6.05,4.81,3.92,3.47,3.28,3.1,2.93,2.76,2.61,2.46,2.32,2.19,2.07,1.96,1.85,1.75,1.66,1.58,1.51,1.44,1.39,1.34,1.29,1.26,1.23,1.22,1.2,1.2,1.2,1.2,1.2,1.2,1.21,1.21,1.21,1.21,1.22,1.22,1.22,1.23,1.23,1.23,1.24,1.24,1.25,1.25,1.25,1.26,1.26,1.27,1.27,1.27,1.28,1.28,1.28,1.29,1.29,1.29,1.29,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.29,1.29,1.29,1.29,1.28,1.28,1.28,1.27,1.27,1.26,1.25,1.25,1.24,1.23,1.23,1.22,1.21,1.2,1.16,1.06,0.95,0.83,0.74,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.66,0.68,0.69,0.71,0.73,0.74,0.76,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.8,0.86,0.95,1.08,1.25,1.46,1.7,1.97,2.28,2.63,3.01,3.42,3.87,4.35,4.86,5.4,5.98,6.59,7.92,10.49,14.04,18.31,23.04,27.98,32.87,37.45,41.46,44.64,46.74,47.5,46.86,45.16,42.77,40.04,37.33,35,32.74,30.21,27.7,25.5,23.9,23.2,23.06,22.94,22.84,22.77,22.72,22.7,22.8,23.23,23.95,24.91,26.04,27.3,28.76,30.7,33.39,37.12,42.15,48.77,65.22,252.1,257,237.32,221.19,212,208.67,206.89,205.2,202.15,189.82,172,165.3,160.49,156.8,153.44,149.62,144.6,138.27,131,123.11,114.9,106.69,98.79,91.5,85.13,80,75.53,71.03,66.65,62.54,58.85,55.73,53.31,51.75,51.2,56.53,68.25,80,91.01,102.03,109,112.37,115.29,117.68,119.48,120.61,121,119.45,115.57,110.52,105.47,101.58,100,99.97,99.94,99.92,99.9,99.88,99.86,99.85,99.84,99.83,99.82,99.81,99.81,99.8,99.8,99.8,122.15,163.65,186,182.96,175.15,164.56,153.18,143,136,131.37,126.98,122.81,118.85,115.09,111.52,108.13,104.9,101.83,98.9,96.11,93.44,90.87,88.41,86.04,83.74,81.51,79.33,77.2,75.1,73.02,70.95,68.88,66.8,64.87,63.14,61.4,59.53,57.67,56,54.6,53.36,52.2,51.05,49.85,48.5,46.87,44.92,42.74,40.42,38.04,35.69,33.46,31.44,29.72,28.38,27.51,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.14,26.97,26.7,26.35,25.95,25.49,25.02,24.53,24.04,23.58,23.16,22.8,22.46,22.11,21.75,21.39,21.03,20.69,20.36,20.05,19.78,19.54,19.35,19.2,19.09,19,18.92,18.85,18.79,18.74,18.68,18.62,18.56,18.49,18.4,18.3,18.17,18.02,17.83,17.63,17.41,17.18,16.93,16.68,16.43,16.18,15.93,15.7,15.47,15.22,14.97,14.71,14.45,14.18,13.93,13.68,13.44,13.21,13,12.8,12.62,12.46,12.31,12.16,12.03,11.89,11.76,11.62,11.48,11.33,11.17,11,10.81,10.59,10.36,10.12,9.86,9.61,9.36,9.12,8.89,8.68,8.5,8.35,8.21,8.08,7.94,7.81,7.68,7.56,7.46,7.36,7.29,7.23,7.19,7.18,7.51,8.42,9.81,11.58,13.63,15.86,18.16,20.44,22.58,24.49,26.06,27.2,28.08,28.95,29.81,30.65,31.48,32.28,33.07,33.82,34.55,35.25,35.92,36.56,37.15,37.71,38.23,38.7,39.13,39.5,39.83,40.1,40.31,40.47,40.57,40.6,40.49,40.16,39.64,38.94,38.09,37.1,36,34.79,33.51,32.17,30.79,29.39,27.99,26.6,25.25,23.96,22.75,21.63,20.63,19.76,19.04,18.49,18.14,18,17.97,17.95,17.94,17.92,17.91,17.9,17.89,17.88,17.87,17.85,17.83,17.8,17.7,17.46,17.13,16.7,16.21,15.68,15.13,14.57,14.04,13.56,13.14,12.8,12.52,12.27,12.02,11.79,11.57,11.37,11.16,10.97,10.78,10.59,10.39,10.2,10.01,9.81,9.63,9.44,9.26,9.08,8.9,8.73,8.56,8.39,8.22,8.06,7.9,7.73,7.57,7.41,7.25,7.09,6.94,6.79,6.65,6.52,6.4,6.28,6.17,6.08,5.98,5.9,5.81,5.73,5.65,5.57,5.49,5.41,5.32,5.23,5.14,5.04,4.94,4.84,4.74,4.63,4.53,4.43,4.33,4.23,4.13,4.03,3.93,3.81,3.69,3.57,3.45,3.33,3.22,3.12,3.04,2.98,2.93,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.9,2.86,2.8,2.71,2.62,2.52,2.42,2.33,2.24,2.18,2.14,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.1,2.06,2,1.91,1.82,1.71,1.61,1.5,1.4,1.32,1.25,1.2,1.16,1.13,1.1,1.06,1.03,1,0.97,0.93,0.9,0.87,0.85,0.82,0.79,0.77,0.74,0.72,0.69,0.67,0.65,0.63,0.61,0.59,0.58,0.56,0.54,0.53,0.52,0.51,0.5,0.49,0.48,0.48,0.47,0.47,0.46,0.46,0.47,0.48,0.5,0.53,0.56,0.59,0.62,0.64,0.67,0.69,0.7,0.71,0.71,0.71,0.71,0.7,0.7,0.7,0.69,0.69,0.69,0.68,0.68,0.67,0.67,0.67,0.66,0.66,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.65,0.66,0.66,0.67,0.68,0.69,0.69,0.7,0.71,0.73,0.74,0.75,0.76,0.78,0.8,0.81,0.83,0.85,0.87,0.89,0.92,0.94,0.97,0.99,1.02,1.05,1.08,1.11,1.15,1.18,1.32,1.66,2.21,2.97,3.94,5.11,6.5,8.1,9.9,11.92,14.15,16.6,22.3,22.8,24.48,30.38,35.74,42.4,57.14,94.04,112.9,123.4,130.4,130,119.4,120.7,116.8,118.1,119.4,124.8,143.5,204,294,319.2,328.4,365,350.8,347.6,347.6,325,331.6,319.2,308,308,308,308,296.8,300,281,278.4,270.6,271,253.6,233.5,219.2,207.8,205.9,204,189.6,178.8,173.4,160,154.4,146,145,140.5,130.4,126.2,116.8,112.9,106.5,101.6,98.51,82.67,67.3,80.05,76.12,72.3,71.02,69.78,67.3,67.3,68.54,57.6,71.02,66.06,59.12,57.14,55.16,55.16,52.19,52.19,51.2,48.56,44.16,43,45.92,49.44,44.16,36.48,35.74,35,32.36,37.22,32.36,32.36,32.36,33.68,32.36,31.7,35.74,29.72,32.36,30.38,29.72,28.4,28.4,28.4,27.28,25.6,25.04,23.92,22.3,21.8,21.8,21.8,22.8,21.8,25.6,22.8,22.8,17.8,16.04,16.04,16.04,16.04,16.04,16.04,16.04,16.04,16.04,16.04,15.02,14,14.03,14.11,14.25,14.45,14.72,15.06,15.46,15.95,16.51,17.15,17.87,18.69,19.59,20.59,21.69,22.88,24.18,25.59,27.1,28.73,30.48,32.34,34.33,36.44,38.69,41.06,43.57,46.22,49.01,51.95,55.04,58.27,61.66,65.21,68.92,72.8,88.09,104.9,105.7,110.3,111.6,110.3,106.5,105.7,103.3,100,97.02,98.8,91.07,83.98,88.09,81.36,78.74,77.43,77.43,73.5,74.81,72.63,68.58,66.4,68.54,69.78,67.3,64.82,61.1,59.12,56.15,53.18,50.32,49.44,44.16,36.5,42.4,37.96,37.22,33.68,36.48,35.74,35,35,37.22,37.22,39.44,32.6,34.54,36.48,35.74,34.34,33.68,33.02,31.04,29.72,29.72,29.72,26.16,25.6,29.72,18.3,22.3,21.3,21.8,21.8,20.3,20.8,25.04,25.04,25.6,25.6,25.04,25.6,25.04,25.6,23.92,25.04,21.3,21.8,22.3,21.8,20.8,16.1,20.3,18.3,13.22,19.3,19.3,18.3,14.4,13.86,13.36,12.9,12.48,12.1,11.75,11.43,11.15,10.9,10.67,10.48,10.31,10.16,10.04,9.93,9.85,9.78,9.73,9.69,9.67,9.65,9.65,12.08,8.67,11.7,11.38,10.65,9.84,9.32,9.07,8.85,8.66,8.49,8.35,8.22,8.1,7.98,7.86,7.74,7.61,7.47,7.31,7.14,6.96,6.78,6.58,6.39,6.19,5.99,5.78,5.58,5.39,5.2,5.01,4.83,4.67,4.51,4.37,4.24,4.12,4.02,3.95,3.89,3.85,3.84,4.41,5.77,7.39,8.75,9.32,9.18,9,8.94,8.88,8.83,8.78,8.73,8.68,8.64,8.6,8.56,8.53,8.5,8.47,8.45,8.42,8.4,8.39,8.37,8.36,8.35,8.35,8.34,8.34,8.67,9.65,9.62,9.53,9.4,9.21,8.98,8.7,8.4,8.06,7.69,7.3,6.89,6.47,6.03,5.59,5.14,4.7,4.26,3.83,3.42,3.02,2.65,2.3,1.98,1.7,1.45,1.25,1.09,0.99,0.94,0.92,0.91,0.89,0.87,0.85,0.84,0.82,0.81,0.79,0.78,0.77,0.75,0.74,0.73,0.72,0.71,0.7,0.69,0.68,0.67,0.66,0.65,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.61,0.61,0.62,0.62,0.62,0.62,0.63,0.63,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.63,0.62,0.6,0.59,0.57,0.55,0.54,0.53,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.5,0.5,0.49,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.43,0.42,0.42,0.41,0.41,0.41,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.41,0.42,0.43,0.44,0.46,0.48,0.5,0.53,0.55,0.58,0.61,0.64,0.67,0.7,0.73,0.77,0.8,0.83,0.87,0.9,0.93,0.96,0.99,1.02,1.05,1.08,1.1,1.12,1.14,1.16,1.17,1.18,1.19,1.2,1.2,1.2,1.19,1.17,1.15,1.12,1.09,1.06,1.02,0.98,0.94,0.9,0.86,0.82,0.78,0.74,0.7,0.66,0.63,0.6,0.57,0.55,0.53,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.51,0.51,0.5,0.5,0.49,0.49,0.48,0.47,0.47,0.47,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.44,0.43,0.43,0.43,0.42,0.42,0.42,0.41,0.41,0.41,0.41,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.43,0.43,0.43,0.43,0.43,0.43,0.44,0.44,0.44,0.44,0.44,0.44,0.45,0.45,0.45
+ ]
+ },
+ {
+ name: '降雨量',
+ type: 'line',
+ xAxisIndex: 1,
+ yAxisIndex: 1,
+ symbolSize: 8,
+ data: [
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.017,0.017,0.017,0.017,0.011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.021,0.026,0.03,0.036,0.036,0.195,0.221,0.019,0.013,0.017,0.03,0.03,0.03,0.046,0.045,0.038,0.084,0.045,0.045,0.037,0.034,0.035,0.036,0.044,0.052,0.048,0.109,0.033,0.029,0.04,0.042,0.042,0.042,0.073,0.076,0.062,0.066,0.066,0.075,0.096,0.128,0.121,0.128,0.14,0.226,0.143,0.097,0.018,0,0,0,0,0,0.018,0.047,0.054,0.054,0.054,0.036,0.185,0.009,0.038,0.061,0.077,0.091,0.126,0.69,0.182,0.349,0.231,0.146,0.128,0.167,0.1,0.075,0.071,0.071,0.117,0.01,0.002,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.026,0.038,0.038,0.038,0.076,0.086,0.109,0.213,0.276,0.288,0.297,0.642,1.799,1.236,2.138,0.921,0.497,0.685,0.828,0.41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.024,0.024,0.024,0.024,0.006,0.003,0.046,0.046,0.046,0.046,0.043,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.204,0.303,1.028,1.328,1.524,1.41,1.362,1.292,1.191,0.529,0.501,0.944,1.81,2.899,0.859,0.126,0.087,0.047,0,0,0,0,0.011,0.028,0.028,0.028,0.028,0.017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.099,0.159,0.297,0.309,0.309,0.614,0.818,1.436,1.195,0.553,0.542,0.955,0.898,0.466,0.386,0.556,0.388,0.221,0.192,0.192,0.187,0.166,0.18,0.302,0.158,0.009,0.009,0.009,0.009,0.009,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.032,0.032,0.032,0.032,0.082,0.149,0.204,0.247,0.262,0.49,0.51,0.533,0.746,0.847,2.393,1.188,1.114,0.475,0.043,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,0.017,0.021,0.042,0.079,0.111,0.126,0.122,0.133,0.846,0.102,0.077,0.067,0.056,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0.011,0.017,0.017,0.017,0.017,0.006,0,0,0,0,0,0.01,0.03,0.054,0.067,0.07,0.25,0.251,0.494,0.065,0.054,0.054,0.064,0.084,0.077,0.101,0.132,0.248,0.069,0.117,0.115,0.087,0.326,0.036,0.009,0.009,0.009,0.009,0.009,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.039,0.04,0.04,0.04,0.229,0.079,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.023,0.069,0.082,0.082,0.082,0.503,0.774,0.038,0.012,0.012,0.012,0.016,0.02,0.028,0.051,0.06,0.064,0.19,0.15,0.164,0.139,0.13,0.085,0.031,0.023,0.022,0.007,0.005,0.005,0.001,0,0.02,0.048,0.048,0.053,0.056,0.036,0.008,0.008,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.017,0.036,0.068,0.095,0.233,0.272,0.377,0.722,1.494,3.756,0.954,0.439,0.442,0.462,0.373,0.249,0.214,0.1,0.044,0.037,0.023,0.002,0,0,0,0,0,0,0.02,0.024,0.024,0.024,0.024,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.017,0.017,0.045,0.186,0.308,0.241,0.241,0.893,4.067,4.494,5.015,3.494,2.057,1.411,0.718,0.407,0.313,0.339,1.537,1.105,0.218,0.136,0.03,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.037,0.448,1.2,1.309,1.309,1.425,1.223,0.471,0.767,0.423,0.273,0.412,0.646,0.481,0.239,0.131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.044,0.15,0.223,0.388,0.513,0.883,2.828,4.786,5.959,4.95,6.434,6.319,3.35,2.806,4.204,1.395,1.015,1.015,0.836,0.74,0.72,0.615,0.477,0.192,0.046,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.008,0.005,0.005,0.005,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.012,0.012,0.012,0.012,0.011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.012,0.028,0.028,0.028,0.138,0.092,0.082,0.082,0.096,0.719,0.155,0.042,0.047,0.129,0.021,0.021,0.014,0.009,0.029,0.067,0.088,0.095,0.095,0.138,0.091,0.032,0.025,0.025,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.045,0.228,0.297,0.325,0.339,0.581,1.244,0.796,0.517,0.227,0.053,0.006,0,0,0,0,0,0,0,0,0,0.003,0.005,0.005,0.005,0.005,0.081,0.129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014,0.041,0.041,0.041,0.041,0.027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.017,0.017,0.017,0.017,0.355,0.174,0.009,0.009,0.012,0.136,0.208,0.208,0.208,0.215,7.359,1.858,0.458,0.053,0.053,0.047,0.045,0.045,0.059,0.136,0.188,0.206,0.21,0.588,1.517,6.02,4.688,4.42,0.624,0.326,0.359,0.553,0.899,0.94,2.95,9.415,5.752,1.092,0.096,0.035,0.026,0.018,0.015,0.011,0.011,0.011,0,0,0,0,0,0,0,0,0,0,0,0.056,0.27,0.314,0.351,0.354,0.609,0.796,1.857,0.848,0.538,0.214,0.178,0.178,0.201,0.231,0.227,0.272,0.397,0.45,1.014,2.917,1.675,0.081,0.059,0.059,0.148,0.075,0.075,0.078,0.236,0.784,0.784,0.784,0.784,0.741,0.115,0.058,0.058,0.058,0.029,0.015,0.015,0.015,0.015,0.012,0.008,0.604,0.985,1.305,2.273,2.528,2.336,2.496,2.281,1.397,1.713,3.259,1.167,0.745,0.548,1.058,0.684,0.728,0.392,0.179,0.283,0.283,0.46,0.08,0.099,0.099,0.099,0.1,0.143,0.137,0.238,0.317,0.262,0.225,0.792,0.426,0.332,0.261,0.11,0.093,0.102,0.171,0.292,0.504,0.605,1.745,2.485,1.964,0.33,0.171,0.259,0.242,0.215,0.366,0.354,0.205,0.203,0.262,0.153,0.13,0.137,0.362,0.691,0.295,0.433,0.154,0.056,0.053,0.053,0.053,0.051,0.047,0.065,0.078,0.091,0.206,0.813,0.102,0.151,0.05,0.024,0.004,0.001,0,0,0,0.021,0.021,0.021,0.021,0.021,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.021,0.021,0.021,0.021,0.003,0,0,0,0,0,0,0,0,0,0.024,0.173,0.261,0.267,0.267,0.534,1.354,1.772,0.72,0.218,0.018,0.018,0.028,0.036,0.032,0.194,0.082,0.035,0.286,0.027,0.038,0.038,0.027,0.021,0.014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.017,0.017,0.031,0.047,0.043,0.056,0.104,0.149,0.179,0.205,0.328,0.998,0.522,1.851,3.727,3.273,2.204,1.169,1.006,1.179,0.74,0.741,1.065,0.925,0.671,0.497,0.431,0.327,0.277,0.126,0.581,0.207,0.359,2.485,0.038,0.036,0.003,0.003,0.003,0.003,0.004,0.098,0.023,0.021,0.021,0.022,0.041,0.041,0.043,0.045,0.043,0.014,0.014,0.014,0.014,0.014,0.014,0.014,0.031,0.046,0.063,0.119,0.107,0.092,0.085,0.065,0.06,0.054,0.042,0.039,0.046,0.044,0.028,0.028,0.02,0.013,0.013,0.013,0.013,0.016,0.032,0.031,0.031,0.031,0.028,0.011,0.011,0.011,0.011,0.011,0.023,0.024,0.024,0.024,0.019,0.015,0.015,0.015,0.015,0.015,0.015,0.013,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.011,0.017,0.024,0.026,0.061,0.172,0.206,0.213,0.267,0.511,0.668,0.157,0.017,0.017,0.017,0.046,0.054,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.017,0.017,0.017,0.017,0.016,0,0,0,0,0,0,0,0,0,0.01,0.017,0.017,0.017,0.017,0.012,0.017,0.017,0.017,0.017,0.012,0,0,0,0,0,0.003,0.031,0.066,0.093,0.112,0.122,0.202,0.068,0.041,0.022,0.011,0,0,0,0,0,0,0,0,0,0,0,0.002,0.005,0.012,0.021,0.021,0.019,0.033,0.03,0.026,0.026,0.034,0.095,0.024,0.024,0.024,0.023,0.019,0.018,0.018,0.018,0.011,0.03,0.045,0.044,0.044,0.044,0.022,0.009,0.024,0.033,0.033,0.033,0.024,0.009,0,0,0,0,0,0,0.003,0.017,0.017,0.017,0.017,0.014,0,0,0,0,0,0.032,0.032,0.032,0.032,0.032,0.005,0.008,0.009,0.014,0.014,0.009,0.005,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.009,0.009,0.009,0.009,0.043,0.063,0.084,0.098,0.101,0.213,0.334,0.383,0.43,0.448,0.511,0.801,0.835,1.642,1.614,1.496,1.496,1.476,1.068,0.481,0.22,0.119,0.099,0.07,0.072,0.063,0.076,0.14,0.205,0.28,0.297,0.3,0.479,0.877,1.098,1.611,1.629,1.686,1.686,1.631,1.528,1.862,1.703,1.531,2.196,0.395,0.416,0.453,0.728,0.917,0.986,1.17,2.171,3.011,2.909,3.301,1.377,0.778,0.799,0.947,1.039,0.879,0.76,1.372,1.674,1.674,1.68,1.823,1.793,1.162,0.783,0.216,0.152,0.152,0.152,0.049,0,0,0,0.117,0.127,0.127,0.127,0.127,0.127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.005,0.005,0.005,0.005,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.309,0.364,0.364,0.364,0.364,0.063,0.01,0.01,0.01,0.012,0.015,0.015,0.11,0.55,0.824,0.825,0.829,1.39,1.429,1.342,1.43,1.636,1.717,2.135,2.203,3.191,3.022,1.589,0.86,0.807,0.645,0.595,0.588,0.557,0.552,1.271,0.708,0.677,0.629,0.714,0.203,0.133,0.061,0.062,0.018,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.072,0.29,0.438,0.53,0.557,0.873,1.039,1.04,0.208,0.049,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.039,0.039,0.039,0.039,0.098,0.008,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.056,0.062,0.065,0.065,0.065,0.047,0.216,0.256,0.315,0.4,0.502,0.449,0.47,0.571,0.814,1.153,0.774,0.202,0.086,0.075,0.071,0.032,0.019,0.003,0.004,0.004,0.004,0.004,0.004,0.004,0.007,0.072,0.153,0.256,0.306,0.404,0.698,0.733,0.823,0.715,0.563,0.404,0.293,0.217,0.213,0.202,0.202,0.294,0.704,0.797,1.359,1.101,0.72,0.514,0.539,0.434,0.389,0.387,0.386,0.375,0.369,0.319,0.239,0.183,0.136,0.062,0.052,0.096,0.119,0.119,0.114,0.127,0.132,0.139,0.169,0.191,0.278,0.254,0.214,0.237,0.221,0.143,0.129,0.125,0.109,0.1,0.087,0.06,0.038,0.029,0.029,0.028,0.048,0.053,0.053,0.111,0.125,0.102,0.097,0.097,0.039,0.02,0.02,0.02,0.014,0.004,0.031,0.043,0.047,0.052,0.08,0.144,0.182,0.176,0.171,0.149,0.112,0.025,0,0,0,0,0,0,0,0.016,0.031,0.031,0.031,0.031,0.015,0,0,0,0,0,0.005,0.005,0.005,0.005,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.005,0.005,0.005,0.005,0.001,0,0,0
+ ]
+ }
+ ]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/heatmap-cartesian.ts b/public/examples/ts/heatmap-cartesian.ts
new file mode 100644
index 0000000..468cd3e
--- /dev/null
+++ b/public/examples/ts/heatmap-cartesian.ts
@@ -0,0 +1,66 @@
+/*
+title: Heatmap on Cartesian
+category: heatmap
+titleCN: 笛卡尔坐标系上的热力图
+difficulty: 0
+*/
+
+const 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'];
+const days = ['Saturday', 'Friday', 'Thursday',
+ 'Wednesday', 'Tuesday', 'Monday', 'Sunday'];
+
+const 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]]
+ .map(function (item) {
+ return [item[1], item[0], item[2] || '-'];
+ });
+
+option = {
+ tooltip: {
+ position: 'top'
+ },
+ grid: {
+ height: '50%',
+ top: '10%'
+ },
+ xAxis: {
+ type: 'category',
+ data: hours,
+ splitArea: {
+ show: true
+ }
+ },
+ yAxis: {
+ type: 'category',
+ data: days,
+ splitArea: {
+ show: true
+ }
+ },
+ visualMap: {
+ min: 0,
+ max: 10,
+ calculable: true,
+ orient: 'horizontal',
+ left: 'center',
+ bottom: '15%'
+ },
+ series: [{
+ name: 'Punch Card',
+ type: 'heatmap',
+ data: data,
+ label: {
+ show: true
+ },
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
+ }
+ }
+ }]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-aqi.ts b/public/examples/ts/line-aqi.ts
new file mode 100644
index 0000000..56f9663
--- /dev/null
+++ b/public/examples/ts/line-aqi.ts
@@ -0,0 +1,101 @@
+/*
+title: Beijing AQI
+category: line
+titleCN: 北京 AQI 可视化
+difficulty: 4
+*/
+
+$.get(ROOT_PATH + '/data/asset/data/aqi-beijing.json', function (data) {
+ myChart.setOption(option = {
+ title: {
+ text: 'Beijing AQI',
+ left: '1%'
+ },
+ tooltip: {
+ trigger: 'axis'
+ },
+ grid: {
+ left: '5%',
+ right: '15%',
+ bottom: '10%'
+ },
+ xAxis: {
+ data: data.map(function (item: string[]) {
+ return item[0];
+ })
+ },
+ yAxis: {},
+ toolbox: {
+ right: 10,
+ feature: {
+ dataZoom: {
+ yAxisIndex: 'none'
+ },
+ restore: {},
+ saveAsImage: {}
+ }
+ },
+ dataZoom: [{
+ startValue: '2014-06-01'
+ }, {
+ type: 'inside'
+ }],
+ visualMap: {
+ top: 50,
+ right: 10,
+ pieces: [{
+ gt: 0,
+ lte: 50,
+ color: '#93CE07'
+ }, {
+ gt: 50,
+ lte: 100,
+ color: '#FBDB0F'
+ }, {
+ gt: 100,
+ lte: 150,
+ color: '#FC7D02'
+ }, {
+ gt: 150,
+ lte: 200,
+ color: '#FD0100'
+ }, {
+ gt: 200,
+ lte: 300,
+ color: '#AA069F'
+ }, {
+ gt: 300,
+ color: '#AC3B2A'
+ }],
+ outOfRange: {
+ color: '#999'
+ }
+ },
+ series: {
+ name: 'Beijing AQI',
+ type: 'line',
+ data: data.map(function (item: number[]) {
+ return item[1];
+ }),
+ markLine: {
+ silent: true,
+ lineStyle: {
+ color: '#333'
+ },
+ data: [{
+ yAxis: 50
+ }, {
+ yAxis: 100
+ }, {
+ yAxis: 150
+ }, {
+ yAxis: 200
+ }, {
+ yAxis: 300
+ }]
+ }
+ }
+ });
+});
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-draggable.ts b/public/examples/ts/line-draggable.ts
new file mode 100644
index 0000000..335e73a
--- /dev/null
+++ b/public/examples/ts/line-draggable.ts
@@ -0,0 +1,142 @@
+/*
+title: Try Dragging these Points
+category: 'line, drag'
+titleCN: 可拖拽点
+difficulty: 10
+*/
+
+var symbolSize = 20;
+var data = [[40, -10], [-30, -5], [-76.5, 20], [-63.5, 40], [-22.1, 50]];
+
+option = {
+ title: {
+ text: 'Try Dragging these Points',
+ left: 'center'
+ },
+ tooltip: {
+ triggerOn: 'none',
+ formatter: function (params) {
+ return 'X: ' + params.data[0].toFixed(2) + '<br>Y: ' + params.data[1].toFixed(2);
+ }
+ },
+ grid: {
+ top: '8%',
+ bottom: '12%',
+ },
+ xAxis: {
+ min: -100,
+ max: 70,
+ type: 'value',
+ axisLine: {onZero: false}
+ },
+ yAxis: {
+ min: -30,
+ max: 60,
+ type: 'value',
+ axisLine: {onZero: false}
+ },
+ dataZoom: [
+ {
+ type: 'slider',
+ xAxisIndex: 0,
+ filterMode: 'none'
+ },
+ {
+ type: 'slider',
+ yAxisIndex: 0,
+ filterMode: 'none'
+ },
+ {
+ type: 'inside',
+ xAxisIndex: 0,
+ filterMode: 'none'
+ },
+ {
+ type: 'inside',
+ yAxisIndex: 0,
+ filterMode: 'none'
+ }
+ ],
+ series: [
+ {
+ id: 'a',
+ type: 'line',
+ smooth: true,
+ symbolSize: symbolSize,
+ data: data
+ }
+ ]
+};
+
+
+setTimeout(function () {
+ // Add shadow circles (which is not visible) to enable drag.
+ myChart.setOption({
+ graphic: data.map(function (item, dataIndex) {
+ return {
+ type: 'circle',
+ position: myChart.convertToPixel('grid', item),
+ shape: {
+ cx: 0,
+ cy: 0,
+ r: symbolSize / 2
+ },
+ invisible: true,
+ draggable: true,
+ ondrag: function (dx: number, dy: number) {
+ onPointDragging(dataIndex, [(this as any).x, (this as any).y]);
+ },
+ onmousemove: function () {
+ showTooltip(dataIndex);
+ },
+ onmouseout: function () {
+ hideTooltip(dataIndex);
+ },
+ z: 100
+ };
+ })
+ });
+}, 0);
+
+window.addEventListener('resize', updatePosition);
+
+myChart.on('dataZoom', updatePosition);
+
+function updatePosition() {
+ myChart.setOption({
+ graphic: data.map(function (item, dataIndex) {
+ return {
+ position: myChart.convertToPixel('grid', item)
+ };
+ })
+ });
+}
+
+function showTooltip(dataIndex: number) {
+ myChart.dispatchAction({
+ type: 'showTip',
+ seriesIndex: 0,
+ dataIndex: dataIndex
+ });
+}
+
+function hideTooltip(dataIndex: number) {
+ myChart.dispatchAction({
+ type: 'hideTip'
+ });
+}
+
+function onPointDragging(dataIndex: number, pos: number[]) {
+ data[dataIndex] = myChart.convertFromPixel('grid', pos);
+
+ // Update data
+ myChart.setOption({
+ series: [{
+ id: 'a',
+ data: data
+ }]
+ });
+}
+
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-easing.ts b/public/examples/ts/line-easing.ts
new file mode 100644
index 0000000..f0ceac5
--- /dev/null
+++ b/public/examples/ts/line-easing.ts
@@ -0,0 +1,235 @@
+/*
+title: Line Easing Visualizing
+category: line
+titleCN: 缓动函数可视化
+difficulty: 8
+*/
+
+const easingFuncs: Record<string, (k: number) => number> = {
+ linear: function (k) {
+ return k;
+ },
+ quadraticIn: function (k) {
+ return k * k;
+ },
+ quadraticOut: function (k) {
+ return k * (2 - k);
+ },
+ quadraticInOut: function (k) {
+ if ((k *= 2) < 1) { return 0.5 * k * k; }
+ return -0.5 * (--k * (k - 2) - 1);
+ },
+ cubicIn: function (k) {
+ return k * k * k;
+ },
+ cubicOut: function (k) {
+ return --k * k * k + 1;
+ },
+ cubicInOut: function (k) {
+ if ((k *= 2) < 1) { return 0.5 * k * k * k; }
+ return 0.5 * ((k -= 2) * k * k + 2);
+ },
+ quarticIn: function (k) {
+ return k * k * k * k;
+ },
+ quarticOut: function (k) {
+ return 1 - (--k * k * k * k);
+ },
+ quarticInOut: function (k) {
+ if ((k *= 2) < 1) { return 0.5 * k * k * k * k; }
+ return -0.5 * ((k -= 2) * k * k * k - 2);
+ },
+ quinticIn: function (k) {
+ return k * k * k * k * k;
+ },
+ quinticOut: function (k) {
+ return --k * k * k * k * k + 1;
+ },
+ quinticInOut: function (k) {
+ if ((k *= 2) < 1) { return 0.5 * k * k * k * k * k; }
+ return 0.5 * ((k -= 2) * k * k * k * k + 2);
+ },
+ sinusoidalIn: function (k) {
+ return 1 - Math.cos(k * Math.PI / 2);
+ },
+ sinusoidalOut: function (k) {
+ return Math.sin(k * Math.PI / 2);
+ },
+ sinusoidalInOut: function (k) {
+ return 0.5 * (1 - Math.cos(Math.PI * k));
+ },
+ exponentialIn: function (k) {
+ return k === 0 ? 0 : Math.pow(1024, k - 1);
+ },
+ exponentialOut: function (k) {
+ return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);
+ },
+ exponentialInOut: function (k) {
+ if (k === 0) {
+ return 0;
+ }
+ if (k === 1) {
+ return 1;
+ }
+ if ((k *= 2) < 1) {
+ return 0.5 * Math.pow(1024, k - 1);
+ }
+ return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);
+ },
+ circularIn: function (k) {
+ return 1 - Math.sqrt(1 - k * k);
+ },
+ circularOut: function (k) {
+ return Math.sqrt(1 - (--k * k));
+ },
+ circularInOut: function (k) {
+ if ((k *= 2) < 1) { return -0.5 * (Math.sqrt(1 - k * k) - 1); }
+ return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);
+ },
+ elasticIn: function (k) {
+ var s;
+ var a = 0.1;
+ var p = 0.4;
+ if (k === 0) { return 0; }
+ if (k === 1) { return 1; }
+ if (!a || a < 1) { a = 1; s = p / 4; }
+ else { s = p * Math.asin(1 / a) / (2 * Math.PI); }
+ return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
+ },
+ elasticOut: function (k) {
+ var s;
+ var a = 0.1;
+ var p = 0.4;
+ if (k === 0) { return 0; }
+ if (k === 1) { return 1; }
+ if (!a || a < 1) { a = 1; s = p / 4; }
+ else { s = p * Math.asin(1 / a) / (2 * Math.PI); }
+ return (a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1);
+ },
+ elasticInOut: function (k) {
+ var s;
+ var a = 0.1;
+ var p = 0.4;
+ if (k === 0) { return 0; }
+ if (k === 1) { return 1; }
+ if (!a || a < 1) { a = 1; s = p / 4; }
+ else { s = p * Math.asin(1 / a) / (2 * Math.PI); }
+ if ((k *= 2) < 1) {
+ return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
+ }
+ return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;
+
+ },
+
+ // 在某一动画开始沿指示的路径进行动画处理前稍稍收回该动画的移动
+ backIn: function (k) {
+ var s = 1.70158;
+ return k * k * ((s + 1) * k - s);
+ },
+ backOut: function (k) {
+ var s = 1.70158;
+ return --k * k * ((s + 1) * k + s) + 1;
+ },
+ backInOut: function (k) {
+ var s = 1.70158 * 1.525;
+ if ((k *= 2) < 1) { return 0.5 * (k * k * ((s + 1) * k - s)); }
+ return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);
+ },
+
+ // 创建弹跳效果
+ bounceIn: function (k) {
+ return 1 - easingFuncs.bounceOut(1 - k);
+ },
+ bounceOut: function (k) {
+ if (k < (1 / 2.75)) { return 7.5625 * k * k; }
+ else if (k < (2 / 2.75)) { return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75; }
+ else if (k < (2.5 / 2.75)) { return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375; }
+ else { return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375; }
+ },
+ bounceInOut: function (k) {
+ if (k < 0.5) { return easingFuncs.bounceIn(k * 2) * 0.5; }
+ return easingFuncs.bounceOut(k * 2 - 1) * 0.5 + 0.5;
+ }
+};
+
+const N_POINT = 30;
+
+const grids: echarts.GridComponentOption[] = [];
+const xAxes: echarts.XAXisComponentOption[] = [];
+const yAxes: echarts.YAXisComponentOption[] = [];
+const series: echarts.SeriesOption[] = [];
+const titles: echarts.TitleComponentOption[] = [];
+let count = 0;
+Object.keys(easingFuncs).forEach(function (easingName) {
+ var easingFunc = easingFuncs[easingName];
+ var data = [];
+ for (var i = 0; i <= N_POINT; i++) {
+ var x = i / N_POINT;
+ var y = easingFunc(x);
+ data.push([x, y]);
+ }
+ grids.push({
+ show: true,
+ borderWidth: 0,
+ shadowColor: 'rgba(0, 0, 0, 0.3)',
+ shadowBlur: 2
+ });
+ xAxes.push({
+ type: 'value',
+ show: false,
+ min: 0,
+ max: 1,
+ gridIndex: count
+ });
+ yAxes.push({
+ type: 'value',
+ show: false,
+ min: -0.4,
+ max: 1.4,
+ gridIndex: count
+ });
+ series.push({
+ name: easingName,
+ type: 'line',
+ xAxisIndex: count,
+ yAxisIndex: count,
+ data: data,
+ showSymbol: false,
+ animationEasing: easingName as any,
+ animationDuration: 1000
+ });
+ titles.push({
+ textAlign: 'center',
+ text: easingName,
+ textStyle: {
+ fontSize: 12,
+ fontWeight: 'normal'
+ }
+ });
+ count++;
+});
+
+var rowNumber = Math.ceil(Math.sqrt(count));
+grids.forEach(function (grid, idx) {
+ grid.left = ((idx % rowNumber) / rowNumber * 100 + 0.5) + '%';
+ grid.top = (Math.floor(idx / rowNumber) / rowNumber * 100 + 0.5) + '%';
+ grid.width = (1 / rowNumber * 100 - 1) + '%';
+ grid.height = (1 / rowNumber * 100 - 1) + '%';
+
+ titles[idx].left = parseFloat(grid.left) + parseFloat(grid.width) / 2 + '%';
+ titles[idx].top = parseFloat(grid.top) + '%';
+});
+
+option = {
+ title: titles.concat([{
+ text: 'Different Easing Functions',
+ top: 'bottom',
+ left: 'center'
+ }]),
+ grid: grids,
+ xAxis: xAxes,
+ yAxis: yAxes,
+ series: series
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-function.ts b/public/examples/ts/line-function.ts
new file mode 100644
index 0000000..9607d99
--- /dev/null
+++ b/public/examples/ts/line-function.ts
@@ -0,0 +1,75 @@
+/*
+title: Function Plot
+category: line
+titleCN: 函数绘图
+difficulty: 5
+*/
+
+function func(x: number) {
+ x /= 10;
+ return Math.sin(x) * Math.cos(x * 2 + 1) * Math.sin(x * 3 + 2) * 50;
+}
+
+function generateData() {
+ let data = [];
+ for (let i = -200; i <= 200; i += 0.1) {
+ data.push([i, func(i)]);
+ }
+ return data;
+}
+
+option = {
+ animation: false,
+ grid: {
+ top: 40,
+ left: 50,
+ right: 40,
+ bottom: 50
+ },
+ xAxis: {
+ name: 'x',
+ minorTick: {
+ show: true
+ },
+ minorSplitLine: {
+ show: true
+ }
+ },
+ yAxis: {
+ name: 'y',
+ min: -100,
+ max: 100,
+ minorTick: {
+ show: true
+ },
+ minorSplitLine: {
+ show: true
+ }
+ },
+ dataZoom: [{
+ show: true,
+ type: 'inside',
+ filterMode: 'none',
+ xAxisIndex: [0],
+ startValue: -20,
+ endValue: 20
+ }, {
+ show: true,
+ type: 'inside',
+ filterMode: 'none',
+ yAxisIndex: [0],
+ startValue: -20,
+ endValue: 20
+ }],
+ series: [
+ {
+ type: 'line',
+ showSymbol: false,
+ clip: true,
+ data: generateData()
+ }
+ ]
+};
+
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-gradient.ts b/public/examples/ts/line-gradient.ts
new file mode 100644
index 0000000..9512be0
--- /dev/null
+++ b/public/examples/ts/line-gradient.ts
@@ -0,0 +1,76 @@
+/*
+title: Line Gradient
+category: line
+titleCN: 折线图的渐变
+difficulty: 3
+*/
+
+
+const data = [["2000-06-05",116],["2000-06-06",129],["2000-06-07",135],["2000-06-08",86],["2000-06-09",73],["2000-06-10",85],["2000-06-11",73],["2000-06-12",68],["2000-06-13",92],["2000-06-14",130],["2000-06-15",245],["2000-06-16",139],["2000-06-17",115],["2000-06-18",111],["2000-06-19",309],["2000-06-20",206],["2000-06-21",137],["2000-06-22",128],["2000-06-23",85],["2000-06-24",94],["2000-06-25",71],["2000-06-26",106],["2000-06-27",84],["2000-06-28",93],["2000-06-29",85],["2000-06-30",73],["2000-07-01",83],["2000-07-02",125],["2000-07-03",107],["2000-07-04",82],["2000-07-05",44],["2000-07-06",72],["2000-07-07",106],["2000-07-08",107],["2000-07-09",66],["2000-07-10",91],["2000-07-11",92],["2000-07-12",113],["2000-07-13",107],["2000-07-14",131],["2000-07-15",111],["2000-07-16",64],["2000-07-17",69],["2000-07-18",88],["2000-07-19",77],["2000-07-20",83],["2000-07-21",111],["2000-07-22",57],["2000-07-23",55],["2000-07-24",60]];
+
+const dateList = data.map(function (item) {
+ return item[0];
+});
+const valueList = data.map(function (item) {
+ return item[1];
+});
+
+option = {
+
+ // Make gradient line here
+ visualMap: [{
+ show: false,
+ type: 'continuous',
+ seriesIndex: 0,
+ min: 0,
+ max: 400
+ }, {
+ show: false,
+ type: 'continuous',
+ seriesIndex: 1,
+ dimension: 0,
+ min: 0,
+ max: dateList.length - 1
+ }],
+
+
+ title: [{
+ left: 'center',
+ text: 'Gradient along the y axis'
+ }, {
+ top: '55%',
+ left: 'center',
+ text: 'Gradient along the x axis'
+ }],
+ tooltip: {
+ trigger: 'axis'
+ },
+ xAxis: [{
+ data: dateList
+ }, {
+ data: dateList,
+ gridIndex: 1
+ }],
+ yAxis: [{
+ }, {
+ gridIndex: 1
+ }],
+ grid: [{
+ bottom: '60%'
+ }, {
+ top: '60%'
+ }],
+ series: [{
+ type: 'line',
+ showSymbol: false,
+ data: valueList
+ }, {
+ type: 'line',
+ showSymbol: false,
+ data: valueList,
+ xAxisIndex: 1,
+ yAxisIndex: 1
+ }]
+};
+
+export []
\ No newline at end of file
diff --git a/public/examples/ts/line-graphic.ts b/public/examples/ts/line-graphic.ts
new file mode 100644
index 0000000..aa3a426
--- /dev/null
+++ b/public/examples/ts/line-graphic.ts
@@ -0,0 +1,122 @@
+/*
+title: Custom Graphic Component
+titleCN: 自定义图形组件
+category: line
+difficulty: 9
+*/
+
+option = {
+ legend: {
+ data:['Altitude (km) vs Temperature (°C)']
+ },
+ tooltip: {
+ trigger: 'axis',
+ formatter: "Temperature : <br/>{b}km : {c}°C"
+ },
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true
+ },
+ xAxis: {
+ type: 'value',
+ axisLabel: {
+ formatter: '{value} °C'
+ }
+ },
+ yAxis: {
+ type: 'category',
+ axisLine: {onZero: false},
+ axisLabel: {
+ formatter: '{value} km'
+ },
+ boundaryGap: true,
+ data: ['0', '10', '20', '30', '40', '50', '60', '70', '80']
+ },
+ graphic: [
+ {
+ type: 'group',
+ rotation: Math.PI / 4,
+ bounding: 'raw',
+ right: 110,
+ bottom: 110,
+ z: 100,
+ children: [
+ {
+ type: 'rect',
+ left: 'center',
+ top: 'center',
+ z: 100,
+ shape: {
+ width: 400,
+ height: 50
+ },
+ style: {
+ fill: 'rgba(0,0,0,0.3)'
+ }
+ },
+ {
+ type: 'text',
+ left: 'center',
+ top: 'center',
+ z: 100,
+ style: {
+ fill: '#fff',
+ text: 'ECHARTS LINE CHART',
+ font: 'bold 26px sans-serif'
+ }
+ }
+ ]
+ },
+ {
+ type: 'group',
+ left: '10%',
+ top: 'center',
+ children: [
+ {
+ type: 'rect',
+ z: 100,
+ left: 'center',
+ top: 'middle',
+ shape: {
+ width: 240,
+ height: 90
+ },
+ style: {
+ fill: '#fff',
+ stroke: '#555',
+ lineWidth: 1,
+ shadowBlur: 8,
+ shadowOffsetX: 3,
+ shadowOffsetY: 3,
+ shadowColor: 'rgba(0,0,0,0.2)'
+ }
+ },
+ {
+ type: 'text',
+ z: 100,
+ left: 'center',
+ top: 'middle',
+ style: {
+ fill: '#333',
+ width: 220,
+ overflow: 'break',
+ text: 'xAxis represents temperature in °C, yAxis represents altitude in km, An image watermark in the upper right, This text block can be placed in any place',
+ font: '14px Microsoft YaHei'
+ }
+ }
+ ]
+ }
+ ],
+ series: [
+ {
+ name: '高度(km)与气温(°C)变化关系',
+ type: 'line',
+ smooth: true,
+ data:[15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5]
+ }
+ ]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-in-cartesian-coordinate-system.ts b/public/examples/ts/line-in-cartesian-coordinate-system.ts
new file mode 100644
index 0000000..de2e7b8
--- /dev/null
+++ b/public/examples/ts/line-in-cartesian-coordinate-system.ts
@@ -0,0 +1,17 @@
+/*
+title: Line Chart in Cartesian Coordinate System
+category: line
+titleCN: 双数值轴折线图
+difficulty: 7
+*/
+
+option = {
+ xAxis: {},
+ yAxis: {},
+ series: [{
+ data: [[10, 40], [50, 100], [40, 20]],
+ type: 'line'
+ }]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-log.ts b/public/examples/ts/line-log.ts
new file mode 100644
index 0000000..9e02184
--- /dev/null
+++ b/public/examples/ts/line-log.ts
@@ -0,0 +1,59 @@
+/*
+title: Log Axis
+category: line
+titleCN: 对数轴示例
+difficulty: 7
+*/
+
+option = {
+ title: {
+ text: 'Log Axis',
+ left: 'center'
+ },
+ tooltip: {
+ trigger: 'item',
+ formatter: '{a} <br/>{b} : {c}'
+ },
+ legend: {
+ left: 'left'
+ },
+ xAxis: {
+ type: 'category',
+ name: 'x',
+ splitLine: {show: false},
+ data: ['一', '二', '三', '四', '五', '六', '七', '八', '九']
+ },
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true
+ },
+ yAxis: {
+ type: 'log',
+ name: 'y',
+ minorSplitLine: {
+ show: true
+ }
+ },
+ series: [
+ {
+ name: 'Log2',
+ type: 'line',
+ data: [1, 3, 9, 27, 81, 247, 741, 2223, 6669]
+ },
+ {
+ name: 'Log3',
+ type: 'line',
+ data: [1, 2, 4, 8, 16, 32, 64, 128, 256]
+ },
+ {
+ name: 'Log1/2',
+ type: 'line',
+ data: [1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256, 1/512]
+ }
+ ]
+};
+
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-marker.ts b/public/examples/ts/line-marker.ts
new file mode 100644
index 0000000..1a3ebe8
--- /dev/null
+++ b/public/examples/ts/line-marker.ts
@@ -0,0 +1,89 @@
+/*
+title: Temperature Change in the Coming Week
+category: line
+titleCN: 未来一周气温变化
+difficulty: 2
+*/
+
+option = {
+ title: {
+ text: 'Temperature Change in the Coming Week',
+ subtext: '纯属虚构'
+ },
+ tooltip: {
+ trigger: 'axis'
+ },
+ legend: {
+ },
+ toolbox: {
+ show: true,
+ feature: {
+ dataZoom: {
+ yAxisIndex: 'none'
+ },
+ dataView: {readOnly: false},
+ magicType: {type: ['line', 'bar']},
+ restore: {},
+ saveAsImage: {}
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+ },
+ yAxis: {
+ type: 'value',
+ axisLabel: {
+ formatter: '{value} °C'
+ }
+ },
+ series: [
+ {
+ name: 'Highest',
+ type: 'line',
+ data: [10, 11, 13, 11, 12, 12, 9],
+ markPoint: {
+ data: [
+ {type: 'max', name: 'Max'},
+ {type: 'min', name: 'Min'}
+ ]
+ },
+ markLine: {
+ data: [
+ {type: 'average', name: 'Avg'}
+ ]
+ }
+ },
+ {
+ name: 'Lowest',
+ type: 'line',
+ data: [1, -2, 2, 5, 3, 2, 0],
+ markPoint: {
+ data: [
+ {name: '周最低', value: -2, xAxis: 1, yAxis: -1.5}
+ ]
+ },
+ markLine: {
+ data: [
+ {type: 'average', name: 'Avg'},
+ [{
+ symbol: 'none',
+ x: '90%',
+ yAxis: 'max'
+ }, {
+ symbol: 'circle',
+ label: {
+ position: 'start',
+ formatter: 'Max'
+ },
+ type: 'max',
+ name: '最高点'
+ }]
+ ]
+ }
+ }
+ ]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-markline.ts b/public/examples/ts/line-markline.ts
new file mode 100644
index 0000000..9b1341c
--- /dev/null
+++ b/public/examples/ts/line-markline.ts
@@ -0,0 +1,81 @@
+/*
+title: Line with Marklines
+titleCN: 折线图的标记线
+category: line
+difficulty: 6
+*/
+
+const markLine: echarts.MarkLineComponentOption['data'] = [];
+const positions = [
+ 'start', 'middle', 'end',
+ 'insideStart', 'insideStartTop', 'insideStartBottom',
+ 'insideMiddle', 'insideMiddleTop', 'insideMiddleBottom',
+ 'insideEnd', 'insideEndTop', 'insideEndBottom'
+] as const;
+for (var i = 0; i < positions.length; ++i) {
+ markLine.push({
+ name: positions[i],
+ yAxis: 1.8 - 0.2 * Math.floor(i / 3),
+ label: {
+ formatter: '{b}',
+ position: positions[i]
+ }
+ });
+
+ if (positions[i] !== 'middle') {
+ const name = positions[i] === 'insideMiddle'
+ ? 'insideMiddle / middle'
+ : positions[i];
+
+ markLine.push([{
+ name: 'start: ' + positions[i],
+ coord: [0, 0.3],
+ label: {
+ formatter: name,
+ position: positions[i]
+ }
+ }, {
+ name: 'end: ' + positions[i],
+ coord: [3, 1]
+ }]);
+ }
+}
+
+option = {
+ animation: false,
+ textStyle: {
+ fontSize: 14
+ },
+ xAxis: {
+ data: ['A', 'B', 'C', 'D', 'E'],
+ boundaryGap: true,
+ splitArea: {
+ show: true
+ }
+ },
+ yAxis: {
+ max: 2
+ },
+ series: [{
+ name: 'line',
+ type: 'line',
+ stack: 'all',
+ symbolSize: 6,
+ data: [0.3, 1.4, 1.2, 1, 0.6],
+ markLine: {
+ data: markLine,
+ label: {
+ distance: [20, 8]
+ }
+ }
+ }],
+ grid: {
+ top: 30,
+ left: 60,
+ right: 60,
+ bottom: 40
+ }
+};
+
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-pen.ts b/public/examples/ts/line-pen.ts
new file mode 100644
index 0000000..52f808d
--- /dev/null
+++ b/public/examples/ts/line-pen.ts
@@ -0,0 +1,75 @@
+/*
+title: Click to Add Points
+category: line
+titleCN: 点击添加折线图拐点
+difficulty: 9
+*/
+
+const symbolSize = 20;
+const data = [[15, 0], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];
+
+option = {
+ title: {
+ text: 'Click to Add Points'
+ },
+ tooltip: {
+ formatter: function (params) {
+ var data = params.data || [0, 0];
+ return data[0].toFixed(2) + ', ' + data[1].toFixed(2);
+ }
+ },
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true
+ },
+ xAxis: {
+ min: -60,
+ max: 20,
+ type: 'value',
+ axisLine: {onZero: false}
+ },
+ yAxis: {
+ min: 0,
+ max: 40,
+ type: 'value',
+ axisLine: {onZero: false}
+ },
+ series: [
+ {
+ id: 'a',
+ type: 'line',
+ smooth: true,
+ symbolSize: symbolSize,
+ data: data
+ }
+ ]
+};
+
+var zr = myChart.getZr();
+
+
+zr.on('click', function (params) {
+ var pointInPixel = [params.offsetX, params.offsetY];
+ var pointInGrid = myChart.convertFromPixel('grid', pointInPixel);
+
+ if (myChart.containPixel('grid', pointInPixel)) {
+ data.push(pointInGrid);
+
+ myChart.setOption({
+ series: [{
+ id: 'a',
+ data: data
+ }]
+ });
+ }
+});
+
+zr.on('mousemove', function (params) {
+ var pointInPixel = [params.offsetX, params.offsetY];
+ zr.setCursorStyle(myChart.containPixel('grid', pointInPixel) ? 'copy' : 'default');
+});
+
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-polar.ts b/public/examples/ts/line-polar.ts
new file mode 100644
index 0000000..a8f1eb7
--- /dev/null
+++ b/public/examples/ts/line-polar.ts
@@ -0,0 +1,44 @@
+/*
+title: Two Value-Axes in Polar
+category: line
+titleCN: 极坐标双数值轴
+difficulty: 10
+*/
+
+const data: number[][] = [];
+
+for (let i = 0; i <= 100; i++) {
+ let theta = i / 100 * 360;
+ let r = 5 * (1 + Math.sin(theta / 180 * Math.PI));
+ data.push([r, theta]);
+}
+
+option = {
+ title: {
+ text: 'Two Value-Axes in Polar'
+ },
+ legend: {
+ data: ['line']
+ },
+ polar: {},
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross'
+ }
+ },
+ angleAxis: {
+ type: 'value',
+ startAngle: 0
+ },
+ radiusAxis: {
+ },
+ series: [{
+ coordinateSystem: 'polar',
+ name: 'line',
+ type: 'line',
+ data: data
+ }]
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-polar2.ts b/public/examples/ts/line-polar2.ts
new file mode 100644
index 0000000..9725edc
--- /dev/null
+++ b/public/examples/ts/line-polar2.ts
@@ -0,0 +1,49 @@
+/*
+title: Two Value-Axes in Polar
+category: line
+titleCN: 极坐标双数值轴
+difficulty: 10
+*/
+
+const data: number[][] = [];
+
+for (let i = 0; i <= 360; i++) {
+ let t = i / 180 * Math.PI;
+ let r = Math.sin(2 * t) * Math.cos(2 * t);
+ data.push([r, i]);
+}
+
+option = {
+ title: {
+ text: 'Two Value-Axes in Polar'
+ },
+ legend: {
+ data: ['line']
+ },
+ polar: {
+ center: ['50%', '54%']
+ },
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross'
+ }
+ },
+ angleAxis: {
+ type: 'value',
+ startAngle: 0
+ },
+ radiusAxis: {
+ min: 0
+ },
+ series: [{
+ coordinateSystem: 'polar',
+ name: 'line',
+ type: 'line',
+ showSymbol: false,
+ data: data
+ }],
+ animationDuration: 2000
+};
+
+export {}
\ No newline at end of file
diff --git a/public/examples/ts/line-race.ts b/public/examples/ts/line-race.ts
new file mode 100644
index 0000000..330ed98
--- /dev/null
+++ b/public/examples/ts/line-race.ts
@@ -0,0 +1,90 @@
+/*
+title: Line Race
+category: line
+titleCN: 动态排序折线图
+difficulty: 5
+videoStart: 3000
+videoEnd: 8000
+*/
+
+$.get(ROOT_PATH + '/data/asset/data/life-expectancy-table.json', function (_rawData) {
+ run(_rawData);
+});
+
+function run(_rawData: any) {
+
+ // var countries = ['Australia', 'Canada', 'China', 'Cuba', 'Finland', 'France', 'Germany', 'Iceland', 'India', 'Japan', 'North Korea', 'South Korea', 'New Zealand', 'Norway', 'Poland', 'Russia', 'Turkey', 'United Kingdom', 'United States'];
+ const countries = ['Finland', 'France', 'Germany', 'Iceland', 'Norway', 'Poland', 'Russia', 'United Kingdom'];
+ const datasetWithFilters: echarts.DatasetComponentOption[] = [];
+ const seriesList: echarts.SeriesOption[] = [];
+ echarts.util.each(countries, function (country) {
+ var datasetId = 'dataset_' + country;
+ datasetWithFilters.push({
+ id: datasetId,
+ fromDatasetId: 'dataset_raw',
+ transform: {
+ type: 'filter',
+ config: {
+ and: [
+ { dimension: 'Year', gte: 1950 },
+ { dimension: 'Country', '=': country }
+ ]
+ }
+ }
+ });
+ seriesList.push({
+ type: 'line',
+ datasetId: datasetId,
+ showSymbol: false,
+ name: country,
+ endLabel: {
+ show: true,
+ formatter: function (params) {
+ return params.value[3] + ': ' + params.value[0];
+ }
+ },
+ labelLayout: {
+ moveOverlap: 'shiftY'
+ },
+ emphasis: {
+ focus: 'series'
+ },
+ encode: {
+ x: 'Year',
+ y: 'Income',
+ label: ['Country', 'Income'],
+ itemName: 'Year',
+ tooltip: ['Income'],
+ }
+ });
+ });
+
+ option = {
+ animationDuration: 10000,
+ dataset: [{
+ id: 'dataset_raw',
+ source: _rawData
+ }, ...datasetWithFilters],
+ title: {
+ text: 'Income of Germany and France since 1950'
+ },
+ tooltip: {
+ order: 'valueDesc',
+ trigger: 'axis'
+ },
+ xAxis: {
+ type: 'category',
+ nameLocation: 'middle'
+ },
+ yAxis: {
+ name: 'Income'
+ },
+ grid: {
+ right: 140
+ },
+ series: seriesList
+ };
+
+ myChart.setOption(option);
+
+}