diff --git a/pom.xml b/pom.xml index f99239f5..38949c1d 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ com.github.abel533 ECharts - 3.0.0.6 + 3.0.0.7 jar ECharts @@ -85,14 +85,6 @@ - - - src/test/resources - - - src/test/java - - org.apache.maven.plugins @@ -118,63 +110,15 @@ 1.6 - - - org.apache.maven.plugins - maven-source-plugin - 2.2.1 - - - package - - jar-no-fork - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.9.1 - - - package - - jar - - - -Xdoclint:none - - - - - - - org.apache.maven.plugins - maven-gpg-plugin - - - sign-artifacts - verify - - sign - - - - - - - oss - https://oss.sonatype.org/content/repositories/snapshots/ - - - oss - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - + + + cbi-repo + cbi-repo + http://101.200.45.222:8000/repository/cbi-repo/ + + \ No newline at end of file diff --git a/src/main/java/com/github/abel533/echarts/code/SeriesType.java b/src/main/java/com/github/abel533/echarts/code/SeriesType.java index ad46c79c..45833c5d 100644 --- a/src/main/java/com/github/abel533/echarts/code/SeriesType.java +++ b/src/main/java/com/github/abel533/echarts/code/SeriesType.java @@ -54,4 +54,5 @@ public enum SeriesType { boxplot,//中文可以称为『箱形图』、『盒须图』、『盒式图』、『盒状图』、『箱线图』++++++++++++++++++++++++ parallel,//平行坐标系++++++++++++++++++++++ sankey,//桑基图,是一种特殊的流图, 它主要用来表示原材料、能量等如何从初始形式经过中间过程的加工、转化到达最终形式++++++++++++++ + sunburst,//旭日图 } diff --git a/src/main/java/com/github/abel533/echarts/series/SeriesFactory.java b/src/main/java/com/github/abel533/echarts/series/SeriesFactory.java index 6fb70db4..49086231 100644 --- a/src/main/java/com/github/abel533/echarts/series/SeriesFactory.java +++ b/src/main/java/com/github/abel533/echarts/series/SeriesFactory.java @@ -143,6 +143,9 @@ public static Sankey newSankey() { public static Sankey newSankey(String name) { return new Sankey(name); } + public static Sunburst newSunburst() { + return new Sunburst(); + } } diff --git a/src/main/java/com/github/abel533/echarts/series/Sunburst.java b/src/main/java/com/github/abel533/echarts/series/Sunburst.java new file mode 100644 index 00000000..73414517 --- /dev/null +++ b/src/main/java/com/github/abel533/echarts/series/Sunburst.java @@ -0,0 +1,128 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2014-2015 abel533@gmail.com + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.github.abel533.echarts.series; + +import com.github.abel533.echarts.code.RoseType; +import com.github.abel533.echarts.code.SelectedMode; +import com.github.abel533.echarts.code.SeriesType; +import lombok.Getter; +import lombok.Setter; + +/** + * 旭日图 + * + * @author miguanxiong + */ +@Getter +@Setter +public class Sunburst extends Series { + /** + * 圆心坐标,支持绝对值(px)和百分比,百分比计算min(width, height) * 50% + */ + private Object[] center; + /** + * 半径,支持绝对值(px)和百分比,百分比计算比,min(width, height) / 2 * 75%, + * 传数组实现环形图,[内半径,外半径] + */ + private Object radius; + + /** + * 构造函数 + */ + public Sunburst() { + this.type(SeriesType.sunburst); + } + + /** + * 构造函数,参数:name + * + * @param name + */ + public Sunburst(String name) { + super(name); + this.type(SeriesType.pie); + } + + /** + * 获取center值 + */ + public Object[] center() { + return this.center; + } + + /** + * 设置center值 + * + * @param center + */ + public Sunburst center(Object[] center) { + this.center = center; + return this; + } + + /** + * 获取radius值 + */ + public Object radius() { + return this.radius; + } + + /** + * 圆心坐标,支持绝对值(px)和百分比,百分比计算min(width, height) * 50% + * + * @param width + * @param height + * @return + */ + public Sunburst center(Object width, Object height) { + this.center = new Object[]{width, height}; + return this; + } + + /** + * 半径,支持绝对值(px)和百分比,百分比计算比,min(width, height) / 2 * 75%, + * 传数组实现环形图,[内半径,外半径] + * + * @param radius + * @return + */ + public Sunburst radius(Object radius) { + this.radius = radius; + return this; + } + + /** + * 半径,支持绝对值(px)和百分比,百分比计算比,min(width, height) / 2 * 75%, + * 传数组实现环形图,[内半径,外半径] + * + * @param width 内半径 + * @param height 外半径 + * @return + */ + public Sunburst radius(Object width, Object height) { + radius = new Object[]{width, height}; + return this; + } +} diff --git a/src/test/java/com/github/abel533/echarts/FromJsonTest.java b/src/test/java/com/github/abel533/echarts/FromJsonTest.java deleted file mode 100644 index 4f9edd14..00000000 --- a/src/test/java/com/github/abel533/echarts/FromJsonTest.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts; - -import com.github.abel533.echarts.json.GsonUtil; -import com.github.abel533.echarts.series.Bar; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class FromJsonTest { - - @Test - public void testFromJson() { - String json = "{\n" + - " tooltip : {\n" + - " trigger: 'axis',\n" + - " axisPointer : { // 坐标轴指示器,坐标轴触发有效\n" + - " type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'\n" + - " }\n" + - " },\n" + - " legend: {\n" + - " data:['利润', '支出', '收入']\n" + - " },\n" + - " toolbox: {\n" + - " show : true,\n" + - " feature : {\n" + - " mark : {show: true},\n" + - " dataView : {show: true, readOnly: false},\n" + - " magicType : {show: true, type: ['line', 'bar']},\n" + - " restore : {show: true},\n" + - " saveAsImage : {show: true}\n" + - " }\n" + - " },\n" + - " calculable : true,\n" + - " xAxis : [\n" + - " {\n" + - " type : 'value'\n" + - " }\n" + - " ],\n" + - " yAxis : [\n" + - " {\n" + - " type : 'category',\n" + - " axisTick : {show: false},\n" + - " data : ['周一','周二','周三','周四','周五','周六','周日']\n" + - " }\n" + - " ],\n" + - " series : [\n" + - " {\n" + - " name:'利润',\n" + - " type:'bar',\n" + - " itemStyle : { normal: {label : {show: true, position: 'inside'}}},\n" + - " data:[200, 170, 240, 244, 200, 220, 210]\n" + - " },\n" + - " {\n" + - " name:'收入',\n" + - " type:'bar',\n" + - " stack: '总量',\n" + - " barWidth : 5,\n" + - " itemStyle: {normal: {\n" + - " label : {show: true}\n" + - " }},\n" + - " data:[320, 302, 341, 374, 390, 450, 420]\n" + - " },\n" + - " {\n" + - " name:'支出',\n" + - " type:'bar',\n" + - " stack: '总量',\n" + - " itemStyle: {normal: {\n" + - " label : {show: true, position: 'left'}\n" + - " }},\n" + - " data:[-120, -132, -101, -134, -190, -230, -210]\n" + - " }\n" + - " ]\n" + - "}"; - - EnhancedOption option = GsonUtil.fromJSON(json, EnhancedOption.class); - //增加一些内容 - option.legend("测试"); - Bar bar = new Bar(); - bar.name("测试").stack("总量").data(142, 123, 65, 441, 341, 467, 90).itemStyle().normal().label().show(true); - option.series(bar); - option.view(); - } - - @Test - public void testAxisFromJson() { - String json = "{\"xAxis\": [{\"splitNumber\":10, \"type\": \"time\"}]}"; - EnhancedOption option = GsonUtil.fromJSON(json, EnhancedOption.class); - System.out.println(option); - } -} diff --git a/src/test/java/com/github/abel533/echarts/Generator.java b/src/test/java/com/github/abel533/echarts/Generator.java deleted file mode 100644 index 4ac23fc5..00000000 --- a/src/test/java/com/github/abel533/echarts/Generator.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.github.abel533.echarts; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author liuzh_3nofxnp - * @since 2016-02-28 09:58 - */ -public class Generator { - public static void main(String[] args) { - String _lines = "private TextStyle textStyle;"; - String _type = "DataZoom"; -// simple(_type, _lines); - simpleNew(_type, _lines); - } - - /** - * 最简单的形式 - * - * @param _type - * @param _lines - */ - public static void simple(String _type, String _lines) { - String _this = "\treturn this;"; - if (_type.equals("T")) { - _this = "\treturn (T) this;"; - } - String[] lines = lines(_lines); - for (String line : lines) { - String[] ls = line.split(" "); - System.out.println("public " + ls[1] + " " + ls[2] + "(){"); - System.out.println("\treturn this." + ls[2] + ";"); - System.out.println("}\n"); - System.out.println("public " + _type + " " + ls[2] + "(" + ls[1] + " " + ls[2] + "){"); - System.out.println("\tthis." + ls[2] + " = " + ls[2] + ";"); - System.out.println(_this); - System.out.println("}\n"); - } - } - - /** - * 最简单的形式 - * - * @param _type - * @param _lines - */ - public static void simpleNew(String _type, String _lines) { - String _this = "\treturn this;"; - if (_type.equals("T")) { - _this = "\treturn (T) this;"; - } - String[] lines = lines(_lines); - for (String line : lines) { - String[] ls = line.split(" "); - System.out.println("public " + ls[1] + " " + ls[2] + "(){"); - System.out.println("\tif(this." + ls[2] + " == null){"); - System.out.println("\t\tthis." + ls[2] + "= new " + ls[1] + "();"); - System.out.println("\t}"); - System.out.println("\treturn this." + ls[2] + ";"); - System.out.println("}\n"); - System.out.println("public " + _type + " " + ls[2] + "(" + ls[1] + " " + ls[2] + "){"); - System.out.println("\tthis." + ls[2] + " = " + ls[2] + ";"); - System.out.println(_this); - System.out.println("}\n"); - } - } - - public static String[] lines(String _lines) { - List lineList = new ArrayList(); - String[] lines = _lines.split("\n"); - for (String line : lines) { - line = line.trim(); - if (line.length() == 0) { - continue; - } - if (line.endsWith(";")) { - line = line.substring(0, line.length() - 1); - } - lineList.add(line); - } - return lineList.toArray(new String[]{}); - } -} diff --git a/src/test/java/com/github/abel533/echarts/OptionTest.java b/src/test/java/com/github/abel533/echarts/OptionTest.java deleted file mode 100644 index bd25734d..00000000 --- a/src/test/java/com/github/abel533/echarts/OptionTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.LegendType; -import com.github.abel533.echarts.code.MarkType; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.data.LineData; -import com.github.abel533.echarts.series.Line; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * Description: OptionTest - * - * @author liuzh - * @since liuzh(2014-08-26 14:08) - */ -public class OptionTest { - - @Test - public void basicOption() { - EnhancedOption option = new EnhancedOption(); - option.legend().padding(5).itemGap(10).type(LegendType.scroll).data("ios7", "android4"); - option.toolbox().show(true).feature(Tool.dataView, Tool.saveAsImage, Tool.dataZoom, Tool.magicType); - option.tooltip().trigger(Trigger.item); - option.xAxis(new CategoryAxis().data("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")); - option.yAxis(new ValueAxis().boundaryGap(new Double[]{0.1, 0.1}).splitNumber(10)); - - Line line = new Line(); - line.name("ios7").data(112, 23, 45, 56, 233, 343, 454, 89, 343, 123, 45, 123).markLine().data(new LineData().type(MarkType.average).name("ios7")); - option.series(line); - - line = new Line(); - line.name("android4").data(45, 123, 145, 526, 233, 343, 44, 829, 33, 123, 45, 13).itemStyle().normal().label().show(true); - option.series(line); - - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/TestConfig.java b/src/test/java/com/github/abel533/echarts/TestConfig.java deleted file mode 100644 index 0932d36b..00000000 --- a/src/test/java/com/github/abel533/echarts/TestConfig.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts; - -/** - * @author liuzh - */ -public interface TestConfig { - /** - * 测试文件生成的目录 - */ - String EXPORT_PATH = "/tmp/echarts/"; - - /** - * 通过view控制所有测试是否打开浏览器 - */ - Boolean VIEW = true; -} diff --git a/src/test/java/com/github/abel533/echarts/samples/bar/BarTest1.java b/src/test/java/com/github/abel533/echarts/samples/bar/BarTest1.java deleted file mode 100644 index 5eed49e8..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/bar/BarTest1.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.bar; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.Magic; -import com.github.abel533.echarts.code.MarkType; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.data.PointData; -import com.github.abel533.echarts.feature.MagicType; -import com.github.abel533.echarts.series.Bar; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -import java.util.Arrays; -import java.util.List; - -/** - * @author liuzh - */ -public class BarTest1 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/bar1.html - EnhancedOption option = new EnhancedOption(); - option.title().text("某地区蒸发量和降水量").subtext("纯属虚构"); - option.tooltip().trigger(Trigger.axis); - option.legend("蒸发量", "降水量"); - option.toolbox().show(true).feature(Tool.mark, Tool.dataView, new MagicType(Magic.line, Magic.bar).show(true), Tool.restore, Tool.saveAsImage); - option.calculable(true); - option.xAxis(new CategoryAxis().data("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月")); - option.yAxis(new ValueAxis()); - - Bar bar = new Bar("蒸发量"); - bar.data(2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3); - bar.markPoint().data(new PointData().type(MarkType.max).name("最大值"), new PointData().type(MarkType.min).name("最小值")); - bar.markLine().data(new PointData().type(MarkType.average).name("平均值")); - - Bar bar2 = new Bar("降水量"); - List list = Arrays.asList(2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3); - bar2.data(list); - bar2.markPoint().data(new PointData("年最高", 182.2).xAxis(7).yAxis(183).symbolSize(18), new PointData("年最低", 2.3).xAxis(11).yAxis(3)); - bar2.markLine().data(new PointData().type(MarkType.average).name("平均值")); - - option.series(bar, bar2); - option.exportToHtml("bar1.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/bar/BarTest12.java b/src/test/java/com/github/abel533/echarts/samples/bar/BarTest12.java deleted file mode 100644 index 42a4d2a5..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/bar/BarTest12.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.bar; - -import com.github.abel533.echarts.axis.*; -import com.github.abel533.echarts.code.Magic; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.feature.MagicType; -import com.github.abel533.echarts.series.Bar; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class BarTest12 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/bar12.html - EnhancedOption option = new EnhancedOption(); - option.title("ECharts2 vs ECharts1", "Chrome下测试数据"); - option.tooltip(Trigger.axis); - option.legend( - "ECharts1 - 2k数据", "ECharts1 - 2w数据", "ECharts1 - 20w数据", "", - "ECharts2 - 2k数据", "ECharts2 - 2w数据", "ECharts2 - 20w数据"); - option.toolbox().show(true) - .feature( - Tool.mark, Tool.dataView, - new MagicType(Magic.line, Magic.bar), - Tool.restore, Tool.saveAsImage); - option.calculable(true); - option.grid().y(70).y2(30).x2(20); - option.xAxis( - new CategoryAxis().data("Line", "Bar", "Scatter", "K", "Map"), - new CategoryAxis() - .axisLine(new AxisLine().show(false)) - .axisTick(new AxisTick().show(false)) - .axisLabel(new AxisLabel().show(false)) - .splitArea(new SplitArea().show(false)) - .axisLine(new AxisLine().show(false)) - .data("Line", "Bar", "Scatter", "K", "Map") - ); - option.yAxis(new ValueAxis().axisLabel(new AxisLabel().formatter("{value} ms"))); - - Bar b1 = new Bar("ECharts2 - 2k数据"); - b1.itemStyle().normal().color("rgba(193,35,43,1)").label().show(true); - b1.data(40, 155, 95, 75, 0); - - Bar b2 = new Bar("ECharts2 - 2w数据"); - b2.itemStyle().normal().color("rgba(181,195,52,1)").label().show(true).textStyle().color("#27727B"); - b2.data(100, 200, 105, 100, 156); - - Bar b3 = new Bar("ECharts2 - 20w数据"); - b3.itemStyle().normal().color("rgba(252,206,16,1)").label().show(true).textStyle().color("#E87C25"); - b3.data(906, 911, 908, 778, 0); - - Bar b4 = new Bar("ECharts1 - 2k数据"); - b4.itemStyle().normal().color("rgba(193,35,43,0.5)").label().show(true).formatter("function(a,b,c){return c>0 ? (c +'\n'):'';}"); - b4.data(96, 224, 164, 124, 0).xAxisIndex(1); - - Bar b5 = new Bar("ECharts1 - 2w数据"); - b5.itemStyle().normal().color("rgba(181,195,52,0.5)").label().show(true); - b5.data(491, 2035, 389, 955, 347).xAxisIndex(1); - - Bar b6 = new Bar("ECharts1 - 20w数据"); - b6.itemStyle().normal().color("rgba(252,206,16,0.5)").label().show(true).formatter("function(a,b,c){return c>0 ? (c +'+'):'';}"); - b6.data(3000, 3000, 2817, 3000, 0, 1242).xAxisIndex(1); - - option.series(b1, b2, b3, b4, b5, b6); - option.exportToHtml("bar12.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/bar/BarTest14.java b/src/test/java/com/github/abel533/echarts/samples/bar/BarTest14.java deleted file mode 100644 index a41b4a74..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/bar/BarTest14.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.bar; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.*; -import com.github.abel533.echarts.data.PointData; -import com.github.abel533.echarts.feature.MagicType; -import com.github.abel533.echarts.series.Bar; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -import java.util.Arrays; -import java.util.List; - -/** - * @author liuzh - */ -public class BarTest14 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/echarts2/doc/example/bar14.html - EnhancedOption option = new EnhancedOption(); - option.title().text("ECharts例子个数统计").subtext("Rainbow bar example") - .link("http://echarts.baidu.com/doc/example.html").x(X.center); - option.tooltip().trigger(Trigger.item); - option.calculable(true); - option.grid().borderWidth(0).y(80).y2(60); - option.toolbox().show(true).feature(Tool.mark, Tool.dataView, new MagicType(Magic.line, Magic.bar).show(true), Tool.restore, Tool.saveAsImage); - option.xAxis(new CategoryAxis().data("Line", "Bar", "Scatter", "K", "Pie", "Radar", "Chord", "Force", "Map", "Gauge", "Funnel")); - option.yAxis(new ValueAxis().show(false)); - - Bar bar = new Bar("ECharts例子个数统计"); - bar.itemStyle().normal().color("function(params) {" + - " var colorList = [" + - " '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B'," + - " '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD'," + - " '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'" + - " ];" + - " return colorList[params.dataIndex]" + - " }") - .label().show(true).position(Position.top).formatter("{b}\n{c}"); - bar.data(12,21,10,4,12,5,6,5,25,23,7); - - option.series(bar); - option.exportToHtml("bar14.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/bar/BarTest4.java b/src/test/java/com/github/abel533/echarts/samples/bar/BarTest4.java deleted file mode 100644 index 5ba3f48a..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/bar/BarTest4.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.bar; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.Magic; -import com.github.abel533.echarts.code.PointerType; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.feature.MagicType; -import com.github.abel533.echarts.series.Bar; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class BarTest4 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/bar4.html - EnhancedOption option = new EnhancedOption(); - option.tooltip().trigger(Trigger.axis).axisPointer().type(PointerType.shadow); - option.legend("直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"); - option.toolbox().show(true).feature(Tool.mark, Tool.dataView, new MagicType(Magic.line, Magic.bar).show(true), Tool.restore, Tool.saveAsImage); - option.calculable(true); - option.yAxis(new CategoryAxis().data("周一", "周二", "周三", "周四", "周五", "周六", "周日")); - option.xAxis(new ValueAxis()); - - Bar bar = new Bar("直接访问"); - bar.stack("总量"); - bar.itemStyle().normal().label().show(true).position("insideRight"); - bar.data(320, 302, 301, 334, 390, 330, 320); - - Bar bar2 = new Bar("邮件营销"); - bar2.stack("总量"); - bar2.itemStyle().normal().label().show(true).position("insideRight"); - bar2.data(320, 302, 301, 334, 390, 330, 320); - - Bar bar3 = new Bar("联盟广告"); - bar3.stack("总量"); - bar3.itemStyle().normal().label().show(true).position("insideRight"); - bar3.data(120, 132, 101, 134, 90, 230, 210); - - Bar bar4 = new Bar("视频广告"); - bar4.stack("总量"); - bar4.itemStyle().normal().label().show(true).position("insideRight"); - bar4.data(150, 212, 201, 154, 190, 330, 410); - - Bar bar5 = new Bar("搜索引擎"); - bar5.stack("总量"); - bar5.itemStyle().normal().label().show(true).position("insideRight"); - bar5.data(820, 832, 901, 934, 1290, 1330, 1320); - - option.series(bar, bar2, bar3, bar4, bar5); - option.exportToHtml("bar4.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/funnel/FunnelTest.java b/src/test/java/com/github/abel533/echarts/samples/funnel/FunnelTest.java deleted file mode 100644 index 835c9f32..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/funnel/FunnelTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.funnel; - -import com.github.abel533.echarts.Label; -import com.github.abel533.echarts.LabelLine; -import com.github.abel533.echarts.code.*; -import com.github.abel533.echarts.data.Data; -import com.github.abel533.echarts.series.Funnel; -import com.github.abel533.echarts.style.LineStyle; -import com.github.abel533.echarts.style.TextStyle; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class FunnelTest { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/funnel.html - EnhancedOption option = new EnhancedOption(); - option.title().text("漏斗图").subtext("纯属虚构"); - option.tooltip().trigger(Trigger.item).formatter("{a}
{b} : {c}%"); - option.toolbox().show(true).feature(Tool.mark, Tool.dataView, Tool.restore, Tool.saveAsImage); - option.legend("展现", "点击", "访问", "咨询", "订单"); - option.calculable(true); - - Funnel funnel = new Funnel("漏斗图"); - funnel.x("10%").y(60).width("80%"). - min(0).max(100). - minSize("0%").maxSize("100%"). - sort(Sort.descending). - gap(10); - funnel.itemStyle().normal().borderColor("#fff").borderWidth(1). - label(new Label().show(true).position(Position.inside)). - labelLine(new LabelLine().show(false).length(10).lineStyle(new LineStyle().width(1).type(LineType.solid))); - funnel.itemStyle().emphasis().borderColor("red").borderWidth(5). - label(new Label().show(true).formatter("{b}:{c}%").textStyle(new TextStyle().fontSize(20))). - labelLine(new LabelLine().show(true)); - - funnel.data(new Data().value(60).name("访问"), - new Data().value(40).name("咨询"), - new Data().value(20).name("订单"), - new Data().value(80).name("点击"), - new Data().value(100).name("展现") - ); - - option.series(funnel); - option.exportToHtml("funnel.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/funnel/FunnelTest2.java b/src/test/java/com/github/abel533/echarts/samples/funnel/FunnelTest2.java deleted file mode 100644 index 38485e6f..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/funnel/FunnelTest2.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.funnel; - -import com.github.abel533.echarts.Label; -import com.github.abel533.echarts.LabelLine; -import com.github.abel533.echarts.code.Position; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.data.Data; -import com.github.abel533.echarts.series.Funnel; -import com.github.abel533.echarts.style.TextStyle; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class FunnelTest2 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/funnel2.html - EnhancedOption option = new EnhancedOption(); - option.color("rgba(255, 69, 0, 0.5)", - "rgba(255, 150, 0, 0.5)", - "rgba(255, 200, 0, 0.5)", - "rgba(155, 200, 50, 0.5)", - "rgba(55, 200, 100, 0.5)"); - option.title().text("漏斗图").subtext("纯属虚构"); - option.tooltip().trigger(Trigger.item).formatter("{a}
{b} : {c}%"); - option.toolbox().show(true).feature(Tool.mark, Tool.dataView, Tool.restore, Tool.saveAsImage); - option.legend("展现", "点击", "访问", "咨询", "订单"); - option.calculable(true); - - Funnel funnel = new Funnel("预期"); - funnel.x("10%").y(60).width("80%"); - funnel.itemStyle().normal().label(new Label().formatter("{b}预期")). - labelLine(new LabelLine().show(false)); - funnel.itemStyle().emphasis().label(new Label().formatter("{b}预期 : {c}%").position(Position.inside)). - labelLine(new LabelLine().show(true)); - - funnel.data(new Data().value(60).name("访问"), - new Data().value(40).name("咨询"), - new Data().value(20).name("订单"), - new Data().value(80).name("点击"), - new Data().value(100).name("展现") - ); - - Funnel funnel2 = new Funnel("实际"); - funnel2.x("10%").y(60).width("80%").maxSize("80%"); - funnel2.itemStyle().normal().label(new Label().formatter("{c}%").position(Position.inside).textStyle(new TextStyle().color("#fff"))). - borderColor("#fff").borderWidth(2); - funnel2.itemStyle().emphasis().label(new Label().formatter("{b}实际 : {c}%").position(Position.inside)). - labelLine(new LabelLine().show(true)); - - funnel2.data(new Data().value(30).name("访问"), - new Data().value(10).name("咨询"), - new Data().value(5).name("订单"), - new Data().value(50).name("点击"), - new Data().value(80).name("展现") - ); - - option.series(funnel,funnel2); - option.exportToHtml("funnel2.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/gauge/GaugeTest1.java b/src/test/java/com/github/abel533/echarts/samples/gauge/GaugeTest1.java deleted file mode 100644 index 8a9156d0..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/gauge/GaugeTest1.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.gauge; - -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.data.Data; -import com.github.abel533.echarts.series.Gauge; -import com.github.abel533.echarts.series.gauge.Detail; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class GaugeTest1 { - - @Test - public void test() { - // 地址: http://echarts.baidu.com/doc/example/gauge1.html - EnhancedOption option = new EnhancedOption(); - option.tooltip().formatter("{a}
{b} : {c}%"); - option.toolbox().show(true).feature(Tool.mark, Tool.restore, Tool.saveAsImage); - option.series(new Gauge("业务指标").detail(new Detail().formatter("{value}%")).data(new Data("完成率", 75))); - option.exportToHtml("guage1.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/heatmap/HeatmapTest.java b/src/test/java/com/github/abel533/echarts/samples/heatmap/HeatmapTest.java deleted file mode 100644 index 329ed107..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/heatmap/HeatmapTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.heatmap; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.code.Orient; -import com.github.abel533.echarts.code.Position; -import com.github.abel533.echarts.code.X; -import com.github.abel533.echarts.series.Heatmap; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class HeatmapTest { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/heatmap.html - EnhancedOption option = new EnhancedOption(); - option.tooltip().position(Position.top); - option.animation(false); - - CategoryAxis hoursC = new CategoryAxis(); - hoursC.data("12a", "1a", "2a", "3a", "4a", "5a", "6a", - "7a", "8a", "9a", "10a", "11a", - "12p", "1p", "2p", "3p", "4p", "5p", - "6p", "7p", "8p", "9p", "10p", "11p"); - - CategoryAxis daysC = new CategoryAxis(); - daysC.data("Saturday", "Friday", "Thursday", - "Wednesday", "Tuesday", "Monday", "Sunday"); - - option.xAxis(hoursC).yAxis(daysC); - option.grid().height("50%").y("10%"); - option.visualMapNew().min(1).max(10).calculable(true).orient(Orient.horizontal).left(X.center).bottom("15%"); - - Object[] data = new Object[]{new Integer[]{0, 0, 5}, new Integer[]{0, 1, 1}, new Integer[]{0, 2, 0}, new Integer[]{0, 3, 0}, new Integer[]{0, 4, 0}, - new Integer[]{0, 5, 0}, new Integer[]{0, 6, 0}, new Integer[]{0, 7, 0}, new Integer[]{0, 8, 0}, new Integer[]{0, 9, 0}, - new Integer[]{0, 10, 0}, new Integer[]{0, 11, 2}, new Integer[]{0, 12, 4}, new Integer[]{0, 13, 1}, new Integer[]{0, 14, 1}, - new Integer[]{0, 15, 3}, new Integer[]{0, 16, 4}, new Integer[]{0, 17, 6}, new Integer[]{0, 18, 4}, new Integer[]{0, 19, 4}, - new Integer[]{0, 20, 3}, new Integer[]{0, 21, 3}, new Integer[]{0, 22, 2}, new Integer[]{0, 23, 5}, new Integer[]{1, 0, 7}, - new Integer[]{1, 1, 0}, new Integer[]{1, 2, 0}, new Integer[]{1, 3, 0}, new Integer[]{1, 4, 0}, new Integer[]{1, 5, 0}, - new Integer[]{1, 6, 0}, new Integer[]{1, 7, 0}, new Integer[]{1, 8, 0}, new Integer[]{1, 9, 0}, new Integer[]{1, 10, 5}, - new Integer[]{1, 11, 2}, new Integer[]{1, 12, 2}, new Integer[]{1, 13, 6}, new Integer[]{1, 14, 9}, new Integer[]{1, 15, 11}, - new Integer[]{1, 16, 6}, new Integer[]{1, 17, 7}, new Integer[]{1, 18, 8}, new Integer[]{1, 19, 12}, new Integer[]{1, 20, 5}, - new Integer[]{1, 21, 5}, new Integer[]{1, 22, 7}, new Integer[]{1, 23, 2}, new Integer[]{2, 0, 1}, new Integer[]{2, 1, 1}, - new Integer[]{2, 2, 0}, new Integer[]{2, 3, 0}, new Integer[]{2, 4, 0}, new Integer[]{2, 5, 0}, new Integer[]{2, 6, 0}, - new Integer[]{2, 7, 0}, new Integer[]{2, 8, 0}, new Integer[]{2, 9, 0}, new Integer[]{2, 10, 3}, new Integer[]{2, 11, 2}, - new Integer[]{2, 12, 1}, new Integer[]{2, 13, 9}, new Integer[]{2, 14, 8}, new Integer[]{2, 15, 10}, new Integer[]{2, 16, 6}, - new Integer[]{2, 17, 5}, new Integer[]{2, 18, 5}, new Integer[]{2, 19, 5}, new Integer[]{2, 20, 7}, new Integer[]{2, 21, 4}, - new Integer[]{2, 22, 2}, new Integer[]{2, 23, 4}, new Integer[]{3, 0, 7}, new Integer[]{3, 1, 3}, new Integer[]{3, 2, 0}, - new Integer[]{3, 3, 0}, new Integer[]{3, 4, 0}, new Integer[]{3, 5, 0}, new Integer[]{3, 6, 0}, new Integer[]{3, 7, 0}, - new Integer[]{3, 8, 1}, new Integer[]{3, 9, 0}, new Integer[]{3, 10, 5}, new Integer[]{3, 11, 4}, new Integer[]{3, 12, 7}, - new Integer[]{3, 13, 14}, new Integer[]{3, 14, 13}, new Integer[]{3, 15, 12}, new Integer[]{3, 16, 9}, new Integer[]{3, 17, 5}, - new Integer[]{3, 18, 5}, new Integer[]{3, 19, 10}, new Integer[]{3, 20, 6}, new Integer[]{3, 21, 4}, new Integer[]{3, 22, 4}, - new Integer[]{3, 23, 1}, new Integer[]{4, 0, 1}, new Integer[]{4, 1, 3}, new Integer[]{4, 2, 0}, new Integer[]{4, 3, 0}, - new Integer[]{4, 4, 0}, new Integer[]{4, 5, 1}, new Integer[]{4, 6, 0}, new Integer[]{4, 7, 0}, new Integer[]{4, 8, 0}, - new Integer[]{4, 9, 2}, new Integer[]{4, 10, 4}, new Integer[]{4, 11, 4}, new Integer[]{4, 12, 2}, new Integer[]{4, 13, 4}, - new Integer[]{4, 14, 4}, new Integer[]{4, 15, 14}, new Integer[]{4, 16, 12}, new Integer[]{4, 17, 1}, new Integer[]{4, 18, 8}, - new Integer[]{4, 19, 5}, new Integer[]{4, 20, 3}, new Integer[]{4, 21, 7}, new Integer[]{4, 22, 3}, new Integer[]{4, 23, 0}, - new Integer[]{5, 0, 2}, new Integer[]{5, 1, 1}, new Integer[]{5, 2, 0}, new Integer[]{5, 3, 3}, new Integer[]{5, 4, 0}, - new Integer[]{5, 5, 0}, new Integer[]{5, 6, 0}, new Integer[]{5, 7, 0}, new Integer[]{5, 8, 2}, new Integer[]{5, 9, 0}, - new Integer[]{5, 10, 4}, new Integer[]{5, 11, 1}, new Integer[]{5, 12, 5}, new Integer[]{5, 13, 10}, new Integer[]{5, 14, 5}, - new Integer[]{5, 15, 7}, new Integer[]{5, 16, 11}, new Integer[]{5, 17, 6}, new Integer[]{5, 18, 0}, new Integer[]{5, 19, 5}, - new Integer[]{5, 20, 3}, new Integer[]{5, 21, 4}, new Integer[]{5, 22, 2}, new Integer[]{5, 23, 0}, new Integer[]{6, 0, 1}, - new Integer[]{6, 1, 0}, new Integer[]{6, 2, 0}, new Integer[]{6, 3, 0}, new Integer[]{6, 4, 0}, new Integer[]{6, 5, 0}, - new Integer[]{6, 6, 0}, new Integer[]{6, 7, 0}, new Integer[]{6, 8, 0}, new Integer[]{6, 9, 0}, new Integer[]{6, 10, 1}, - new Integer[]{6, 11, 0}, new Integer[]{6, 12, 2}, new Integer[]{6, 13, 1}, new Integer[]{6, 14, 3}, new Integer[]{6, 15, 4}, - new Integer[]{6, 16, 0}, new Integer[]{6, 17, 0}, new Integer[]{6, 18, 0}, new Integer[]{6, 19, 0}, new Integer[]{6, 20, 1}, - new Integer[]{6, 21, 2}, new Integer[]{6, 22, 2}, new Integer[]{6, 23, 6}}; - - Object[] datas = new Object[data.length]; - for (int i = 0; i < data.length; i++) { - Integer[] is = (Integer[]) data[i]; - datas[i] = new Integer[]{is[1], is[0], is[2]}; - } - - Heatmap heatmap = new Heatmap("Punch Card"); - heatmap.data(datas); - heatmap.label().normal().show(true); - heatmap.itemStyle().emphasis().shadowBlur(10).shadowColor("rgba(0, 0, 0, 0.5)"); - - option.series(heatmap); - option.exportToHtml("heatmap.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/line/LineTest.java b/src/test/java/com/github/abel533/echarts/samples/line/LineTest.java deleted file mode 100644 index 1ba51783..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/line/LineTest.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.line; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.Symbol; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.data.LineData; -import com.github.abel533.echarts.series.Line; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * Created by liuzh on 14-8-26. - */ -public class LineTest { - - @Test - public void test() { - //例子:http://echarts.baidu.com/doc/example/line.html - EnhancedOption option = new EnhancedOption(); - option.tooltip().trigger(Trigger.axis); - option.legend("邮件营销", "联盟广告", "直接访问", "搜索引擎"); - option.toolbox().show(true); - option.calculable(true); - option.xAxis(new CategoryAxis().boundaryGap(false).data("周一", "周二", "周三", "周四", "周五", "周六", "周日")); - option.yAxis(new ValueAxis()); - option.series(new Line().smooth(true).name("邮件营销").stack("总量").symbol(Symbol.none).data(120, 132, 301, 134, new LineData(90, Symbol.droplet, 5), 230, 210)); - - - //实现不了js的这个效果 - //line.itemStyle.normal.areaStyle = new AreaStyle(); - LineData lineData = new LineData(201, Symbol.star, 15); - lineData.itemStyle().normal().label().show(true).textStyle().fontSize(20).fontFamily("微软雅黑").fontWeight("bold"); - option.series(new Line().smooth(true).name("联盟广告").stack("总量").symbol("image://http://echarts.baidu.com/doc/asset/ico/favicon.png").symbolSize(8).data(120, 82, lineData, new LineData(134, Symbol.none), 190, new LineData(230, Symbol.emptypin, 8), 110)); - - /* line = new Line(); - line.name = "邮件营销"; - line.stack = "总量"; - line.symbol = Symbol.none; - line.smooth = true; - //实现不了js的这个效果 - //line.itemStyle.normal.areaStyle = new AreaStyle(); - line.addData(120, 132, 301, 134,new LineData(90,Symbol.droplet,5),230,210); - option.series.add(line); - - line = new Line(); - line.name = "邮件营销"; - line.stack = "总量"; - line.symbol = Symbol.none; - line.smooth = true; - //实现不了js的这个效果 - //line.itemStyle.normal.areaStyle = new AreaStyle(); - line.addData(120, 132, 301, 134,new LineData(90,Symbol.droplet,5),230,210); - option.series.add(line);*/ - - option.exportToHtml("line.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/line/LineTest3.java b/src/test/java/com/github/abel533/echarts/samples/line/LineTest3.java deleted file mode 100644 index 658fab9f..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/line/LineTest3.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.line; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.Magic; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.feature.MagicType; -import com.github.abel533.echarts.series.Line; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class LineTest3 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/map.html - EnhancedOption option = new EnhancedOption(); - option.title("某楼盘销售情况", "纯属虚构"); - option.tooltip().trigger(Trigger.axis); - option.legend("意向", "预购", "成交"); - option.toolbox().show(true).feature(Tool.mark, - Tool.dataView, - new MagicType(Magic.line, Magic.bar, Magic.stack, Magic.tiled), - Tool.restore, - Tool.saveAsImage).padding(20); - option.calculable(true); - option.xAxis(new CategoryAxis().boundaryGap(false).data("周一", "周二", "周三", "周四", "周五", "周六", "周日")); - option.yAxis(new ValueAxis()); - - Line l1 = new Line("成交"); - l1.smooth(true).itemStyle().normal().areaStyle().typeDefault(); - l1.data(10, 12, 21, 54, 260, 830, 710); - - Line l2 = new Line("预购"); - l2.smooth(true).itemStyle().normal().areaStyle().typeDefault(); - l2.data(30, 182, 434, 791, 390, 30, 10); - - Line l3 = new Line("意向"); - l3.smooth(true).itemStyle().normal().areaStyle().typeDefault(); - l3.data(1320, 1132, 601, 234, 120, 90, 20); - - option.series(l1, l2, l3); - option.exportToHtml("line3.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/line/LineTest5.java b/src/test/java/com/github/abel533/echarts/samples/line/LineTest5.java deleted file mode 100644 index b7284572..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/line/LineTest5.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.line; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.Magic; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.feature.MagicType; -import com.github.abel533.echarts.series.Line; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class LineTest5 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/line5.html - EnhancedOption option = new EnhancedOption(); - option.legend("高度(km)与气温(°C)变化关系"); - - option.toolbox().show(true).feature( - Tool.mark, - Tool.dataView, - new MagicType(Magic.line, Magic.bar), - Tool.restore, - Tool.saveAsImage); - - option.calculable(true); - option.tooltip().trigger(Trigger.axis).formatter("Temperature :
{b}km : {c}°C"); - - ValueAxis valueAxis = new ValueAxis(); - valueAxis.axisLabel().formatter("{value} °C"); - option.xAxis(valueAxis); - - CategoryAxis categoryAxis = new CategoryAxis(); - categoryAxis.axisLine().onZero(false); - categoryAxis.axisLabel().formatter("{value} km"); - categoryAxis.boundaryGap(false); - categoryAxis.data(0, 10, 20, 30, 40, 50, 60, 70, 80); - option.yAxis(categoryAxis); - - Line line = new Line(); - line.smooth(true).name("高度(km)与气温(°C)变化关系") - .data(15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5) - .itemStyle().normal().lineStyle().shadowColor("rgba(0,0,0,0.4)"); - option.series(line); - option.exportToHtml("line5.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/line/LineTest6.java b/src/test/java/com/github/abel533/echarts/samples/line/LineTest6.java deleted file mode 100644 index 9920befd..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/line/LineTest6.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.line; - -import com.github.abel533.echarts.axis.AxisLabel; -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.Magic; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.code.X; -import com.github.abel533.echarts.feature.MagicType; -import com.github.abel533.echarts.series.Line; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -import java.util.Arrays; -import java.util.List; - -/** - * @author liuzh - */ -public class LineTest6 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/line6.html - EnhancedOption option = new EnhancedOption(); - option.title().text("雨量流量关系图").subtext("数据来自西安兰特水电测控技术有限公司").x(X.center); - option.tooltip().trigger(Trigger.axis).formatter("function(v){" + - "return v[0][1] + '
'" + - " + v[0][0] + ' : ' + v[0][2] + ' (m^3/s)
'" + - "+ v[1][0] + ' : ' + -v[1][2] + ' (mm)';" + - "}"); - option.legend("流量", "降雨量").legend().x(X.left); - - option.toolbox().show(true).feature( - Tool.mark, - Tool.dataView, - new MagicType(Magic.line, Magic.bar), - Tool.restore, - Tool.saveAsImage); - - option.dataZoomNew().show(true).realtime(true).start(0).end(100); - - option.yAxis(new ValueAxis().name("流量(m^3/s)").max(500)); - option.yAxis(new ValueAxis().name("降雨量(mm)").axisLabel(new AxisLabel().formatter("function(v){return -v;}"))); - - CategoryAxis categoryAxis = new CategoryAxis(); - categoryAxis.boundaryGap(false).axisLine().onZero(false); - categoryAxis.data("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" - ); - option.xAxis(categoryAxis); - - Line line1 = new Line("流量"); - line1.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) - .itemStyle().normal().areaStyle().typeDefault(); - Line line2 = new Line("降雨量"); - line2.yAxisIndex(1).itemStyle().normal().areaStyle().typeDefault(); - - - line2.data(getData()); - option.series(line1, line2); - option.exportToHtml("line6.html"); - option.view(); - } - - public List getData() { - Object[] oriData = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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}; - int len = oriData.length; - while (len-- > 0) { - oriData[len] = (Double.parseDouble(String.valueOf(oriData[len])) * -1); - } - return Arrays.asList(oriData); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/line/LineTest9.java b/src/test/java/com/github/abel533/echarts/samples/line/LineTest9.java deleted file mode 100644 index e40de36c..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/line/LineTest9.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.line; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.LogAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.Magic; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.code.X; -import com.github.abel533.echarts.feature.MagicType; -import com.github.abel533.echarts.series.Line; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class LineTest9 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/line9.html - EnhancedOption option = new EnhancedOption(); - option.title().text("对数轴示例").x(X.center); - - - option.legend().x(X.left).data("2的指数", "3的指数"); - - option.toolbox().show(true).feature( - Tool.mark, - Tool.dataView, - new MagicType(Magic.line, Magic.bar), - Tool.restore, - Tool.saveAsImage); - option.tooltip().trigger(Trigger.item).formatter("{a}
{b} : {c}"); - option.calculable(true); - - option.yAxis(new LogAxis()); - CategoryAxis categoryAxis = new CategoryAxis(); - categoryAxis.name("x").splitLine().show(false); - categoryAxis.data("一", "二", "三", "四", "五", "六", "七", "八", "九"); - - option.xAxis(categoryAxis); - - ValueAxis valueAxis = new ValueAxis(); - valueAxis.axisLabel().formatter("{value} °C"); - option.xAxis(valueAxis); - - Line line = new Line("3的指数"); - line.data(1, 3, 9, 27, 81, 247, 741, 2223, 6669); - Line line2 = new Line("2的指数"); - line2.data(1, 2, 4, 8, 16, 32, 64, 128, 256); - option.series(line, line2); - option.exportToHtml("line7.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/map/MapTest.java b/src/test/java/com/github/abel533/echarts/samples/map/MapTest.java deleted file mode 100644 index 66ffe3b0..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/map/MapTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.map; - -import com.github.abel533.echarts.code.SelectedMode; -import com.github.abel533.echarts.code.X; -import com.github.abel533.echarts.code.Y; -import com.github.abel533.echarts.data.Data; -import com.github.abel533.echarts.series.EMap; -import com.github.abel533.echarts.series.Map; -import com.github.abel533.echarts.series.MapLocation; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class MapTest { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/map.html - EnhancedOption option = new EnhancedOption(); - EMap map = new EMap("Map"); - map.mapLocation(new MapLocation(X.left, Y.top, 500)); - map.selectedMode(SelectedMode.multiple); - map.itemStyle().normal().borderWidth(2) - .borderColor("lightgreen").color("orange") - .label().show(true); - - map.itemStyle().emphasis() - .borderWidth(2).borderColor("#fff").color("#32cd32") - .label().show(true) - .textStyle().color("#fff"); - Data data = new Data("广东"); - data.value(Math.round(Math.random() * 1000)); - data.itemStyle().normal().color("#32cd32") - .label().show(true).textStyle().color("#fff").fontSize(15); - data.itemStyle().emphasis().borderColor("yellow").color("#cd5c5c") - .label().show(false).textStyle().color("blue"); - - map.data(data); - map.markPoint().itemStyle().normal().color("skyblue"); - map.markPoint().data(new Data("天津", 350), new Data("上海", 103)); - - map.geoCoord("上海", "121.4648", "31.2891").geoCoord("天津", "117.4219", "39.4189"); - - option.series(map); - option.exportToHtml("map.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/other/AccessTest.java b/src/test/java/com/github/abel533/echarts/samples/other/AccessTest.java deleted file mode 100644 index df8cd630..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/other/AccessTest.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.other; - -import com.github.abel533.echarts.axis.AxisLine; -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.SplitLine; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.X; -import com.github.abel533.echarts.code.Y; -import com.github.abel533.echarts.series.Line; -import com.github.abel533.echarts.style.LineStyle; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author liuzh - */ -public class AccessTest { - /** - * 模拟从数据库获取数据 - * - * @return - */ - public List getWeekData() { - List list = new ArrayList(7); - list.add(new AccessData("09-16", 4)); - list.add(new AccessData("09-17", 7)); - list.add(new AccessData("09-18", 14)); - list.add(new AccessData("09-19", 304)); - list.add(new AccessData("09-20", 66)); - list.add(new AccessData("09-21", 16)); - list.add(new AccessData("09-22", 205)); - return list; - } - - @Test - public void test() { - //获取数据 - List datas = getWeekData(); - //创建Option对象 - EnhancedOption option = new EnhancedOption(); - //设置图表标题,并且居中显示 - option.title().text("最近7天访问量图表").x(X.center); - //设置图例,居中底部显示,显示边框 - option.legend().data("访问量").x(X.center).y(Y.bottom).borderWidth(1); - //设置y轴为值轴,并且不显示y轴,最大值设置400(实际上这个属性不必设置,默认即可) - option.yAxis(new ValueAxis().name("IP") - .axisLine(new AxisLine().show(true).lineStyle(new LineStyle().width(0))) - .max(400).min(-100)); - //创建类目轴,并且不显示竖着的分割线 - CategoryAxis categoryAxis = new CategoryAxis() - .splitLine(new SplitLine().show(false)) - .axisLine(new AxisLine().onZero(false)); - //不显示表格边框,就是围着图标的方框 - option.grid().borderWidth(0); - //创建Line数据 - Line line = new Line("访问量").smooth(true); - //根据获取的数据赋值 - for (AccessData data : datas) { - //增加类目,值为日期 - categoryAxis.data(data.getDate()); - //日期对应的数据 - line.data(data.getNums()); - } - //设置x轴为类目轴 - option.xAxis(categoryAxis); - //设置数据 - option.series(line); - //打开浏览器预览 - option.exportToHtml("access.html"); - option.view(); - } - - //数据对象 - class AccessData { - //日期 - private String date; - //访问量 - private Integer nums; - - AccessData(String date, Integer nums) { - this.date = date; - this.nums = nums; - } - - public String getDate() { - return date; - } - - public Integer getNums() { - return nums; - } - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/other/OtherTest1.java b/src/test/java/com/github/abel533/echarts/samples/other/OtherTest1.java deleted file mode 100644 index 920ae060..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/other/OtherTest1.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.other; - -import com.github.abel533.echarts.axis.CategoryAxis; -import com.github.abel533.echarts.axis.SplitArea; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.json.GsonOption; -import com.github.abel533.echarts.series.Line; -import org.junit.Test; - -/** - * @author liuzh - */ -public class OtherTest1 { - @Test - public void test() { - GsonOption option = new GsonOption(); - option.title("tubiao").animation(false); - - option.xAxis(new CategoryAxis().data("周一", "周二", "周三", "周四", "周五", "周六", "周日")); - option.yAxis(new ValueAxis().splitArea(new SplitArea().show(true))); - - Line line = new Line("蒸发量"); - line.data(12, 5, 4, 10, 15, 7, 13).smooth(true); - - Line line2 = new Line("降水量"); - line2.data(10, 15, 7, 13, 12, 5, 3); - - option.series(line, line2); - //转换为json - System.out.println(option.toString()); - //格式化的json,不利于传输,适合阅读 - System.out.println(option.toPrettyString()); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/pie/PieTest6.java b/src/test/java/com/github/abel533/echarts/samples/pie/PieTest6.java deleted file mode 100644 index 3f44d5ee..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/pie/PieTest6.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.pie; - -import com.github.abel533.echarts.Label; -import com.github.abel533.echarts.code.Orient; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.X; -import com.github.abel533.echarts.code.Y; -import com.github.abel533.echarts.data.Data; -import com.github.abel533.echarts.series.Pie; -import com.github.abel533.echarts.style.ItemStyle; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * 复杂的时间轴效果 - * - * @author liuzh - */ -public class PieTest6 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/pie6.html - ItemStyle dataStyle = new ItemStyle(); - dataStyle.normal().label(new Label().show(false)).labelLine().show(false); - - ItemStyle placeHolderStyle = new ItemStyle(); - placeHolderStyle.normal().color("rgba(0,0,0,0)").label(new Label().show(false)).labelLine().show(false); - placeHolderStyle.emphasis().color("rgba(0,0,0,0)"); - - EnhancedOption option = new EnhancedOption(); - option.title().text("你幸福吗?") - .subtext("From ExcelHome") - .sublink("http://e.weibo.com/1341556070/AhQXtjbqh") - .x(X.center) - .y(Y.center) - .itemGap(20) - .textStyle().color("rgba(30,144,255,0.8)") - .fontFamily("微软雅黑") - .fontSize(35) - .fontWeight("bolder"); - option.tooltip().show(true).formatter("{a}
{b} : {c} ({d}%)"); - option.legend().orient(Orient.vertical) - .x("(function(){return document.getElementById('main').offsetWidth / 2;})()") - .y(56) - .itemGap(12) - .data("68%的人表示过的不错", "29%的人表示生活压力很大", "3%的人表示“我姓曾”"); - option.toolbox().show(true).feature(Tool.mark, Tool.dataView, Tool.restore, Tool.saveAsImage); - - Pie p1 = new Pie("1"); - p1.clockWise(false).radius(125, 150).itemStyle(dataStyle) - .data(new Data("68%的人表示过的不错", 68), new Data("invisible", 32).itemStyle(placeHolderStyle)); - - Pie p2 = new Pie("2"); - p2.clockWise(false).radius(100, 125).itemStyle(dataStyle) - .data(new Data("29%的人表示生活压力很大", 29), new Data("invisible", 71).itemStyle(placeHolderStyle)); - - Pie p3 = new Pie("3"); - p3.clockWise(false).radius(75, 100).itemStyle(dataStyle) - .data(new Data("3%的人表示“我姓曾”", 3), new Data("invisible", 97).itemStyle(placeHolderStyle)); - - option.series(p1, p2, p3); - option.exportToHtml("pie6.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/pie/PieTest7.java b/src/test/java/com/github/abel533/echarts/samples/pie/PieTest7.java deleted file mode 100644 index cef21b44..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/pie/PieTest7.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.pie; - -import com.github.abel533.echarts.Option; -import com.github.abel533.echarts.code.Magic; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.code.X; -import com.github.abel533.echarts.data.LineData; -import com.github.abel533.echarts.data.PieData; -import com.github.abel533.echarts.feature.MagicType; -import com.github.abel533.echarts.series.Funnel; -import com.github.abel533.echarts.series.Pie; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * 复杂的时间轴效果 - * - * @author liuzh - */ -public class PieTest7 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/pie7.html - EnhancedOption option = new EnhancedOption(); - //时间轴 - option.timeline().data("2013-01-01", "2013-02-01", "2013-03-01", "2013-04-01", "2013-05-01", - new LineData("2013-06-01", "emptyStart6", 8), "2013-07-01", "2013-08-01", "2013-09-01", "2013-10-01", - "2013-11-01", new LineData("2013-12-01", "star6", 8)); - option.timeline().autoPlay(true); - //timeline变态的地方在于多个Option - Option basic = new Option(); - basic.title().text("浏览器占比变化").subtext("纯属虚构"); - basic.tooltip().trigger(Trigger.item).formatter("{a}
{b} : {c} ({d}%)"); - basic.legend().data("Chrome", "Firefox", "Safari", "IE9+", "IE8-"); - basic.toolbox().show(true).feature(Tool.mark, Tool.dataView, Tool.restore, Tool.saveAsImage, new MagicType(Magic.pie, Magic.funnel) - .option(new MagicType.Option().funnel( - new Funnel().x("25%").width("50%").funnelAlign(X.left).max(1548)))); - - int idx = 1; - Pie pie = getPie(idx++).center("50%", "45%").radius("50%"); - pie.label().normal().show(true).formatter("{b}{c}({d}%)"); - basic.series(pie); - //加入 - option.options(basic); - //构造11个数据 - Option[] os = new Option[11]; - for (int i = 0; i < os.length; i++) { - os[i] = new Option().series(getPie(idx++)); - } - option.options(os); - option.exportToHtml("pie7.html"); - option.view(); - } - - /** - * 获取饼图数据 - * - * @param idx - * @return - */ - public Pie getPie(int idx) { - return new Pie().name("浏览器(数据纯属虚构)").data( - new PieData("Chrome", idx * 128 + 80), - new PieData("Firefox", idx * 64 + 160), - new PieData("Safari", idx * 32 + 320), - new PieData("IE9+", idx * 16 + 640), - new PieData("IE8-", idx * 8 + 1280)); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/rarda/RadarTest1.java b/src/test/java/com/github/abel533/echarts/samples/rarda/RadarTest1.java deleted file mode 100644 index feb8ce3a..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/rarda/RadarTest1.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.rarda; - -import com.github.abel533.echarts.Radar; -import com.github.abel533.echarts.data.RadarData; -import com.github.abel533.echarts.series.RadarSeries; -import com.github.abel533.echarts.style.TextStyle; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * 雷达图测试1 - * - * @author liuxu - * @date 18-7-10下午4:21 - */ -public class RadarTest1 { - - @Test - public void test() { - - EnhancedOption option = new EnhancedOption(); - - option.title().text("基础雷达图").subtext("基础雷达图subtext"); - - option.legend("预算分配(Allocated Budget)", "实际开销(Actual Spending)"); - - - //设置 Radar - Radar radar = new Radar(); - radar.name(new Radar.Name().textStyle(new TextStyle().color("#fff").backgroundColor("#999").borderRadius(3).padding(new Integer[]{3, 5}))); - - - radar.indicator(new Radar.Indicator().name("销售(sales)").max(6500), - new Radar.Indicator().name("管理(Administration)").max(16000), - new Radar.Indicator().name("信息技术(Information Techology)").max(30000), - new Radar.Indicator().name("客服(Customer Support)").max(38000), - new Radar.Indicator().name("研发(Development)").max(52000), - new Radar.Indicator().name("市场(Marketing)").max(25000)); - - option.radar(radar); - - //设置 Series - RadarSeries radar1 = new RadarSeries("预算 vs 开销(Budget vs spending)"); - - RadarData radarData1 = new RadarData("预算分配", new Integer[]{4300, 10000, 28000, 35000, 50000, 19000}); - RadarData radarData2 = new RadarData("实际开销", new Integer[]{5000, 14000, 28000, 31000, 42000, 21000}); - - radar1.data(radarData1,radarData2); - - option.series(radar1); - System.out.println(option.toString()); - option.exportToHtml("radar1.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/scatter/ScatterTest2.java b/src/test/java/com/github/abel533/echarts/samples/scatter/ScatterTest2.java deleted file mode 100644 index f9c44000..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/scatter/ScatterTest2.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.scatter; - -import com.github.abel533.echarts.AxisPointer; -import com.github.abel533.echarts.Tooltip; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.LineType; -import com.github.abel533.echarts.code.PointerType; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.data.ScatterData; -import com.github.abel533.echarts.series.Scatter; -import com.github.abel533.echarts.style.LineStyle; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class ScatterTest2 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/scatter2.html - EnhancedOption option = new EnhancedOption(); - option.tooltip(new Tooltip() - .trigger(Trigger.axis) - .showDelay(0) - .axisPointer(new AxisPointer().type(PointerType.cross) - .lineStyle(new LineStyle() - .type(LineType.dashed).width(1)))); - option.legend("scatter1", "scatter2"); - option.toolbox().show(true).feature(Tool.mark, Tool.dataZoom, Tool.dataView, Tool.restore, Tool.saveAsImage); - ValueAxis valueAxis = new ValueAxis().power(1).splitNumber(4).scale(true); - option.xAxis(valueAxis); - option.yAxis(valueAxis); - //注:这里的结果是一种圆形一种方形,是因为默认不设置形状时,会循环形状数组 - option.series( - new Scatter("scatter1").symbolSize("function (value){" + - " return Math.round(value[2] / 5);" + - " }").data(randomDataArray()) - , new Scatter("scatter2").symbolSize("function (value){" + - " return Math.round(value[2] / 5);" + - " }").data(randomDataArray())); - option.exportToHtml("scatter2.html"); - option.view(); - } - - private ScatterData[] randomDataArray() { - ScatterData[] scatters = new ScatterData[100]; - for (int i = 0; i < scatters.length; i++) { - scatters[i] = new ScatterData(random(), random(), Math.abs(random())); - } - return scatters; - } - - private int random() { - int i = (int) Math.round(Math.random() * 100); - return (i * (i % 2 == 0 ? 1 : -1)); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/scatter/ScatterTest3.java b/src/test/java/com/github/abel533/echarts/samples/scatter/ScatterTest3.java deleted file mode 100644 index 203362f0..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/scatter/ScatterTest3.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.scatter; - -import com.github.abel533.echarts.AxisPointer; -import com.github.abel533.echarts.Tooltip; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.LineType; -import com.github.abel533.echarts.code.PointerType; -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.series.Scatter; -import com.github.abel533.echarts.style.LineStyle; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -/** - * @author liuzh - */ -public class ScatterTest3 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/scatter3.html - EnhancedOption option = new EnhancedOption(); - option.tooltip(new Tooltip() - .trigger(Trigger.axis) - .showDelay(0) - .axisPointer(new AxisPointer().type(PointerType.cross) - .lineStyle(new LineStyle() - .type(LineType.dashed).width(1)))); - option.legend("sin", "cos"); - option.toolbox().show(true).feature(Tool.mark, Tool.dataZoom, Tool.dataView, Tool.restore, Tool.saveAsImage); - ValueAxis valueAxis = new ValueAxis().power(1).precision(2).scale(true); - option.xAxis(valueAxis); - option.yAxis(valueAxis); - - Scatter sin = new Scatter("sin"); - sin.large(true); - Double[][] sinData = new Double[10000][2]; - for (int i = sinData.length; i > 0; i--) { - double x = round(Math.random() * 10) - 0; - double y = Math.sin(x) - x * (i % 2 == 0 ? 0.1 : -0.1) * round(Math.random()) - 0; - sinData[sinData.length - i] = new Double[]{x, y}; - } - sin.data(sinData); - - Scatter cos = new Scatter("cos"); - cos.large(true); - Double[][] cosData = new Double[10000][2]; - for (int i = cosData.length; i > 0; i--) { - double x = round(Math.random() * 10) - 0; - double y = Math.cos(x) - x * (i % 2 == 0 ? 0.1 : -0.1) * round(Math.random()) - 0; - cosData[sinData.length - i] = new Double[]{x, y}; - } - cos.data(cosData); - option.series(sin, cos); - option.exportToHtml("scatter3.html"); - option.view(); - } - - public Double round(Double d) { - BigDecimal bigDecimal = new BigDecimal(d.toString()); - bigDecimal = bigDecimal.round(new MathContext(3, RoundingMode.HALF_UP)); - return bigDecimal.doubleValue(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/scatter/ScatterTest6.java b/src/test/java/com/github/abel533/echarts/samples/scatter/ScatterTest6.java deleted file mode 100644 index a3fd82af..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/scatter/ScatterTest6.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.scatter; - -import com.github.abel533.echarts.axis.TimeAxis; -import com.github.abel533.echarts.axis.ValueAxis; -import com.github.abel533.echarts.code.*; -import com.github.abel533.echarts.series.Scatter; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Ignore; -import org.junit.Test; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * @author liuzh - */ -@Ignore("由于时间轴data中的时间必须是时间类型,这里由于只能生成字符串,所以会没有效果,解决办法就是在js中将日期字符串转化为日期类型") -public class ScatterTest6 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/scatter6.html - // echarts只能认识js的Date... - EnhancedOption option = new EnhancedOption(); - option.title("时间坐标散点图", "dataZoom支持"); - option.tooltip().trigger(Trigger.axis).axisPointer() - .show(true) - .type(PointerType.cross).lineStyle().type(LineType.dashed).width(1); - option.legend("series1"); - option.toolbox().show(true).feature(Tool.mark, Tool.dataView, Tool.restore, Tool.saveAsImage); - option.dataZoomNew().show(true).start(30).end(70); - option.dataRange().min(0).max(100).orient(Orient.horizontal).x(30).y(Y.center).color("lightgreen", "orange").splitNumber(5); - option.grid().y2(80); - option.xAxis(new TimeAxis().splitNumber(10)); - option.yAxis(new ValueAxis()); - option.animation(false); - - Scatter series1 = new Scatter("series1"); - series1.tooltip().formatter("function(params){" + - " var date = new Date(params.value[0]);" + - " return params.seriesName " + - " + ' ('" + - " + date.getFullYear() + '-'" + - " + (date.getMonth() + 1) + '-'" + - " + date.getDate() + ' '" + - " + date.getHours() + ':'" + - " + date.getMinutes()" + - " + ')
'" + - " + params.value[1] + ', ' " + - " + params.value[2];" + - " }"); - series1.symbolSize("function (value){" + - " return Math.round(value[2]/10);" + - " }"); - series1.data(getData().toArray()); - - option.series(series1); - option.exportToHtml("scatter6.html"); - option.view(); - } - - public List getData(){ - List dataList = new ArrayList(1500); - for (int i = 0; i < 1500; i++) { - dataList.add(new Object[]{getDateStr(new Date(114,9,1,0,(int)Math.round(Math.random()*10000))), - (int)(round(Math.random()*30) - 0), - (int)(round(Math.random()*100) - 0) - }); - } - return dataList; - } - - public String getDateStr(Date date){ - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - return format.format(date); - } - - public Double round(Double d) { - BigDecimal bigDecimal = new BigDecimal(d.toString()); - bigDecimal = bigDecimal.round(new MathContext(2, RoundingMode.HALF_UP)); - return bigDecimal.doubleValue(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/samples/treemap/TreemapTest1.java b/src/test/java/com/github/abel533/echarts/samples/treemap/TreemapTest1.java deleted file mode 100644 index c0052360..00000000 --- a/src/test/java/com/github/abel533/echarts/samples/treemap/TreemapTest1.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.samples.treemap; - -import com.github.abel533.echarts.code.Tool; -import com.github.abel533.echarts.code.Trigger; -import com.github.abel533.echarts.data.TreeData; -import com.github.abel533.echarts.series.Treemap; -import com.github.abel533.echarts.util.EnhancedOption; -import org.junit.Test; - -/** - * @author liuzh - */ -public class TreemapTest1 { - - @Test - public void test() { - //地址:http://echarts.baidu.com/doc/example/treemap.html - EnhancedOption option = new EnhancedOption(); - option.title().text("手机占有率").subtext("虚构数据"); - option.tooltip().trigger(Trigger.item).formatter("{b}: {c}"); - option.toolbox().show(true).feature( - Tool.mark, - Tool.dataView, - Tool.restore, - Tool.saveAsImage); - option.calculable(false); - - Treemap treemap = new Treemap("矩形图"); - treemap.itemStyle().normal().label().show(true).formatter("{b}"); - treemap.itemStyle().normal().borderWidth(1); - - treemap.itemStyle().emphasis().label().show(true); - treemap.data(new TreeData("三星", 6), - new TreeData("小米", 4), - new TreeData("苹果", 4), - new TreeData("华为", 2), - new TreeData("联想", 2), - new TreeData("魅族", 1), - new TreeData("中兴", 1) - ); - - option.series(treemap); - option.exportToHtml("treemap.html"); - option.view(); - } -} diff --git a/src/test/java/com/github/abel533/echarts/util/ChainUtil.java b/src/test/java/com/github/abel533/echarts/util/ChainUtil.java deleted file mode 100644 index 27abd513..00000000 --- a/src/test/java/com/github/abel533/echarts/util/ChainUtil.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.util; - -import java.io.*; -import java.util.ArrayList; -import java.util.List; - -/** - * 自动生成链式调用方法 - 仅针对本项目之前的代码 - * - * @author liuzh - */ -public class ChainUtil { - public static void main(String[] args) { - //输出全部类 -// String srcPath = getSrcPath(); -// File srcFoler = new File(srcPath); -// List all = allFiles(srcFoler); -// for (File file : all) { -// chainFile(file); -// } - chainFile(new File("G:\\Git\\OpenSource\\ECharts\\src\\main\\java\\com\\github\\abel533\\echarts\\RoamController.java")); - } - - public static void chainFile(File file) { - BufferedReader reader = null; - StringBuffer sb = new StringBuffer(); - try { - reader = new BufferedReader(new FileReader(file)); - String line = null; - String className = file.getName(); - className = className.substring(0, className.lastIndexOf(".")); - while ((line = reader.readLine()) != null) { - String tempLline = line.trim(); - if (tempLline.startsWith("public") && tempLline.endsWith(";")) { - //去分号 - tempLline = tempLline.substring(0, tempLline.length() - 1); - String[] strs = tempLline.split(" "); - if (strs.length != 3) { - sb.append(line).append("\n"); - continue; - } - //链式 - sb.append("\tprivate " + strs[1] + " " + strs[2] + ";\n\n"); - sb.append("\tpublic " + strs[1] + " " + strs[2] + "(){\n"); - sb.append("\t\treturn this." + strs[2] + ";\n\t}\n\n"); - sb.append("\tpublic " + className + " " + strs[2] + "(" + strs[1] + " " + strs[2] + "){\n"); - sb.append("\t\tthis." + strs[2] + " = " + strs[2] + ";\n"); - sb.append("\t\treturn this;\n\t}\n"); - } else { - sb.append(line).append("\n"); - } - } - //System.out.println(sb.toString()); - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (reader != null) { - try { - reader.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - BufferedWriter writer = null; - try { - writer = new BufferedWriter(new FileWriter(file)); - writer.write(sb.toString()); - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (writer != null) { - try { - writer.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } - - public static List allFiles(File file) { - List result = new ArrayList(); - if (file.isFile()) { - result.add(file); - } else if (file.isDirectory()) { - File[] files = file.listFiles(new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - if (dir.isDirectory()) { - return true; - } else if (name.toUpperCase().endsWith(".JAVA")) { - return true; - } - return false; - } - }); - for (File f : files) { - result.addAll(allFiles(f)); - } - } - return result; - } - - public static String getSrcPath() { - String basePath = getBasePath(); - return basePath + "src/main/java"; - } - - public static String getBasePath() { - String path = ChainUtil.class.getResource("/").getPath(); - if (path.startsWith("/")) { - path = path.substring(1); - } - if (path.indexOf("target1") > 0) { - path = path.substring(0, path.indexOf("target")); - } else if (path.indexOf("ECharts") > 0) { - path = path.substring(0, path.indexOf("ECharts")) + "Echarts/"; - } - return path; - } -} diff --git a/src/test/java/com/github/abel533/echarts/util/CommentsUtil.java b/src/test/java/com/github/abel533/echarts/util/CommentsUtil.java deleted file mode 100644 index 7f3bf44e..00000000 --- a/src/test/java/com/github/abel533/echarts/util/CommentsUtil.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.util; - -import java.io.*; - -/** - * 自动生成链式调用方法 - 仅针对本项目之前的代码 - * - * @author liuzh - */ -public class CommentsUtil { - public static final String[] EMPTY = new String[0]; - - public static void main(String[] args) { - //输出全部类 -// String srcPath = ChainUtil.getSrcPath(); -// File srcFoler = new File(srcPath); -// List files = ChainUtil.allFiles(srcFoler); -// for (File file : files) { -// commentsFile(file); -// } - commentsFile(new File("E:\\Git\\OpenSource\\ECharts\\src\\main\\java\\com\\github\\abel533\\echarts\\series\\EventRiver.java")); - commentsFile(new File("E:\\Git\\OpenSource\\ECharts\\src\\main\\java\\com\\github\\abel533\\echarts\\series\\event\\Detail.java")); - commentsFile(new File("E:\\Git\\OpenSource\\ECharts\\src\\main\\java\\com\\github\\abel533\\echarts\\series\\event\\Event.java")); - commentsFile(new File("E:\\Git\\OpenSource\\ECharts\\src\\main\\java\\com\\github\\abel533\\echarts\\series\\event\\Evolution.java")); - } - - public static void commentsFile(File file) { - BufferedReader reader = null; - StringBuffer sb = new StringBuffer(); - try { - reader = new BufferedReader(new FileReader(file)); - String line = null; - String className = file.getName(); - className = className.substring(0, className.lastIndexOf(".")); - String prevLine = null; - while ((line = reader.readLine()) != null) { - String tempLline = line; - if (tempLline.contains("private") || tempLline.contains("public") || tempLline.contains("protected")) { - if (prevLine == null || !prevLine.contains("*")) { - if (tempLline.contains("(") && tempLline.contains(")")) { - //分解参数 - tempLline = tempLline.trim(); - String[] ps = getParameter(tempLline); - if (ps == EMPTY) { - if (isConstructor(tempLline)) { - sb.append("\t/**\n\t * 构造函数 \n"); - } else { - sb.append("\t/**\n\t * 获取" + getMethodFieldName(tempLline) + "值 \n"); - } - } else { - String v = ""; - for (String p : ps) { - if (!v.equals("")) { - v += ","; - } - v += p; - } - if (isConstructor(tempLline)) { - sb.append("\t/**\n\t * 构造函数,参数:" + v + " \n\t * \n"); - } else { - sb.append("\t/**\n\t * 设置" + v + "值 \n\t * \n"); - } - for (String s : ps) { - - sb.append("\t * @param " + s + "\n"); - } - } - sb.append("\t */\n"); - tempLline = "\t" + tempLline; - } - } - } - sb.append(tempLline + "\n"); - prevLine = tempLline; - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (reader != null) { - try { - reader.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - BufferedWriter writer = null; - try { - writer = new BufferedWriter(new FileWriter(file)); - writer.write(sb.toString()); - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (writer != null) { - try { - writer.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } - - public static boolean isConstructor(String line){ - line = line.substring(0,line.indexOf("(")).trim(); - if (line.split(" ").length == 2) { - return true; - } - return false; - } - - public static String getMethodFieldName(String line) { - int end = line.lastIndexOf("("); - int start = line.lastIndexOf(" ", end); - String name = line.substring(start + 1, end); - if (name.startsWith("get")) { - name = name.substring(3); - name = name.substring(0, 1).toLowerCase() + name.substring(1); - } - return name; - } - - public static String[] getParameter(String line) { - if (line.contains("(") && line.contains(")")) { - //分解参数 - String all = line.substring(line.indexOf("(") + 1, line.lastIndexOf(")")); - if (all.equals("")) { - return EMPTY; - } - while (all.contains("<")) { - int start = all.indexOf("<"); - int end = all.indexOf(">", start); - all = all.substring(0, start) + all.substring(end + 1); - } - String[] alls = all.split(","); - String[] parameters = new String[alls.length]; - System.out.println("All:" + all); - for (int i = 0; i < alls.length; i++) { - System.out.println("\t" + alls[i]); - parameters[i] = alls[i].trim().split(" ")[1].trim(); - } - return parameters; - } - return EMPTY; - } -} diff --git a/src/test/java/com/github/abel533/echarts/util/EnhancedOption.java b/src/test/java/com/github/abel533/echarts/util/EnhancedOption.java deleted file mode 100644 index 251523d4..00000000 --- a/src/test/java/com/github/abel533/echarts/util/EnhancedOption.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2014-2015 abel533@gmail.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package com.github.abel533.echarts.util; - -import com.github.abel533.echarts.TestConfig; -import com.github.abel533.echarts.json.GsonOption; -import com.github.abel533.echarts.json.GsonUtil; -import com.github.abel533.echarts.json.OptionUtil; - -/** - * 增强的Option - 主要用于测试、演示 - * - * @author liuzh - */ -public class EnhancedOption extends GsonOption implements TestConfig { - private String filepath; - - /** - * 输出到控制台 - */ - public void print() { - GsonUtil.print(this); - } - - /** - * 输出到控制台 - */ - public void printPretty() { - GsonUtil.printPretty(this); - } - - /** - * 在浏览器中查看 - */ - public void view() { - if (!VIEW) { - return; - } - if (this.filepath != null) { - try { - OptionUtil.browse(this.filepath); - } catch (Exception e) { - this.filepath = OptionUtil.browse(this); - } - } else { - this.filepath = OptionUtil.browse(this); - } - } - - /** - * 导出到指定文件名 - * - * @param fileName - * @return 返回html路径 - */ - public String exportToHtml(String fileName) { - return exportToHtml(EXPORT_PATH, fileName); - } -} diff --git a/src/test/resources/config.js b/src/test/resources/config.js deleted file mode 100644 index 324d1bde..00000000 --- a/src/test/resources/config.js +++ /dev/null @@ -1,231 +0,0 @@ -/** - * echarts默认配置项 - * - * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。 - * @author Kener (@Kener-林峰, kener.linfeng@gmail.com) - * - */ -define(function() { - // 请原谅我这样写,这显然可以直接返回个对象,但那样的话outline就显示不出来了~~ - var config = { - // 图表类型 - CHART_TYPE_LINE: 'line', - CHART_TYPE_BAR: 'bar', - CHART_TYPE_SCATTER: 'scatter', - CHART_TYPE_PIE: 'pie', - CHART_TYPE_RADAR: 'radar', - CHART_TYPE_VENN: 'venn', - CHART_TYPE_TREEMAP: 'treemap', - CHART_TYPE_TREE: 'tree', - CHART_TYPE_MAP: 'map', - CHART_TYPE_K: 'k', - CHART_TYPE_ISLAND: 'island', - CHART_TYPE_FORCE: 'force', - CHART_TYPE_CHORD: 'chord', - CHART_TYPE_GAUGE: 'gauge', - CHART_TYPE_FUNNEL: 'funnel', - CHART_TYPE_EVENTRIVER: 'eventRiver', - CHART_TYPE_WORDCLOUD: 'wordCloud', - - // 组件类型 - COMPONENT_TYPE_TITLE: 'title', - COMPONENT_TYPE_LEGEND: 'legend', - COMPONENT_TYPE_DATARANGE: 'dataRange', - COMPONENT_TYPE_DATAVIEW: 'dataView', - COMPONENT_TYPE_DATAZOOM: 'dataZoom', - COMPONENT_TYPE_TOOLBOX: 'toolbox', - COMPONENT_TYPE_TOOLTIP: 'tooltip', - COMPONENT_TYPE_GRID: 'grid', - COMPONENT_TYPE_AXIS: 'axis', - COMPONENT_TYPE_POLAR: 'polar', - COMPONENT_TYPE_X_AXIS: 'xAxis', - COMPONENT_TYPE_Y_AXIS: 'yAxis', - COMPONENT_TYPE_AXIS_CATEGORY: 'categoryAxis', - COMPONENT_TYPE_AXIS_VALUE: 'valueAxis', - COMPONENT_TYPE_TIMELINE: 'timeline', - COMPONENT_TYPE_ROAMCONTROLLER: 'roamController', - - // 全图默认背景 - backgroundColor: 'rgba(0,0,0,0)', - - // 默认色板 - color: ['#ff7f50','#87cefa','#da70d6','#32cd32','#6495ed', - '#ff69b4','#ba55d3','#cd5c5c','#ffa500','#40e0d0', - '#1e90ff','#ff6347','#7b68ee','#00fa9a','#ffd700', - '#6699FF','#ff6666','#3cb371','#b8860b','#30e0e0'], - - markPoint: { - clickable: true, - symbol: 'pin', // 标注类型 - symbolSize: 10, // 标注大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2 - // symbolRotate: null, // 标注旋转控制 - large: false, - effect: { - show: false, - loop: true, - period: 15, // 运动周期,无单位,值越大越慢 - type: 'scale', // 可用为 scale | bounce - scaleSize: 2, // 放大倍数,以markPoint点size为基准 - bounceDistance: 10 // 跳动距离,单位px - // color: 'gold', - // shadowColor: 'rgba(255,215,0,0.8)', - // shadowBlur: 0 // 炫光模糊 - }, - itemStyle: { - normal: { - // color: 各异, - // borderColor: 各异, // 标注边线颜色,优先于color - borderWidth: 2, // 标注边线线宽,单位px,默认为1 - label: { - show: true, - // 标签文本格式器,同Tooltip.formatter,不支持回调 - // formatter: null, - position: 'inside' // 可选为'left'|'right'|'top'|'bottom' - // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE - } - }, - emphasis: { - // color: 各异 - label: { - show: true - // 标签文本格式器,同Tooltip.formatter,不支持回调 - // formatter: null, - // position: 'inside' // 'left'|'right'|'top'|'bottom' - // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE - } - } - } - }, - - markLine: { - clickable: true, - // 标线起始和结束的symbol介绍类型,如果都一样,可以直接传string - symbol: ['circle', 'arrow'], - // 标线起始和结束的symbol大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2 - symbolSize: [2, 4], - // 标线起始和结束的symbol旋转控制 - //symbolRotate: null, - //smooth: false, - smoothness: 0.2, // 平滑度 - precision: 2, - effect: { - show: false, - loop: true, - period: 15, // 运动周期,无单位,值越大越慢 - scaleSize: 2 // 放大倍数,以markLine线lineWidth为基准 - // color: 'gold', - // shadowColor: 'rgba(255,215,0,0.8)', - // shadowBlur: lineWidth * 2 // 炫光模糊,默认等于scaleSize计算所得 - }, - // 边捆绑 - bundling: { - enable: false, - // [0, 90] - maxTurningAngle: 45 - }, - itemStyle: { - normal: { - // color: 各异, // 标线主色,线色,symbol主色 - // borderColor: 随color, // 标线symbol边框颜色,优先于color - borderWidth: 1.5, // 标线symbol边框线宽,单位px,默认为2 - label: { - show: true, - // 标签文本格式器,同Tooltip.formatter,不支持回调 - // formatter: null, - // 可选为 'start'|'end'|'left'|'right'|'top'|'bottom' - position: 'end' - // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE - }, - lineStyle: { - // color: 随borderColor, // 主色,线色,优先级高于borderColor和color - // width: 随borderWidth, // 优先于borderWidth - type: 'dashed' - // shadowColor: 'rgba(0,0,0,0)', //默认透明 - // shadowBlur: 0, - // shadowOffsetX: 0, - // shadowOffsetY: 0 - } - }, - emphasis: { - // color: 各异 - label: { - show: false - // 标签文本格式器,同Tooltip.formatter,不支持回调 - // formatter: null, - // position: 'inside' // 'left'|'right'|'top'|'bottom' - // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE - }, - lineStyle: {} - } - } - }, - - // 主题,主题 - textStyle: { - decoration: 'none', - fontFamily: 'Arial, Verdana, sans-serif', - fontFamily2: '微软雅黑', // IE8- 字体模糊并且,不支持不同字体混排,额外指定一份 - fontSize: 12, - fontStyle: 'normal', - fontWeight: 'normal' - }, - - EVENT: { - // -------全局通用 - REFRESH: 'refresh', - RESTORE: 'restore', - RESIZE: 'resize', - CLICK: 'click', - DBLCLICK: 'dblclick', - HOVER: 'hover', - MOUSEOUT: 'mouseout', - //MOUSEWHEEL: 'mousewheel', - // -------业务交互逻辑 - DATA_CHANGED: 'dataChanged', - DATA_ZOOM: 'dataZoom', - DATA_RANGE: 'dataRange', - DATA_RANGE_SELECTED: 'dataRangeSelected', - DATA_RANGE_HOVERLINK: 'dataRangeHoverLink', - LEGEND_SELECTED: 'legendSelected', - LEGEND_HOVERLINK: 'legendHoverLink', - MAP_SELECTED: 'mapSelected', - PIE_SELECTED: 'pieSelected', - MAGIC_TYPE_CHANGED: 'magicTypeChanged', - DATA_VIEW_CHANGED: 'dataViewChanged', - TIMELINE_CHANGED: 'timelineChanged', - MAP_ROAM: 'mapRoam', - FORCE_LAYOUT_END: 'forceLayoutEnd', - // -------内部通信 - TOOLTIP_HOVER: 'tooltipHover', - TOOLTIP_IN_GRID: 'tooltipInGrid', - TOOLTIP_OUT_GRID: 'tooltipOutGrid', - ROAMCONTROLLER: 'roamController' - }, - DRAG_ENABLE_TIME: 120, // 降低图表内元素拖拽敏感度,单位ms,不建议外部干预 - EFFECT_ZLEVEL : 10, // 特效动画zlevel - // 主题,默认标志图形类型列表 - symbolList: [ - 'circle', 'rectangle', 'triangle', 'diamond', - 'emptyCircle', 'emptyRectangle', 'emptyTriangle', 'emptyDiamond' - ], - loadingEffect: 'spin', - loadingText: '数据读取中...', - noDataEffect: 'bubble', - noDataText: '暂无数据', - // noDataLoadingOption: null, - // 可计算特性配置,孤岛,提示颜色 - calculable: false, // 默认关闭可计算特性 - calculableColor: 'rgba(255,165,0,0.6)', // 拖拽提示边框颜色 - calculableHolderColor: '#ccc', // 可计算占位提示颜色 - nameConnector: ' & ', - valueConnector: ': ', - animation: true, // 过渡动画是否开启 - addDataAnimation: true, // 动态数据接口是否开启动画效果 - animationThreshold: 2000, // 动画元素阀值,产生的图形原素超过2000不出动画 - animationDuration: 2000, // 过渡动画参数:进入 - animationDurationUpdate: 500, // 过渡动画参数:更新 - animationEasing: 'ExponentialOut' //BounceOut - }; - - return config; -}); \ No newline at end of file diff --git a/src/test/resources/echarts.js b/src/test/resources/echarts.js deleted file mode 100644 index 6bd230b2..00000000 --- a/src/test/resources/echarts.js +++ /dev/null @@ -1,1759 +0,0 @@ -/*! - * ECharts, a javascript interactive chart library. - * - * Copyright (c) 2015, Baidu Inc. - * All rights reserved. - * - * LICENSE - * https://github.com/ecomfe/echarts/blob/master/LICENSE.txt - */ - -/** - * echarts - * - * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。 - * @author Kener (@Kener-林峰, kener.linfeng@gmail.com) - * - */ -define(function (require) { - var ecConfig = require('./config'); - var zrUtil = require('zrender/tool/util'); - var zrEvent = require('zrender/tool/event'); - - var self = {}; - - var _canvasSupported = require('zrender/tool/env').canvasSupported; - var _idBase = new Date() - 0; - var _instances = {}; // ECharts实例map索引 - var DOM_ATTRIBUTE_KEY = '_echarts_instance_'; - - self.version = '2.2.4'; - self.dependencies = { - zrender: '2.0.9' - }; - /** - * 入口方法 - */ - self.init = function (dom, theme) { - var zrender = require('zrender'); - if ((zrender.version.replace('.', '') - 0) < (self.dependencies.zrender.replace('.', '') - 0)) { - console.error( - 'ZRender ' + zrender.version - + ' is too old for ECharts ' + self.version - + '. Current version need ZRender ' - + self.dependencies.zrender + '+' - ); - } - - dom = dom instanceof Array ? dom[0] : dom; - - // dom与echarts实例映射索引 - var key = dom.getAttribute(DOM_ATTRIBUTE_KEY); - if (!key) { - key = _idBase++; - dom.setAttribute(DOM_ATTRIBUTE_KEY, key); - } - - if (_instances[key]) { - // 同一个dom上多次init,自动释放已有实例 - _instances[key].dispose(); - } - _instances[key] = new Echarts(dom); - _instances[key].id = key; - _instances[key].canvasSupported = _canvasSupported; - _instances[key].setTheme(theme); - - return _instances[key]; - }; - - /** - * 通过id获得ECharts实例,id可在实例化后读取 - */ - self.getInstanceById = function (key) { - return _instances[key]; - }; - - /** - * 消息中心 - */ - function MessageCenter() { - zrEvent.Dispatcher.call(this); - } - zrUtil.merge(MessageCenter.prototype, zrEvent.Dispatcher.prototype, true); - - /** - * 基于zrender实现Echarts接口层 - * @param {HtmlElement} dom 必要 - */ - function Echarts(dom) { - // Fxxk IE11 for breaking initialization without a warrant; - // Just set something to let it be! - // by kener 2015-01-09 - dom.innerHTML = ''; - this._themeConfig = {}; // zrUtil.clone(ecConfig); - - this.dom = dom; - // this._zr; - // this._option; // curOption clone - // this._optionRestore; // for restore; - // this._island; - // this._toolbox; - // this._timeline; - // this._refreshInside; // 内部刷新标志位 - - this._connected = false; - this._status = { // 用于图表间通信 - dragIn: false, - dragOut: false, - needRefresh: false - }; - this._curEventType = false; // 破循环信号灯 - this._chartList = []; // 图表实例 - - this._messageCenter = new MessageCenter(); - - this._messageCenterOutSide = new MessageCenter(); // Echarts层的外部消息中心,做Echarts层的消息转发 - - // resize方法经常被绑定到window.resize上,闭包一个this - this.resize = this.resize(); - - // 初始化::构造函数 - this._init(); - } - - /** - * ZRender EVENT - * - * @inner - * @const - * @type {Object} - */ - var ZR_EVENT = require('zrender/config').EVENT; - - /** - * 要绑定监听的zrender事件列表 - * - * @const - * @inner - * @type {Array} - */ - var ZR_EVENT_LISTENS = [ - 'CLICK', 'DBLCLICK', 'MOUSEOVER', 'MOUSEOUT', - 'DRAGSTART', 'DRAGEND', 'DRAGENTER', 'DRAGOVER', 'DRAGLEAVE', 'DROP' - ]; - - /** - * 对echarts的实例中的chartList属性成员,逐个进行方法调用,遍历顺序为逆序 - * 由于在事件触发的默认行为处理中,多次用到相同逻辑,所以抽象了该方法 - * 由于所有的调用场景里,最多只有两个参数,基于性能和体积考虑,这里就不使用call或者apply了 - * - * @inner - * @param {ECharts} ecInstance ECharts实例 - * @param {string} methodName 要调用的方法名 - * @param {*} arg0 调用参数1 - * @param {*} arg1 调用参数2 - * @param {*} arg2 调用参数3 - */ - function callChartListMethodReverse(ecInstance, methodName, arg0, arg1, arg2) { - var chartList = ecInstance._chartList; - var len = chartList.length; - - while (len--) { - var chart = chartList[len]; - if (typeof chart[methodName] === 'function') { - chart[methodName](arg0, arg1, arg2); - } - } - } - - Echarts.prototype = { - /** - * 初始化::构造函数 - */ - _init: function () { - var self = this; - var _zr = require('zrender').init(this.dom); - this._zr = _zr; - - // wrap: n,e,d,t for name event data this - this._messageCenter.dispatch = function(type, event, eventPackage, that) { - eventPackage = eventPackage || {}; - eventPackage.type = type; - eventPackage.event = event; - - self._messageCenter.dispatchWithContext(type, eventPackage, that); - self._messageCenterOutSide.dispatchWithContext(type, eventPackage, that); - - // 如下注掉的代码,@see: https://github.com/ecomfe/echarts-discuss/issues/3 - // if (type != 'HOVER' && type != 'MOUSEOUT') { // 频繁事件直接抛出 - // setTimeout(function(){ - // self._messageCenterOutSide.dispatchWithContext( - // type, eventPackage, that - // ); - // },50); - // } - // else { - // self._messageCenterOutSide.dispatchWithContext( - // type, eventPackage, that - // ); - // } - }; - - this._onevent = function(param){ - return self.__onevent(param); - }; - for (var e in ecConfig.EVENT) { - if (e != 'CLICK' && e != 'DBLCLICK' - && e != 'HOVER' && e != 'MOUSEOUT' && e != 'MAP_ROAM' - ) { - this._messageCenter.bind(ecConfig.EVENT[e], this._onevent, this); - } - } - - - var eventBehaviors = {}; - this._onzrevent = function (param) { - return self[eventBehaviors[ param.type ]](param); - }; - - // 挂载关心的事件 - for (var i = 0, len = ZR_EVENT_LISTENS.length; i < len; i++) { - var eventName = ZR_EVENT_LISTENS[i]; - var eventValue = ZR_EVENT[eventName]; - eventBehaviors[eventValue] = '_on' + eventName.toLowerCase(); - _zr.on(eventValue, this._onzrevent); - } - - this.chart = {}; // 图表索引 - this.component = {}; // 组件索引 - - // 内置图表 - // 孤岛 - var Island = require('./chart/island'); - this._island = new Island(this._themeConfig, this._messageCenter, _zr, {}, this); - this.chart.island = this._island; - - // 内置通用组件 - // 工具箱 - var Toolbox = require('./component/toolbox'); - this._toolbox = new Toolbox(this._themeConfig, this._messageCenter, _zr, {}, this); - this.component.toolbox = this._toolbox; - - var componentLibrary = require('./component'); - componentLibrary.define('title', require('./component/title')); - componentLibrary.define('tooltip', require('./component/tooltip')); - componentLibrary.define('legend', require('./component/legend')); - - if (_zr.getWidth() === 0 || _zr.getHeight() === 0) { - console.error('Dom’s width & height should be ready before init.'); - } - }, - - /** - * ECharts事件处理中心 - */ - __onevent: function (param){ - param.__echartsId = param.__echartsId || this.id; - - // 来自其他联动图表的事件 - var fromMyself = (param.__echartsId === this.id); - - if (!this._curEventType) { - this._curEventType = param.type; - } - - switch (param.type) { - case ecConfig.EVENT.LEGEND_SELECTED : - this._onlegendSelected(param); - break; - case ecConfig.EVENT.DATA_ZOOM : - if (!fromMyself) { - var dz = this.component.dataZoom; - if (dz) { - dz.silence(true); - dz.absoluteZoom(param.zoom); - dz.silence(false); - } - } - this._ondataZoom(param); - break; - case ecConfig.EVENT.DATA_RANGE : - fromMyself && this._ondataRange(param); - break; - case ecConfig.EVENT.MAGIC_TYPE_CHANGED : - if (!fromMyself) { - var tb = this.component.toolbox; - if (tb) { - tb.silence(true); - tb.setMagicType(param.magicType); - tb.silence(false); - } - } - this._onmagicTypeChanged(param); - break; - case ecConfig.EVENT.DATA_VIEW_CHANGED : - fromMyself && this._ondataViewChanged(param); - break; - case ecConfig.EVENT.TOOLTIP_HOVER : - fromMyself && this._tooltipHover(param); - break; - case ecConfig.EVENT.RESTORE : - this._onrestore(); - break; - case ecConfig.EVENT.REFRESH : - fromMyself && this._onrefresh(param); - break; - // 鼠标同步 - case ecConfig.EVENT.TOOLTIP_IN_GRID : - case ecConfig.EVENT.TOOLTIP_OUT_GRID : - if (!fromMyself) { - // 只处理来自外部的鼠标同步 - var grid = this.component.grid; - if (grid) { - this._zr.trigger( - 'mousemove', - { - connectTrigger: true, - zrenderX: grid.getX() + param.x * grid.getWidth(), - zrenderY: grid.getY() + param.y * grid.getHeight() - } - ); - } - } - else if (this._connected) { - // 来自自己,并且存在多图联动,空间坐标映射修改参数分发 - var grid = this.component.grid; - if (grid) { - param.x = (param.event.zrenderX - grid.getX()) / grid.getWidth(); - param.y = (param.event.zrenderY - grid.getY()) / grid.getHeight(); - } - } - break; - /* - case ecConfig.EVENT.RESIZE : - case ecConfig.EVENT.DATA_CHANGED : - case ecConfig.EVENT.PIE_SELECTED : - case ecConfig.EVENT.MAP_SELECTED : - break; - */ - } - - // 多图联动,只做自己的一级事件分发,避免级联事件循环 - if (this._connected && fromMyself && this._curEventType === param.type) { - for (var c in this._connected) { - this._connected[c].connectedEventHandler(param); - } - // 分发完毕后复位 - this._curEventType = null; - } - - if (!fromMyself || (!this._connected && fromMyself)) { // 处理了完联动事件复位 - this._curEventType = null; - } - }, - - /** - * 点击事件,响应zrender事件,包装后分发到Echarts层 - */ - _onclick: function (param) { - callChartListMethodReverse(this, 'onclick', param); - - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch( - ecConfig.EVENT.CLICK, - param.event, - ecData, - this - ); - } - } - }, - - /** - * 双击事件,响应zrender事件,包装后分发到Echarts层 - */ - _ondblclick: function (param) { - callChartListMethodReverse(this, 'ondblclick', param); - - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch( - ecConfig.EVENT.DBLCLICK, - param.event, - ecData, - this - ); - } - } - }, - - /** - * 鼠标移入事件,响应zrender事件,包装后分发到Echarts层 - */ - _onmouseover: function (param) { - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch( - ecConfig.EVENT.HOVER, - param.event, - ecData, - this - ); - } - } - }, - - /** - * 鼠标移出事件,响应zrender事件,包装后分发到Echarts层 - */ - _onmouseout: function (param) { - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch( - ecConfig.EVENT.MOUSEOUT, - param.event, - ecData, - this - ); - } - } - }, - - /** - * dragstart回调,可计算特性实现 - */ - _ondragstart: function (param) { - // 复位用于图表间通信拖拽标识 - this._status = { - dragIn: false, - dragOut: false, - needRefresh: false - }; - - callChartListMethodReverse(this, 'ondragstart', param); - }, - - /** - * dragging回调,可计算特性实现 - */ - _ondragenter: function (param) { - callChartListMethodReverse(this, 'ondragenter', param); - }, - - /** - * dragstart回调,可计算特性实现 - */ - _ondragover: function (param) { - callChartListMethodReverse(this, 'ondragover', param); - }, - - /** - * dragstart回调,可计算特性实现 - */ - _ondragleave: function (param) { - callChartListMethodReverse(this, 'ondragleave', param); - }, - - /** - * dragstart回调,可计算特性实现 - */ - _ondrop: function (param) { - callChartListMethodReverse(this, 'ondrop', param, this._status); - this._island.ondrop(param, this._status); - }, - - /** - * dragdone回调 ,可计算特性实现 - */ - _ondragend: function (param) { - callChartListMethodReverse(this, 'ondragend', param, this._status); - - this._timeline && this._timeline.ondragend(param, this._status); - this._island.ondragend(param, this._status); - - // 发生过重计算 - if (this._status.needRefresh) { - this._syncBackupData(this._option); - - var messageCenter = this._messageCenter; - messageCenter.dispatch( - ecConfig.EVENT.DATA_CHANGED, - param.event, - this._eventPackage(param.target), - this - ); - messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - } - }, - - /** - * 图例选择响应 - */ - _onlegendSelected: function (param) { - // 用于图表间通信 - this._status.needRefresh = false; - callChartListMethodReverse(this, 'onlegendSelected', param, this._status); - - if (this._status.needRefresh) { - this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - } - }, - - /** - * 数据区域缩放响应 - */ - _ondataZoom: function (param) { - // 用于图表间通信 - this._status.needRefresh = false; - callChartListMethodReverse(this, 'ondataZoom', param, this._status); - - if (this._status.needRefresh) { - this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - } - }, - - /** - * 值域漫游响应 - */ - _ondataRange: function (param) { - this._clearEffect(); - // 用于图表间通信 - this._status.needRefresh = false; - callChartListMethodReverse(this, 'ondataRange', param, this._status); - - // 没有相互影响,直接刷新即可 - if (this._status.needRefresh) { - this._zr.refreshNextFrame(); - } - }, - - /** - * 动态类型切换响应 - */ - _onmagicTypeChanged: function () { - this._clearEffect(); - this._render(this._toolbox.getMagicOption()); - }, - - /** - * 数据视图修改响应 - */ - _ondataViewChanged: function (param) { - this._syncBackupData(param.option); - this._messageCenter.dispatch( - ecConfig.EVENT.DATA_CHANGED, - null, - param, - this - ); - this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - }, - - /** - * tooltip与图表间通信 - */ - _tooltipHover: function (param) { - var tipShape = []; - callChartListMethodReverse(this, 'ontooltipHover', param, tipShape); - }, - - /** - * 还原 - */ - _onrestore: function () { - this.restore(); - }, - - /** - * 刷新 - */ - _onrefresh: function (param) { - this._refreshInside = true; - this.refresh(param); - this._refreshInside = false; - }, - - /** - * 数据修改后的反向同步dataZoom持有的备份数据 - */ - _syncBackupData: function (curOption) { - this.component.dataZoom && this.component.dataZoom.syncBackupData(curOption); - }, - - /** - * 打包Echarts层的事件附件 - */ - _eventPackage: function (target) { - if (target) { - var ecData = require('./util/ecData'); - - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - - dataIndex = seriesIndex != -1 && this.component.dataZoom - ? this.component.dataZoom.getRealDataIndex( - seriesIndex, - dataIndex - ) - : dataIndex; - return { - seriesIndex: seriesIndex, - seriesName: (ecData.get(target, 'series') || {}).name, - dataIndex: dataIndex, - data: ecData.get(target, 'data'), - name: ecData.get(target, 'name'), - value: ecData.get(target, 'value'), - special: ecData.get(target, 'special') - }; - } - return; - }, - - _noDataCheck: function(magicOption) { - var series = magicOption.series; - - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type == ecConfig.CHART_TYPE_MAP - || (series[i].data && series[i].data.length > 0) - || (series[i].markPoint && series[i].markPoint.data && series[i].markPoint.data.length > 0) - || (series[i].markLine && series[i].markLine.data && series[i].markLine.data.length > 0) - || (series[i].nodes && series[i].nodes.length > 0) - || (series[i].links && series[i].links.length > 0) - || (series[i].matrix && series[i].matrix.length > 0) - || (series[i].eventList && series[i].eventList.length > 0) - ) { - return false; // 存在任意数据则为非空数据 - } - } - var loadOption = (this._option && this._option.noDataLoadingOption) - || this._themeConfig.noDataLoadingOption - || ecConfig.noDataLoadingOption - || { - text: (this._option && this._option.noDataText) - || this._themeConfig.noDataText - || ecConfig.noDataText, - effect: (this._option && this._option.noDataEffect) - || this._themeConfig.noDataEffect - || ecConfig.noDataEffect - }; - // 空数据 - this.clear(); - this.showLoading(loadOption); - return true; - }, - - /** - * 图表渲染 - */ - _render: function (magicOption) { - this._mergeGlobalConifg(magicOption); - - if (this._noDataCheck(magicOption)) { - return; - } - - var bgColor = magicOption.backgroundColor; - if (bgColor) { - if (!_canvasSupported - && bgColor.indexOf('rgba') != -1 - ) { - // IE6~8对RGBA的处理,filter会带来其他颜色的影响 - var cList = bgColor.split(','); - this.dom.style.filter = 'alpha(opacity=' + - cList[3].substring(0, cList[3].lastIndexOf(')')) * 100 - + ')'; - cList.length = 3; - cList[0] = cList[0].replace('a', ''); - this.dom.style.backgroundColor = cList.join(',') + ')'; - } - else { - this.dom.style.backgroundColor = bgColor; - } - } - - this._zr.clearAnimation(); - this._chartList = []; - - var chartLibrary = require('./chart'); - var componentLibrary = require('./component'); - - if (magicOption.xAxis || magicOption.yAxis) { - magicOption.grid = magicOption.grid || {}; - magicOption.dataZoom = magicOption.dataZoom || {}; - } - - var componentList = [ - 'title', 'legend', 'tooltip', 'dataRange', 'roamController', - 'grid', 'dataZoom', 'xAxis', 'yAxis', 'polar' - ]; - - var ComponentClass; - var componentType; - var component; - for (var i = 0, l = componentList.length; i < l; i++) { - componentType = componentList[i]; - component = this.component[componentType]; - - if (magicOption[componentType]) { - if (component) { - component.refresh && component.refresh(magicOption); - } - else { - ComponentClass = componentLibrary.get( - /^[xy]Axis$/.test(componentType) ? 'axis' : componentType - ); - component = new ComponentClass( - this._themeConfig, this._messageCenter, this._zr, - magicOption, this, componentType - ); - this.component[componentType] = component; - } - this._chartList.push(component); - } - else if (component) { - component.dispose(); - this.component[componentType] = null; - delete this.component[componentType]; - } - } - - var ChartClass; - var chartType; - var chart; - var chartMap = {}; // 记录已经初始化的图表 - for (var i = 0, l = magicOption.series.length; i < l; i++) { - chartType = magicOption.series[i].type; - if (!chartType) { - console.error('series[' + i + '] chart type has not been defined.'); - continue; - } - - if (!chartMap[chartType]) { - chartMap[chartType] = true; - ChartClass = chartLibrary.get(chartType); - if (ChartClass) { - if (this.chart[chartType]) { - chart = this.chart[chartType]; - chart.refresh(magicOption); - } - else { - chart = new ChartClass( - this._themeConfig, this._messageCenter, this._zr, - magicOption, this - ); - } - this._chartList.push(chart); - this.chart[chartType] = chart; - } - else { - console.error(chartType + ' has not been required.'); - } - } - } - - // 已有实例但新option不带这类图表的实例释放 - for (chartType in this.chart) { - if (chartType != ecConfig.CHART_TYPE_ISLAND && !chartMap[chartType]) { - this.chart[chartType].dispose(); - this.chart[chartType] = null; - delete this.chart[chartType]; - } - } - - this.component.grid && this.component.grid.refixAxisShape(this.component); - - this._island.refresh(magicOption); - this._toolbox.refresh(magicOption); - - magicOption.animation && !magicOption.renderAsImage - ? this._zr.refresh() - : this._zr.render(); - - var imgId = 'IMG' + this.id; - var img = document.getElementById(imgId); - if (magicOption.renderAsImage && _canvasSupported) { - // IE8- 不支持图片渲染形式 - if (img) { - // 已经渲染过则更新显示 - img.src = this.getDataURL(magicOption.renderAsImage); - } - else { - // 没有渲染过插入img dom - img = this.getImage(magicOption.renderAsImage); - img.id = imgId; - img.style.position = 'absolute'; - img.style.left = 0; - img.style.top = 0; - this.dom.firstChild.appendChild(img); - } - this.un(); - this._zr.un(); - this._disposeChartList(); - this._zr.clear(); - } - else if (img) { - // 删除可能存在的img - img.parentNode.removeChild(img); - } - img = null; - - this._option = magicOption; - }, - - /** - * 还原 - */ - restore: function () { - this._clearEffect(); - this._option = zrUtil.clone(this._optionRestore); - this._disposeChartList(); - this._island.clear(); - this._toolbox.reset(this._option, true); - this._render(this._option); - }, - - /** - * 刷新 - * @param {Object=} param,可选参数,用于附带option,内部同步用,外部不建议带入数据修改,无法同步 - */ - refresh: function (param) { - this._clearEffect(); - param = param || {}; - var magicOption = param.option; - - // 外部调用的refresh且有option带入 - if (!this._refreshInside && magicOption) { - // 做简单的差异合并去同步内部持有的数据克隆,不建议带入数据 - // 开启数据区域缩放、拖拽重计算、数据视图可编辑模式情况下,当用户产生了数据变化后无法同步 - // 如有带入option存在数据变化,请重新setOption - magicOption = this.getOption(); - zrUtil.merge(magicOption, param.option, true); - zrUtil.merge(this._optionRestore, param.option, true); - this._toolbox.reset(magicOption); - } - - this._island.refresh(magicOption); - this._toolbox.refresh(magicOption); - - // 停止动画 - this._zr.clearAnimation(); - // 先来后到,安顺序刷新各种图表,图表内部refresh优化检查magicOption,无需更新则不更新~ - for (var i = 0, l = this._chartList.length; i < l; i++) { - this._chartList[i].refresh && this._chartList[i].refresh(magicOption); - } - this.component.grid && this.component.grid.refixAxisShape(this.component); - this._zr.refresh(); - }, - - /** - * 释放图表实例 - */ - _disposeChartList: function () { - this._clearEffect(); - - // 停止动画 - this._zr.clearAnimation(); - - var len = this._chartList.length; - while (len--) { - var chart = this._chartList[len]; - - if (chart) { - var chartType = chart.type; - this.chart[chartType] && delete this.chart[chartType]; - this.component[chartType] && delete this.component[chartType]; - chart.dispose && chart.dispose(); - } - } - - this._chartList = []; - }, - - /** - * 非图表全局属性merge~~ - */ - _mergeGlobalConifg: function (magicOption) { - var mergeList = [ - // 背景颜色 - 'backgroundColor', - - // 拖拽重计算相关 - 'calculable', 'calculableColor', 'calculableHolderColor', - - // 孤岛显示连接符 - 'nameConnector', 'valueConnector', - - // 动画相关 - 'animation', 'animationThreshold', - 'animationDuration', 'animationDurationUpdate', - 'animationEasing', 'addDataAnimation', - - // 默认标志图形类型列表 - 'symbolList', - - // 降低图表内元素拖拽敏感度,单位ms,不建议外部干预 - 'DRAG_ENABLE_TIME' - ]; - - var len = mergeList.length; - while (len--) { - var mergeItem = mergeList[len]; - if (magicOption[mergeItem] == null) { - magicOption[mergeItem] = this._themeConfig[mergeItem] != null - ? this._themeConfig[mergeItem] - : ecConfig[mergeItem]; - } - } - - // 数值系列的颜色列表,不传则采用内置颜色,可配数组,借用zrender实例注入,会有冲突风险,先这样 - var themeColor = magicOption.color; - if (!(themeColor && themeColor.length)) { - themeColor = this._themeConfig.color || ecConfig.color; - } - - this._zr.getColor = function (idx) { - var zrColor = require('zrender/tool/color'); - return zrColor.getColor(idx, themeColor); - }; - - if (!_canvasSupported) { - // 不支持Canvas的强制关闭动画 - magicOption.animation = false; - magicOption.addDataAnimation = false; - } - }, - - /** - * 万能接口,配置图表实例任何可配置选项,多次调用时option选项做merge处理 - * @param {Object} option - * @param {boolean=} notMerge 多次调用时option选项是默认是合并(merge)的, - * 如果不需求,可以通过notMerger参数为true阻止与上次option的合并 - */ - setOption: function (option, notMerge) { - if (!option.timeline) { - return this._setOption(option, notMerge); - } - else { - return this._setTimelineOption(option); - } - }, - - /** - * 万能接口,配置图表实例任何可配置选项,多次调用时option选项做merge处理 - * @param {Object} option - * @param {boolean=} notMerge 多次调用时option选项是默认是合并(merge)的, - * 如果不需求,可以通过notMerger参数为true阻止与上次option的合并 - * @param {boolean=} 默认false。keepTimeLine 表示从timeline组件调用而来, - * 表示当前行为是timeline的数据切换,保持timeline, - * 反之销毁timeline。 详见Issue #1601 - */ - _setOption: function (option, notMerge, keepTimeLine) { - if (!notMerge && this._option) { - this._option = zrUtil.merge( - this.getOption(), - zrUtil.clone(option), - true - ); - } - else { - this._option = zrUtil.clone(option); - !keepTimeLine && this._timeline && this._timeline.dispose(); - } - - this._optionRestore = zrUtil.clone(this._option); - - if (!this._option.series || this._option.series.length === 0) { - this._zr.clear(); - return; - } - - if (this.component.dataZoom // 存在dataZoom控件 - && (this._option.dataZoom // 并且新option也存在 - || (this._option.toolbox - && this._option.toolbox.feature - && this._option.toolbox.feature.dataZoom - && this._option.toolbox.feature.dataZoom.show - ) - ) - ) { - // dataZoom同步数据 - this.component.dataZoom.syncOption(this._option); - } - this._toolbox.reset(this._option); - this._render(this._option); - return this; - }, - - /** - * 返回内部持有的当前显示option克隆 - */ - getOption: function () { - var magicOption = zrUtil.clone(this._option); - - var self = this; - function restoreOption(prop) { - var restoreSource = self._optionRestore[prop]; - - if (restoreSource) { - if (restoreSource instanceof Array) { - var len = restoreSource.length; - while (len--) { - magicOption[prop][len].data = zrUtil.clone( - restoreSource[len].data - ); - } - } - else { - magicOption[prop].data = zrUtil.clone(restoreSource.data); - } - } - } - - // 横轴数据还原 - restoreOption('xAxis'); - - // 纵轴数据还原 - restoreOption('yAxis'); - - // 系列数据还原 - restoreOption('series'); - - return magicOption; - }, - - /** - * 数据设置快捷接口 - * @param {Array} series - * @param {boolean=} notMerge 多次调用时option选项是默认是合并(merge)的, - * 如果不需求,可以通过notMerger参数为true阻止与上次option的合并。 - */ - setSeries: function (series, notMerge) { - if (!notMerge) { - this.setOption({series: series}); - } - else { - this._option.series = series; - this.setOption(this._option, notMerge); - } - return this; - }, - - /** - * 返回内部持有的当前显示series克隆 - */ - getSeries: function () { - return this.getOption().series; - }, - - /** - * timelineOption接口,配置图表实例任何可配置选项 - * @param {Object} option - */ - _setTimelineOption: function(option) { - this._timeline && this._timeline.dispose(); - var Timeline = require('./component/timeline'); - var timeline = new Timeline( - this._themeConfig, this._messageCenter, this._zr, option, this - ); - this._timeline = timeline; - this.component.timeline = this._timeline; - - return this; - }, - - /** - * 动态数据添加 - * 形参为单组数据参数,多组时为数据,内容同[seriesIdx, data, isShift, additionData] - * @param {number} seriesIdx 系列索引 - * @param {number | Object} data 增加数据 - * @param {boolean=} isHead 是否队头加入,默认,不指定或false时为队尾插入 - * @param {boolean=} dataGrow 是否增长数据队列长度,默认,不指定或false时移出目标数组对位数据 - * @param {string=} additionData 是否增加类目轴(饼图为图例)数据,附加操作同isHead和dataGrow - */ - addData: function (seriesIdx, data, isHead, dataGrow, additionData) { - var params = seriesIdx instanceof Array - ? seriesIdx - : [[seriesIdx, data, isHead, dataGrow, additionData]]; - - //this._optionRestore 和 magicOption 都要同步 - var magicOption = this.getOption(); - var optionRestore = this._optionRestore; - var self = this; - for (var i = 0, l = params.length; i < l; i++) { - seriesIdx = params[i][0]; - data = params[i][1]; - isHead = params[i][2]; - dataGrow = params[i][3]; - additionData = params[i][4]; - - var seriesItem = optionRestore.series[seriesIdx]; - var inMethod = isHead ? 'unshift' : 'push'; - var outMethod = isHead ? 'pop' : 'shift'; - if (seriesItem) { - var seriesItemData = seriesItem.data; - var mSeriesItemData = magicOption.series[seriesIdx].data; - - seriesItemData[inMethod](data); - mSeriesItemData[inMethod](data); - if (!dataGrow) { - seriesItemData[outMethod](); - data = mSeriesItemData[outMethod](); - } - - if (additionData != null) { - var legend; - var legendData; - - if (seriesItem.type === ecConfig.CHART_TYPE_PIE - && (legend = optionRestore.legend) - && (legendData = legend.data) - ) { - var mLegendData = magicOption.legend.data; - legendData[inMethod](additionData); - mLegendData[inMethod](additionData); - - if (!dataGrow) { - var legendDataIdx = zrUtil.indexOf(legendData, data.name); - legendDataIdx != -1 && legendData.splice(legendDataIdx, 1); - - legendDataIdx = zrUtil.indexOf(mLegendData, data.name); - legendDataIdx != -1 && mLegendData.splice(legendDataIdx, 1); - } - } - else if (optionRestore.xAxis != null && optionRestore.yAxis != null) { - // x轴类目 - var axisData; - var mAxisData; - var axisIdx = seriesItem.xAxisIndex || 0; - - if (optionRestore.xAxis[axisIdx].type == null - || optionRestore.xAxis[axisIdx].type === 'category' - ) { - axisData = optionRestore.xAxis[axisIdx].data; - mAxisData = magicOption.xAxis[axisIdx].data; - - axisData[inMethod](additionData); - mAxisData[inMethod](additionData); - if (!dataGrow) { - axisData[outMethod](); - mAxisData[outMethod](); - } - } - - // y轴类目 - axisIdx = seriesItem.yAxisIndex || 0; - if (optionRestore.yAxis[axisIdx].type === 'category') { - axisData = optionRestore.yAxis[axisIdx].data; - mAxisData = magicOption.yAxis[axisIdx].data; - - axisData[inMethod](additionData); - mAxisData[inMethod](additionData); - if (!dataGrow) { - axisData[outMethod](); - mAxisData[outMethod](); - } - } - } - } - - // 同步图表内状态,动画需要 - this._option.series[seriesIdx].data = magicOption.series[seriesIdx].data; - } - } - - this._zr.clearAnimation(); - var chartList = this._chartList; - var chartAnimationCount = 0; - var chartAnimationDone = function () { - chartAnimationCount--; - if (chartAnimationCount === 0) { - animationDone(); - } - }; - for (var i = 0, l = chartList.length; i < l; i++) { - if (magicOption.addDataAnimation && chartList[i].addDataAnimation) { - chartAnimationCount++; - chartList[i].addDataAnimation(params, chartAnimationDone); - } - } - - // dataZoom同步数据 - this.component.dataZoom && this.component.dataZoom.syncOption(magicOption); - - this._option = magicOption; - function animationDone() { - if (!self._zr) { - return; // 已经被释放 - } - self._zr.clearAnimation(); - for (var i = 0, l = chartList.length; i < l; i++) { - // 有addData动画就去掉过渡动画 - chartList[i].motionlessOnce = - magicOption.addDataAnimation && chartList[i].addDataAnimation; - } - self._messageCenter.dispatch( - ecConfig.EVENT.REFRESH, - null, - {option: magicOption}, - self - ); - } - - if (!magicOption.addDataAnimation) { - setTimeout(animationDone, 0); - } - return this; - }, - - /** - * 动态[标注 | 标线]添加 - * @param {number} seriesIdx 系列索引 - * @param {Object} markData [标注 | 标线]对象,支持多个 - */ - addMarkPoint: function (seriesIdx, markData) { - return this._addMark(seriesIdx, markData, 'markPoint'); - }, - - addMarkLine: function (seriesIdx, markData) { - return this._addMark(seriesIdx, markData, 'markLine'); - }, - - _addMark: function (seriesIdx, markData, markType) { - var series = this._option.series; - var seriesItem; - - if (series && (seriesItem = series[seriesIdx])) { - var seriesR = this._optionRestore.series; - var seriesRItem = seriesR[seriesIdx]; - var markOpt = seriesItem[markType]; - var markOptR = seriesRItem[markType]; - - markOpt = seriesItem[markType] = markOpt || {data: []}; - markOptR = seriesRItem[markType] = markOptR || {data: []}; - - for (var key in markData) { - if (key === 'data') { - // 数据concat - markOpt.data = markOpt.data.concat(markData.data); - markOptR.data = markOptR.data.concat(markData.data); - } - else if (typeof markData[key] != 'object' || markOpt[key] == null) { - // 简单类型或新值直接赋值 - markOpt[key] = markOptR[key] = markData[key]; - } - else { - // 非数据的复杂对象merge - zrUtil.merge(markOpt[key], markData[key], true); - zrUtil.merge(markOptR[key], markData[key], true); - } - } - - var chart = this.chart[seriesItem.type]; - chart && chart.addMark(seriesIdx, markData, markType); - } - - return this; - }, - - /** - * 动态[标注 | 标线]删除 - * @param {number} seriesIdx 系列索引 - * @param {string} markName [标注 | 标线]名称 - */ - delMarkPoint: function (seriesIdx, markName) { - return this._delMark(seriesIdx, markName, 'markPoint'); - }, - - delMarkLine: function (seriesIdx, markName) { - return this._delMark(seriesIdx, markName, 'markLine'); - }, - - _delMark: function (seriesIdx, markName, markType) { - var series = this._option.series; - var seriesItem; - var mark; - var dataArray; - - if (!( - series - && (seriesItem = series[seriesIdx]) - && (mark = seriesItem[markType]) - && (dataArray = mark.data) - ) - ) { - return this; - } - - markName = markName.split(' > '); - var targetIndex = -1; - - for (var i = 0, l = dataArray.length; i < l; i++) { - var dataItem = dataArray[i]; - if (dataItem instanceof Array) { - if (dataItem[0].name === markName[0] - && dataItem[1].name === markName[1] - ) { - targetIndex = i; - break; - } - } - else if (dataItem.name === markName[0]) { - targetIndex = i; - break; - } - } - - if (targetIndex > -1) { - dataArray.splice(targetIndex, 1); - this._optionRestore.series[seriesIdx][markType].data.splice(targetIndex, 1); - - var chart = this.chart[seriesItem.type]; - chart && chart.delMark(seriesIdx, markName.join(' > '), markType); - } - - return this; - }, - - /** - * 获取当前dom - */ - getDom: function () { - return this.dom; - }, - - /** - * 获取当前zrender实例,可用于添加额为的shape和深度控制 - */ - getZrender: function () { - return this._zr; - }, - - /** - * 获取Base64图片dataURL - * @param {string} imgType 图片类型,支持png|jpeg,默认为png - * @return imgDataURL - */ - getDataURL: function (imgType) { - if (!_canvasSupported) { - return ''; - } - - if (this._chartList.length === 0) { - // 渲染为图片 - var imgId = 'IMG' + this.id; - var img = document.getElementById(imgId); - if (img) { - return img.src; - } - } - - // 清除可能存在的tooltip元素 - var tooltip = this.component.tooltip; - tooltip && tooltip.hideTip(); - - switch (imgType) { - case 'jpeg': - break; - default: - imgType = 'png'; - } - - var bgColor = this._option.backgroundColor; - if (bgColor && bgColor.replace(' ','') === 'rgba(0,0,0,0)') { - bgColor = '#fff'; - } - - return this._zr.toDataURL('image/' + imgType, bgColor); - }, - - /** - * 获取img - * @param {string} imgType 图片类型,支持png|jpeg,默认为png - * @return img dom - */ - getImage: function (imgType) { - var title = this._optionRestore.title; - var imgDom = document.createElement('img'); - imgDom.src = this.getDataURL(imgType); - imgDom.title = (title && title.text) || 'ECharts'; - return imgDom; - }, - - /** - * 获取多图联动的Base64图片dataURL - * @param {string} imgType 图片类型,支持png|jpeg,默认为png - * @return imgDataURL - */ - getConnectedDataURL: function (imgType) { - if (!this.isConnected()) { - return this.getDataURL(imgType); - } - - var tempDom = this.dom; - var imgList = { - 'self': { - img: this.getDataURL(imgType), - left: tempDom.offsetLeft, - top: tempDom.offsetTop, - right: tempDom.offsetLeft + tempDom.offsetWidth, - bottom: tempDom.offsetTop + tempDom.offsetHeight - } - }; - - var minLeft = imgList.self.left; - var minTop = imgList.self.top; - var maxRight = imgList.self.right; - var maxBottom = imgList.self.bottom; - - for (var c in this._connected) { - tempDom = this._connected[c].getDom(); - imgList[c] = { - img: this._connected[c].getDataURL(imgType), - left: tempDom.offsetLeft, - top: tempDom.offsetTop, - right: tempDom.offsetLeft + tempDom.offsetWidth, - bottom: tempDom.offsetTop + tempDom.offsetHeight - }; - - minLeft = Math.min(minLeft, imgList[c].left); - minTop = Math.min(minTop, imgList[c].top); - maxRight = Math.max(maxRight, imgList[c].right); - maxBottom = Math.max(maxBottom, imgList[c].bottom); - } - - var zrDom = document.createElement('div'); - zrDom.style.position = 'absolute'; - zrDom.style.left = '-4000px'; - zrDom.style.width = (maxRight - minLeft) + 'px'; - zrDom.style.height = (maxBottom - minTop) + 'px'; - document.body.appendChild(zrDom); - - var zrImg = require('zrender').init(zrDom); - - var ImageShape = require('zrender/shape/Image'); - for (var c in imgList) { - zrImg.addShape(new ImageShape({ - style: { - x: imgList[c].left - minLeft, - y: imgList[c].top - minTop, - image: imgList[c].img - } - })); - } - - zrImg.render(); - var bgColor = this._option.backgroundColor; - if (bgColor && bgColor.replace(/ /g, '') === 'rgba(0,0,0,0)') { - bgColor = '#fff'; - } - - var image = zrImg.toDataURL('image/png', bgColor); - - setTimeout(function () { - zrImg.dispose(); - zrDom.parentNode.removeChild(zrDom); - zrDom = null; - }, 100); - - return image; - }, - - /** - * 获取多图联动的img - * @param {string} imgType 图片类型,支持png|jpeg,默认为png - * @return img dom - */ - getConnectedImage: function (imgType) { - var title = this._optionRestore.title; - var imgDom = document.createElement('img'); - imgDom.src = this.getConnectedDataURL(imgType); - imgDom.title = (title && title.text) || 'ECharts'; - return imgDom; - }, - - /** - * 外部接口绑定事件 - * @param {Object} eventName 事件名称 - * @param {Object} eventListener 事件响应函数 - */ - on: function (eventName, eventListener) { - this._messageCenterOutSide.bind(eventName, eventListener, this); - return this; - }, - - /** - * 外部接口解除事件绑定 - * @param {Object} eventName 事件名称 - * @param {Object} eventListener 事件响应函数 - */ - un: function (eventName, eventListener) { - this._messageCenterOutSide.unbind(eventName, eventListener); - return this; - }, - - /** - * 多图联动 - * @param connectTarget{ECharts | Array } connectTarget 联动目标 - */ - connect: function (connectTarget) { - if (!connectTarget) { - return this; - } - - if (!this._connected) { - this._connected = {}; - } - - if (connectTarget instanceof Array) { - for (var i = 0, l = connectTarget.length; i < l; i++) { - this._connected[connectTarget[i].id] = connectTarget[i]; - } - } - else { - this._connected[connectTarget.id] = connectTarget; - } - - return this; - }, - - /** - * 解除多图联动 - * @param connectTarget{ECharts | Array } connectTarget 解除联动目标 - */ - disConnect: function (connectTarget) { - if (!connectTarget || !this._connected) { - return this; - } - - if (connectTarget instanceof Array) { - for (var i = 0, l = connectTarget.length; i < l; i++) { - delete this._connected[connectTarget[i].id]; - } - } - else { - delete this._connected[connectTarget.id]; - } - - for (var k in this._connected) { - return k, this; // 非空 - } - - // 空,转为标志位 - this._connected = false; - return this; - }, - - /** - * 联动事件响应 - */ - connectedEventHandler: function (param) { - if (param.__echartsId != this.id) { - // 来自其他联动图表的事件 - this._onevent(param); - } - }, - - /** - * 是否存在多图联动 - */ - isConnected: function () { - return !!this._connected; - }, - - /** - * 显示loading过渡 - * @param {Object} loadingOption - */ - showLoading: function (loadingOption) { - var effectList = { - bar: require('zrender/loadingEffect/Bar'), - bubble: require('zrender/loadingEffect/Bubble'), - dynamicLine: require('zrender/loadingEffect/DynamicLine'), - ring: require('zrender/loadingEffect/Ring'), - spin: require('zrender/loadingEffect/Spin'), - whirling: require('zrender/loadingEffect/Whirling') - }; - this._toolbox.hideDataView(); - - loadingOption = loadingOption || {}; - - var textStyle = loadingOption.textStyle || {}; - loadingOption.textStyle = textStyle; - - var finalTextStyle = zrUtil.merge( - zrUtil.merge( - zrUtil.clone(textStyle), - this._themeConfig.textStyle - ), - ecConfig.textStyle - ); - - textStyle.textFont = finalTextStyle.fontStyle + ' ' - + finalTextStyle.fontWeight + ' ' - + finalTextStyle.fontSize + 'px ' - + finalTextStyle.fontFamily; - - textStyle.text = loadingOption.text - || (this._option && this._option.loadingText) - || this._themeConfig.loadingText - || ecConfig.loadingText; - - if (loadingOption.x != null) { - textStyle.x = loadingOption.x; - } - if (loadingOption.y != null) { - textStyle.y = loadingOption.y; - } - - loadingOption.effectOption = loadingOption.effectOption || {}; - loadingOption.effectOption.textStyle = textStyle; - - var Effect = loadingOption.effect; - if (typeof Effect === 'string' || Effect == null) { - Effect = effectList[ - loadingOption.effect - || (this._option && this._option.loadingEffect) - || this._themeConfig.loadingEffect - || ecConfig.loadingEffect - ] - || effectList.spin; - } - this._zr.showLoading(new Effect(loadingOption.effectOption)); - return this; - }, - - /** - * 隐藏loading过渡 - */ - hideLoading: function () { - this._zr.hideLoading(); - return this; - }, - - /** - * 主题设置 - */ - setTheme: function (theme) { - if (theme) { - if (typeof theme === 'string') { - // 默认主题 - switch (theme) { - case 'macarons': - theme = require('./theme/macarons'); - break; - case 'infographic': - theme = require('./theme/infographic'); - break; - default: - theme = {}; // require('./theme/default'); - } - } - else { - theme = theme || {}; - } - - // // 复位默认配置 - // // this._themeConfig会被别的对象引用持有 - // // 所以不能改成this._themeConfig = {}; - // for (var key in this._themeConfig) { - // delete this._themeConfig[key]; - // } - // for (var key in ecConfig) { - // this._themeConfig[key] = zrUtil.clone(ecConfig[key]); - // } - - // // 颜色数组随theme,不merge - // theme.color && (this._themeConfig.color = []); - - // // 默认标志图形类型列表,不merge - // theme.symbolList && (this._themeConfig.symbolList = []); - - // // 应用新主题 - // zrUtil.merge(this._themeConfig, zrUtil.clone(theme), true); - this._themeConfig = theme; - } - - if (!_canvasSupported) { // IE8- - var textStyle = this._themeConfig.textStyle; - textStyle && textStyle.fontFamily && textStyle.fontFamily2 - && (textStyle.fontFamily = textStyle.fontFamily2); - - textStyle = ecConfig.textStyle; - textStyle.fontFamily = textStyle.fontFamily2; - } - - this._timeline && this._timeline.setTheme(true); - this._optionRestore && this.restore(); - }, - - /** - * 视图区域大小变化更新,不默认绑定,供使用方按需调用 - */ - resize: function () { - var self = this; - return function(){ - self._clearEffect(); - self._zr.resize(); - if (self._option && self._option.renderAsImage && _canvasSupported) { - // 渲染为图片重走render模式 - self._render(self._option); - return self; - } - // 停止动画 - self._zr.clearAnimation(); - self._island.resize(); - self._toolbox.resize(); - self._timeline && self._timeline.resize(); - // 先来后到,不能仅刷新自己,也不能在上一个循环中刷新,如坐标系数据改变会影响其他图表的大小 - // 所以安顺序刷新各种图表,图表内部refresh优化无需更新则不更新~ - for (var i = 0, l = self._chartList.length; i < l; i++) { - self._chartList[i].resize && self._chartList[i].resize(); - } - self.component.grid && self.component.grid.refixAxisShape(self.component); - self._zr.refresh(); - self._messageCenter.dispatch(ecConfig.EVENT.RESIZE, null, null, self); - return self; - }; - }, - - _clearEffect: function() { - this._zr.modLayer(ecConfig.EFFECT_ZLEVEL, { motionBlur: false }); - this._zr.painter.clearLayer(ecConfig.EFFECT_ZLEVEL); - }, - - /** - * 清除已渲染内容 ,clear后echarts实例可用 - */ - clear: function () { - this._disposeChartList(); - this._zr.clear(); - this._option = {}; - this._optionRestore = {}; - this.dom.style.backgroundColor = null; - return this; - }, - - /** - * 释放,dispose后echarts实例不可用 - */ - dispose: function () { - var key = this.dom.getAttribute(DOM_ATTRIBUTE_KEY); - key && delete _instances[key]; - - this._island.dispose(); - this._toolbox.dispose(); - this._timeline && this._timeline.dispose(); - this._messageCenter.unbind(); - this.clear(); - this._zr.dispose(); - this._zr = null; - } - }; - - return self; -}); \ No newline at end of file diff --git a/src/test/resources/echarts.properties b/src/test/resources/echarts.properties deleted file mode 100644 index 13edba10..00000000 --- a/src/test/resources/echarts.properties +++ /dev/null @@ -1,29 +0,0 @@ -# -# The MIT License (MIT) -# -# Copyright (c) 2014-2015 abel533@gmail.com -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# - -# \uFFFD\u01F7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0524\uFFFD\uFFFD -view = false - -# \uFFFD\uFFFD\uFFFD\uFFFDhtml\uFFFD\u013C\uFFFD\u013F\u00BC -exportpath = /tmp/echarts \ No newline at end of file diff --git a/src/test/resources/template b/src/test/resources/template deleted file mode 100644 index b1965cc7..00000000 --- a/src/test/resources/template +++ /dev/null @@ -1,38 +0,0 @@ - - - - - ECharts - Generate By @isea533/abel533 - - - -
-
-

ECharts效果

- -
-
-
-
- - - - - - \ No newline at end of file