- 浏览: 251182 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
rdsgf:
也就是导出。。。如何把生成的图片导出到本地,有没有接口?
报表 charts4j -
rdsgf:
你好,请问生成的图片如何保存到本地?
报表 charts4j -
刘焕杰:
楼主,为啥放进去后,我下载的中文文件名还是乱码呢?
[jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题 -
814687491:
Ext Panel 动态 加载 html -
yxyysu:
下载之后使用了,没有解决上传时中文名字乱码问题,请博主指导。
[jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题
1. 简介
charts4j is a Java chart library that enables developers to programmatically generate nearly all 1 the charts available in the Google Chart API . charts4j can be incorporated into any Internet enabled Java (e.g. Swing) or web application environment (e.g. JSPs / Servlets, Spring MVC, GWT, etc.)
Installation
Developers only need to include the charts4j.jar in their classpath. It is available in the charts4j.zip file. The application must also be connected to the Internet because the charts are ultimately rendered by the Google Chart API server
(上面copy于charts4j 1.3API)
Features
Supports many features of the Google Chart Tools
Hides the ugly details of creating the URL parameters that are necessary for communicating with the Google Chart Tools
Can be incorporated into any Internet enabled Swing or web application environment (JSP/Servlet, GWT, Spring MVC, etc.)
100% pure core Java solution. No need for special graphics libraries, etc.
Super-scalable & Lightweight. Only one 160Kb jar and an Internet connection required
Well documented
GWT client-side support.
JFreeChart Eastwood Servlet integration.
Works on Android
Best of all, it is FREE!
(上面来至官网).
http://code.google.com/p/charts4j/
[color=red]1. 例子(都在官网中下载的jar包中有这些example)[/color
1. LineChart
根据上面生成的url
example1 的效果图如下
http://chart.apis.google.com/chart?cht=lc&chs=600x500&chts=FFFFFF,14&chxt=y,y,x,x,x&chls=2,1,1|3,1,0&chg=30.0,10.0,3,2&chco=FFFF00,87CEEB&chxp=1,50.0|4,50.0&chdl=Line1+MARK|Line2+MARK&chxr=1,0.0,100.0|4,0.0,100.0&chtt=Web+Traffic%7C%28in+billions+of+hits%29&chf=bg,s,1F1D1D|c,lg,0,363433,1.0,0000FF,0.0&chxs=0,FFFFFF,12,0|1,FFFFFF,12,0|2,FFFFFF,12,0|3,FFFFFF,12,0|4,0000FF,14,0&chxl=0:|0|25|50|75|100|1:|Hits|2:|Nov|Dec|Jan|Feb|Mar|3:|2007|2008|2009|2010|2011|4:|Month&chd=e:AAB4DhEzFxGnHrJRLhOZRmUpXCYZYpYAXCWfXCZIczhmmtrKuE,..-H8e7M6O5Y4U2u0exmuZrWo9nmnWn.o9pgo9m3jMeZZSU1R7&chm=r,FF00004C,0,0.40,0.60|R,0080004C,0,0.70,0.90|d,FFFFFF,0,-1,4,0|d,FFFF00,0,-1,8,0|d,000000,1,-1,5,0|o,87CEEB,1,-1,10,0
example2 的效果图如下
http://chart.apis.google.com/chart?cht=lc&chs=600x450&chxt=y,x,x,x&chts=FFFFFF,14&chls=3,1,0|3,1,0&chco=FFFF00,32CD32&chg=100.0,6.78,5,0&chdl=S+%26+P+500|Inflation&chf=bg,s,000000|c,s,708090&chxp=1,5,18,39,55,92|3,50.0&chtt=S+%26+P+500%7C1962+-+2008&chxr=0,0.0,1475.25|1,0.0,100.0|2,1962.0,2008.0|3,0.0,100.0&chxs=0,FFFFFF,12,0|1,FFFFFF,12,0|2,FFFFFF,12,0|3,FFFFFF,14,0&chxl=1:|Fed+Chiefs%3A|Burns|Volcker|Greenspan|Bernanke|3:|Year&chd=e:CsDMDmD8EGEbD6D8EIE.EKC3D1EkEDEHEmFxFOF.HCHGI.KYKlL0O9OBRtSuT.TqaNgKpa0j-e46xilhvVzx1r8x-7,CsCyC4C.DFDMDTDbDiDqDyD7EEENEWEgEqE0E.FKFWFiFuF7GIGWGkGzHCHSHiHzIFIXIqI9JRJmJ7KSKpLALZLzMN&chm=o,FFFF00,0,-1,10,0|o,000000,0,-1,7,0|v,0000FF,0,8,3,0|h,0000FF,0,17,3,0|V,0000FF,0,24,3,0|v,0000FF,0,40,3,0|B,FFFFE0,0,0,0|o,FF0000,1,-1,10,0|o,000000,1,-1,7,0|o,FFFF00,1,-1,4,0|B,90EE90,1,0,0
2.BarChart
example1生成的url
http://chart.apis.google.com/chart?cht=bvs&chs=600x450&chxt=y,y,x,x&chbh=50,20,8&chts=000000,20&chtt=Team+Scores&chg=10.0,20.0,3,2&chxp=1,50.0|3,50.0&chco=8A2BE2,FF4500,32CD32&chdl=Team+A|Team+B|Team+C&chd=e:QAbhHrTN,FIWZHCDN,GaMzTNTN&chxs=1,FF0000,13,0|3,FF0000,13,0&chf=bg,s,F0F8FF|c,lg,0,E6E6FA,1.0,FFFFFF,0.0&chxl=1:|Score|2:|2002|2003|2004|2005|3:|Year&chxr=0,0.0,200.0,20.0|1,0.0,100.0|3,0.0,100.0
example2 生成的url
http://chart.apis.google.com/chart?chbh=23,4,30&chco=FFD700,C0C0C0,000000&chd=e:..tLc3X2UF,aWvraWQUMj,jItLjIS0S0&chdl=First+LGF|Second+HQY|Three+CD&chf=bg,s,D3D3D3|c,lg,0,E37600,1.0,DC4800,0.0&chg=19.6078431372549,600.0,3,2&chs=450x650&cht=bhg&chts=000000,16&chtt=2008+Beijing+Olympics+Medal+Count&chxl=0:|Germany|United+Kingdom|Russia|USA|China|1:|Country|4:|Medals&chxp=1,50.0|4,50.0&chxr=1,0.0,100.0|2,0.0,51.0,5.0|3,0.0,51.0,5.0|4,0.0,100.0&chxs=0,000000,13,0|1,000000,13,0|2,000000,13,0|3,000000,13,0|4,000000,13,0&chxt=y,y,t,x,x
3. PieChart
example1 url
http://chart.apis.google.com/chart?cht=p3&chs=500x200&chts=000000,16&chd=e:gAKqKqKq&chtt=A+Better+Web&chco=CACACA,DF7417,951800,01A1DB&chdl=Apple|Mozilla|Google|Microsoft&chl=Safari|Firefox|Chrome|Internet+Explorer
example2 url
http://chart.apis.google.com/chart?cht=p&chd=e:5mGa&chs=500x200&chts=000000,16&chtt=2D+Pie+Chart&chco=FFFF00,FF0000&chl=Ms.+Pac-Man|Red+Lips
4. ScatterChart
example1 url
http://chart.apis.google.com/chart?cht=s&chxt=y,x&chs=600x450&chco=FFFF00&chts=FFFFFF,16&chg=20.0,20.0,3,2&chm=o,FF471A,0,-1,30,0&chxr=0,0.0,100.0|1,0.0,100.0&chxs=0,FFFFFF,13,0|1,FFFFFF,13,0&chdl=%E8%A1%A8%E6%A0%BC%E6%8F%90%E7%A4%BA&chf=bg,s,FF0000|c,lg,0,0000FF,1.0,000000,0.0&chd=e:GagATNczpm8yMzzM,MzZmZmJm2Z8yzMMz,..TNgAv.ZmWZzM..&chtt=%E5%88%86%E6%95%A3%E8%A1%A8%E6%A0%BC%E6%A0%87%E9%A2%98
5. Swing
charts4j is a Java chart library that enables developers to programmatically generate nearly all 1 the charts available in the Google Chart API . charts4j can be incorporated into any Internet enabled Java (e.g. Swing) or web application environment (e.g. JSPs / Servlets, Spring MVC, GWT, etc.)
Installation
Developers only need to include the charts4j.jar in their classpath. It is available in the charts4j.zip file. The application must also be connected to the Internet because the charts are ultimately rendered by the Google Chart API server
(上面copy于charts4j 1.3API)
Features
Supports many features of the Google Chart Tools
Hides the ugly details of creating the URL parameters that are necessary for communicating with the Google Chart Tools
Can be incorporated into any Internet enabled Swing or web application environment (JSP/Servlet, GWT, Spring MVC, etc.)
100% pure core Java solution. No need for special graphics libraries, etc.
Super-scalable & Lightweight. Only one 160Kb jar and an Internet connection required
Well documented
GWT client-side support.
JFreeChart Eastwood Servlet integration.
Works on Android
Best of all, it is FREE!
(上面来至官网).
http://code.google.com/p/charts4j/
[color=red]1. 例子(都在官网中下载的jar包中有这些example)[/color
1. LineChart
/** * The MIT License * Copyright (c) 2011 the original author or authors. * 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.jspsmart.charts4j; import static com.googlecode.charts4j.Color.*; import java.util.Arrays; import org.junit.Test; import com.googlecode.charts4j.AxisLabels; import com.googlecode.charts4j.AxisLabelsFactory; import com.googlecode.charts4j.AxisStyle; import com.googlecode.charts4j.AxisTextAlignment; import com.googlecode.charts4j.Color; import com.googlecode.charts4j.Data; import com.googlecode.charts4j.DataUtil; import com.googlecode.charts4j.Fills; import com.googlecode.charts4j.GCharts; import com.googlecode.charts4j.Line; import com.googlecode.charts4j.LineChart; import com.googlecode.charts4j.LineStyle; import com.googlecode.charts4j.LinearGradientFill; import com.googlecode.charts4j.Plots; import com.googlecode.charts4j.Shape; /** * * @author Julien Chastang (julien.c.chastang at gmail dot com) */ public class LineChartExample { @Test public void example1() { // Defining lines final int NUM_POINTS = 25; // 定义点的个数 final double[] competition = new double[NUM_POINTS]; final double[] mywebsite = new double[NUM_POINTS]; for (int i = 0; i < NUM_POINTS; i++) { competition[i] = 100-(Math.cos(30*i*Math.PI/180)*10 + 50)*i/20; mywebsite[i] = (Math.cos(30*i*Math.PI/180)*10 + 50)*i/20; } // public static Line newLine(Data data,Color color,String legend) // data - Data for this line. Cannot be null. 数据源 // color - Line color. Cannot be null. 标题盘指定的颜色颜色 // legend - Legend for this line. Cannot be null.标题 Color line1Color = Color.YELLOW; Line line1 = Plots.newLine(Data.newData(mywebsite), line1Color, "Line1 MARK"); // 第一个参数 lineThickness - Thickness of line. Must be > 0. 线条厚度 // 第二个参数 lengthOfLineSegment - Length of line segment. Must be >= 0. 每个线条长度 // 第三个参数 lengthOfBlankSegment - Length of blank segment. Must be >= 0. 线条间隙 line1.setLineStyle(LineStyle.newLineStyle(2, 1, 1)); // shape - Arrows, Diamonds, etc. Cannot be null. 形状 // color - Color of the shape maker. Cannot be null. 颜色 // size - The size of the shape marker. Must be > 0. 大小 line1.addShapeMarkers(Shape.DIAMOND, Color.WHITE, 4); line1.addShapeMarkers(Shape.DIAMOND, line1Color, 8); Color line2Color = Color.SKYBLUE; Line line2 = Plots.newLine(Data.newData(competition), line2Color, "Line2 MARK"); line2.setLineStyle(LineStyle.newLineStyle(3, 1, 0)); line2.addShapeMarkers(Shape.DIAMOND, BLACK, 5); line2.addShapeMarkers(Shape.CIRCLE, line2Color, 10); // Defining chart. LineChart chart = GCharts.newLineChart(line1, line2); // 地图以外的所有图表的可能最大面积是30万像素。 // width - chart width. Must be > 0 and <= 1000. 长 // height - chart height. Must be > 0 and <= 1000. 高 chart.setSize(600, 500); // title - Chart title. Cannot be null. 标题 // color - Chart title color. Cannot be null. 颜色 // fontSize - Chart title font size. Must be > 0.大小 chart.setTitle("Web Traffic|(in billions of hits)", WHITE, 14); // 水平范围标记 // startPoint - the position on the y-axis at which the range starts where 0 is the bottom and 100 is the top. // endPoint - the position on the y-axis at which the range ends where 0 is the bottom and 100 is the top. // color - color of range marker. Cannot be null. chart.addHorizontalRangeMarker(40, 60, Color.newColor(RED, 30)); chart.addVerticalRangeMarker(70, 90, Color.newColor(GREEN, 30)); // xAxisStepSize - x step size. must be > 0. x轴之间的间隙长度(百分比) // yAxisStepSize - y step size. must be > 0. y轴每条线之间的间隙长度 (百分比) // lengthOfLineSegment - length of line segment. must be >= 0. 每条黑线的长度 // lengthOfBlankSegment - length of blank segment. must be >= 0. 每条线之间的间隔 chart.setGrid(30, 10, 3, 2); // Defining axis info and styles Axis 轴 // textColor - color of text displayed along the axis. Cannot be null. 文本颜色 // fontSize - font size of text displayed along the axis. Must be > 0. 文本大小 // alignment - alignment of text along the axis with respect to the axis tick marks. Only works for horizontal axes. Cannot be null. 对齐方式 AxisStyle axisStyle = AxisStyle.newAxisStyle(WHITE, 12, AxisTextAlignment.CENTER); // Labels that will be displayed along side the axis. x轴显示标签 AxisLabels xAxis = AxisLabelsFactory.newAxisLabels("Nov", "Dec", "Jan", "Feb", "Mar"); xAxis.setAxisStyle(axisStyle); // 添加标签样式 AxisLabels xAxis2 = AxisLabelsFactory.newAxisLabels("2007", "2008", "2009", "2010", "2011"); xAxis2.setAxisStyle(axisStyle); AxisLabels xAxis3 = AxisLabelsFactory.newAxisLabels("Month", 50.0); xAxis3.setAxisStyle(AxisStyle.newAxisStyle(Color.BLUE, 14, AxisTextAlignment.CENTER)); AxisLabels yAxis = AxisLabelsFactory.newAxisLabels("0", "25", "50", "75", "100"); yAxis.setAxisStyle(axisStyle); AxisLabels yAxis2 = AxisLabelsFactory.newAxisLabels("Hits", 50.0); yAxis2.setAxisStyle(AxisStyle.newAxisStyle(Color.RED, 14, AxisTextAlignment.CENTER)); yAxis2.setAxisStyle(axisStyle); // Adding axis info to chart. chart.addXAxisLabels(xAxis); chart.addXAxisLabels(xAxis2); chart.addXAxisLabels(xAxis3); chart.addYAxisLabels(yAxis); chart.addYAxisLabels(yAxis2); // Defining background and chart fills. 背景颜色 chart.setBackgroundFill(Fills.newSolidFill(Color.newColor("1F1D1D"))); // 数据域颜色 LinearGradientFill fill = Fills.newLinearGradientFill(0, Color.newColor("363433"), 100); fill.addColorAndOffset(Color.BLUE, 0); chart.setAreaFill(fill); String url = chart.toURLString(); // EXAMPLE CODE END. Use this url string in your web or System.out.println(url); } @Test public void example2() { // EXAMPLE CODE START // Defining Line final double[] sp500 = { 62.960, 74.560, 84.300, 92.200, 95.890, 103.800, 91.600, 92.270, 96.870, 116.930, 97.540, 67.160, 89.770, 106.880, 94.750, 96.280, 107.840, 135.330, 122.300, 140.340, 164.860, 166.260, 210.680, 243.370,247.840, 277.080, 350.680, 328.710, 415.140, 438.820, 468.660, 460.920, 614.120, 753.850, 970.840, 1231.93, 1464.47, 1334.22, 1161.02, 879.390, 1109.64, 1213.55, 1258.17, 1424.71, 1475.25 }; final double INFLATION = 0.035; final double[] inflation = new double[sp500.length]; inflation[0] = sp500[0]; for (int i = 1; i < inflation.length; i++) { inflation[i] = inflation[i-1] *INFLATION + inflation[i-1]; } // Line line1 = Plots.newLine(Data.newData(sp500), YELLOW, "S & P 500"); Line line1 = Plots.newLine(DataUtil.scaleWithinRange(0,1500,sp500), YELLOW, "S & P 500"); line1.setLineStyle(LineStyle.newLineStyle(3, 1, 0)); line1.addShapeMarkers(Shape.CIRCLE, YELLOW, 10); line1.addShapeMarkers(Shape.CIRCLE, BLACK, 7); line1.addShapeMarker(Shape.VERTICAL_LINE_PARTIAL, BLUE,3,8); line1.addShapeMarker(Shape.HORIZONTAL_LINE, BLUE,3,17); line1.addShapeMarker(Shape.VERTICAL_LINE_FULL, BLUE,3,24); line1.addShapeMarker(Shape.VERTICAL_LINE_PARTIAL, BLUE,3,40); line1.setFillAreaColor(LIGHTYELLOW); Line line2 = Plots.newLine(DataUtil.scaleWithinRange(0,1500,inflation), LIMEGREEN, "Inflation"); line2.setLineStyle(LineStyle.newLineStyle(3, 1, 0)); // 可以使用addShapeMarkers进行多层迭代 一个点可以有多种形状和颜色叠加 line2.addShapeMarkers(Shape.CIRCLE, Color.RED, 10); line2.addShapeMarkers(Shape.CIRCLE, Color.BLACK, 7); line2.addShapeMarkers(Shape.CIRCLE, Color.YELLOW, 4); line2.setFillAreaColor(LIGHTGREEN); // Defining chart. LineChart chart = GCharts.newLineChart(line1,line2); chart.setSize(600, 450); chart.setTitle("S & P 500|1962 - 2008", WHITE, 14); // Defining axis info and styles AxisStyle axisStyle = AxisStyle.newAxisStyle(WHITE, 12, AxisTextAlignment.CENTER); AxisLabels yAxis = AxisLabelsFactory.newNumericRangeAxisLabels(0, sp500[sp500.length-1]); yAxis.setAxisStyle(axisStyle); AxisLabels xAxis1 = AxisLabelsFactory.newAxisLabels(Arrays.asList("Fed Chiefs:","Burns","Volcker","Greenspan","Bernanke"), Arrays.asList(5,18,39,55,92)); xAxis1.setAxisStyle(axisStyle); AxisLabels xAxis2 = AxisLabelsFactory.newNumericRangeAxisLabels(1962, 2008); xAxis2.setAxisStyle(axisStyle); AxisLabels xAxis3 = AxisLabelsFactory.newAxisLabels("Year", 50.0); xAxis3.setAxisStyle(AxisStyle.newAxisStyle(WHITE, 14, AxisTextAlignment.CENTER)); // Adding axis info to chart. chart.addYAxisLabels(yAxis); chart.addXAxisLabels(xAxis1); chart.addXAxisLabels(xAxis2); chart.addXAxisLabels(xAxis3); chart.setGrid(100, 6.78, 5, 0); // Defining background and chart fills. chart.setBackgroundFill(Fills.newSolidFill(BLACK)); chart.setAreaFill(Fills.newSolidFill(Color.newColor("708090"))); String url = chart.toURLString(); // EXAMPLE CODE END. Use this url string in your web or Internet application. System.out.println(url); } }
根据上面生成的url
example1 的效果图如下
http://chart.apis.google.com/chart?cht=lc&chs=600x500&chts=FFFFFF,14&chxt=y,y,x,x,x&chls=2,1,1|3,1,0&chg=30.0,10.0,3,2&chco=FFFF00,87CEEB&chxp=1,50.0|4,50.0&chdl=Line1+MARK|Line2+MARK&chxr=1,0.0,100.0|4,0.0,100.0&chtt=Web+Traffic%7C%28in+billions+of+hits%29&chf=bg,s,1F1D1D|c,lg,0,363433,1.0,0000FF,0.0&chxs=0,FFFFFF,12,0|1,FFFFFF,12,0|2,FFFFFF,12,0|3,FFFFFF,12,0|4,0000FF,14,0&chxl=0:|0|25|50|75|100|1:|Hits|2:|Nov|Dec|Jan|Feb|Mar|3:|2007|2008|2009|2010|2011|4:|Month&chd=e:AAB4DhEzFxGnHrJRLhOZRmUpXCYZYpYAXCWfXCZIczhmmtrKuE,..-H8e7M6O5Y4U2u0exmuZrWo9nmnWn.o9pgo9m3jMeZZSU1R7&chm=r,FF00004C,0,0.40,0.60|R,0080004C,0,0.70,0.90|d,FFFFFF,0,-1,4,0|d,FFFF00,0,-1,8,0|d,000000,1,-1,5,0|o,87CEEB,1,-1,10,0
example2 的效果图如下
http://chart.apis.google.com/chart?cht=lc&chs=600x450&chxt=y,x,x,x&chts=FFFFFF,14&chls=3,1,0|3,1,0&chco=FFFF00,32CD32&chg=100.0,6.78,5,0&chdl=S+%26+P+500|Inflation&chf=bg,s,000000|c,s,708090&chxp=1,5,18,39,55,92|3,50.0&chtt=S+%26+P+500%7C1962+-+2008&chxr=0,0.0,1475.25|1,0.0,100.0|2,1962.0,2008.0|3,0.0,100.0&chxs=0,FFFFFF,12,0|1,FFFFFF,12,0|2,FFFFFF,12,0|3,FFFFFF,14,0&chxl=1:|Fed+Chiefs%3A|Burns|Volcker|Greenspan|Bernanke|3:|Year&chd=e:CsDMDmD8EGEbD6D8EIE.EKC3D1EkEDEHEmFxFOF.HCHGI.KYKlL0O9OBRtSuT.TqaNgKpa0j-e46xilhvVzx1r8x-7,CsCyC4C.DFDMDTDbDiDqDyD7EEENEWEgEqE0E.FKFWFiFuF7GIGWGkGzHCHSHiHzIFIXIqI9JRJmJ7KSKpLALZLzMN&chm=o,FFFF00,0,-1,10,0|o,000000,0,-1,7,0|v,0000FF,0,8,3,0|h,0000FF,0,17,3,0|V,0000FF,0,24,3,0|v,0000FF,0,40,3,0|B,FFFFE0,0,0,0|o,FF0000,1,-1,10,0|o,000000,1,-1,7,0|o,FFFF00,1,-1,4,0|B,90EE90,1,0,0
2.BarChart
/** * * The MIT License * * Copyright (c) 2011 the original author or authors. * * 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.jspsmart.charts4j; import static com.googlecode.charts4j.Color.*; import static com.googlecode.charts4j.UrlUtil.normalize; import java.util.Arrays; import java.util.logging.Level; import java.util.logging.Logger; import org.junit.BeforeClass; import org.junit.Test; import com.googlecode.charts4j.AxisLabels; import com.googlecode.charts4j.AxisLabelsFactory; import com.googlecode.charts4j.AxisStyle; import com.googlecode.charts4j.AxisTextAlignment; import com.googlecode.charts4j.BarChart; import com.googlecode.charts4j.BarChartPlot; import com.googlecode.charts4j.Color; import com.googlecode.charts4j.Data; import com.googlecode.charts4j.DataUtil; import com.googlecode.charts4j.Fills; import com.googlecode.charts4j.GCharts; import com.googlecode.charts4j.LinearGradientFill; import com.googlecode.charts4j.Plots; /** * * @author Julien Chastang (julien.c.chastang at gmail dot com) */ public class BarChartExample { @BeforeClass public static void setUpBeforeClass() throws Exception { Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).setLevel(Level.ALL); } @Test public void example1() { // EXAMPLE CODE START // Defining data plots. BarChartPlot team1 = Plots.newBarChartPlot(Data.newData(25, 43, 12, 30), BLUEVIOLET, "Team A"); BarChartPlot team2 = Plots.newBarChartPlot(Data.newData(8, 35, 11, 5), ORANGERED, "Team B"); BarChartPlot team3 = Plots.newBarChartPlot(Data.newData(10, 20, 30, 30), LIMEGREEN, "Team C"); // Instantiating chart. BarChart chart = GCharts.newBarChart(team1, team2, team3); // Defining axis info and styles AxisStyle axisStyle = AxisStyle.newAxisStyle(Color.RED, 13, AxisTextAlignment.CENTER); AxisLabels score = AxisLabelsFactory.newAxisLabels("Score", 50.0); score.setAxisStyle(axisStyle); AxisLabels year = AxisLabelsFactory.newAxisLabels("Year", 50.0); year.setAxisStyle(axisStyle); // Adding axis info to chart. 添加坐标轴信息 chart.addXAxisLabels(AxisLabelsFactory.newAxisLabels("2002", "2003", "2004", "2005")); chart.addYAxisLabels(AxisLabelsFactory.newNumericRangeAxisLabels(0, 200,20)); chart.addYAxisLabels(score); chart.addXAxisLabels(year); chart.setSize(600, 450); // Set the bar chart width.每条的宽度 chart.setBarWidth(50); // Set the space within groups of bars.空格间隙 chart.setSpaceWithinGroupsOfBars(20); // Are the bar charts stacked, or side-by-side. 叠加 还是在旁边 chart.setDataStacked(true); chart.setTitle("Team Scores", BLACK, 20); // xAxisStepSize - x step size. must be > 0. x轴之间的间隙长度 // yAxisStepSize - y step size. must be > 0. y轴每条线之间的间隙长度 // lengthOfLineSegment - length of line segment. must be >= 0. 每条黑线的长度 // lengthOfBlankSegment - length of blank segment. must be >= 0. 每条线之间的间隔 chart.setGrid(10, 20, 3, 2); chart.setBackgroundFill(Fills.newSolidFill(ALICEBLUE)); LinearGradientFill fill = Fills.newLinearGradientFill(0, LAVENDER, 100); fill.addColorAndOffset(WHITE, 0); chart.setAreaFill(fill); String url = chart.toURLString(); // EXAMPLE CODE END. Use this url string in your web or Internet application. System.out.println(url); } @Test public void example2() { // EXAMPLE CODE START // Defining data series. final int MAX_MEDALS = 51; // 最大值 // min - The minimum value in the scaling range. // max - The maximum value in the scaling range. // data - The data Data goldData= DataUtil.scaleWithinRange(0, MAX_MEDALS, Arrays.asList(MAX_MEDALS, 36, 23, 19, 16)); Data silverData= DataUtil.scaleWithinRange(0, MAX_MEDALS, Arrays.asList(21, 38, 21, 13, 10)); Data bronzeData= DataUtil.scaleWithinRange(0, MAX_MEDALS, Arrays.asList(28, 36, 28, 15, 15)); BarChartPlot gold = Plots.newBarChartPlot(goldData, GOLD, "First LGF"); BarChartPlot silver = Plots.newBarChartPlot(silverData, SILVER, "Second HQY"); BarChartPlot bronze = Plots.newBarChartPlot(bronzeData, Color.BLACK, "Three CD"); // 定义表格 BarChart chart = GCharts.newBarChart(gold, silver, bronze); // Defining axis info and styles 定义坐标数据和表格 AxisStyle axisStyle = AxisStyle.newAxisStyle(BLACK, 13, AxisTextAlignment.CENTER); AxisLabels country = AxisLabelsFactory.newAxisLabels("Country", 50.0); country.setAxisStyle(axisStyle); AxisLabels countries = AxisLabelsFactory.newAxisLabels("Germany", "United Kingdom", "Russia", "USA", "China"); countries.setAxisStyle(axisStyle); AxisLabels medals = AxisLabelsFactory.newAxisLabels("Medals", 50.0); medals.setAxisStyle(axisStyle); AxisLabels medalCount = AxisLabelsFactory.newNumericRangeAxisLabels(0, MAX_MEDALS,5); medalCount.setAxisStyle(axisStyle); // Adding axis info to chart. chart.addXAxisLabels(medalCount); chart.addXAxisLabels(medals); chart.addYAxisLabels(countries); chart.addYAxisLabels(country); chart.addTopAxisLabels(medalCount); chart.setHorizontal(true); chart.setSize(450, 650); chart.setSpaceBetweenGroupsOfBars(30); chart.setTitle("2008 Beijing Olympics Medal Count", BLACK, 16); ///51 is the max number of medals. chart.setGrid((50.0/MAX_MEDALS)*20, 600, 3, 2); chart.setBackgroundFill(Fills.newSolidFill(LIGHTGREY)); LinearGradientFill fill = Fills.newLinearGradientFill(0, Color.newColor("E37600"), 100); fill.addColorAndOffset(Color.newColor("DC4800"), 0); chart.setAreaFill(fill); String url = chart.toURLString(); // EXAMPLE CODE END. Use this url string in your web or Internet application. System.out.println(normalize(url)); } }
example1生成的url
http://chart.apis.google.com/chart?cht=bvs&chs=600x450&chxt=y,y,x,x&chbh=50,20,8&chts=000000,20&chtt=Team+Scores&chg=10.0,20.0,3,2&chxp=1,50.0|3,50.0&chco=8A2BE2,FF4500,32CD32&chdl=Team+A|Team+B|Team+C&chd=e:QAbhHrTN,FIWZHCDN,GaMzTNTN&chxs=1,FF0000,13,0|3,FF0000,13,0&chf=bg,s,F0F8FF|c,lg,0,E6E6FA,1.0,FFFFFF,0.0&chxl=1:|Score|2:|2002|2003|2004|2005|3:|Year&chxr=0,0.0,200.0,20.0|1,0.0,100.0|3,0.0,100.0
example2 生成的url
http://chart.apis.google.com/chart?chbh=23,4,30&chco=FFD700,C0C0C0,000000&chd=e:..tLc3X2UF,aWvraWQUMj,jItLjIS0S0&chdl=First+LGF|Second+HQY|Three+CD&chf=bg,s,D3D3D3|c,lg,0,E37600,1.0,DC4800,0.0&chg=19.6078431372549,600.0,3,2&chs=450x650&cht=bhg&chts=000000,16&chtt=2008+Beijing+Olympics+Medal+Count&chxl=0:|Germany|United+Kingdom|Russia|USA|China|1:|Country|4:|Medals&chxp=1,50.0|4,50.0&chxr=1,0.0,100.0|2,0.0,51.0,5.0|3,0.0,51.0,5.0|4,0.0,100.0&chxs=0,000000,13,0|1,000000,13,0|2,000000,13,0|3,000000,13,0|4,000000,13,0&chxt=y,y,t,x,x
3. PieChart
/** * * The MIT License * * Copyright (c) 2011 the original author or authors. * * 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.jspsmart.charts4j; import static com.googlecode.charts4j.Color.*; import org.junit.Test; import com.googlecode.charts4j.Color; import com.googlecode.charts4j.GCharts; import com.googlecode.charts4j.PieChart; import com.googlecode.charts4j.Slice; /** * * @author Julien Chastang (julien.c.chastang at gmail dot com) */ public class PieChartExample { @Test public void example1() { // 定义 切片 // percent - percent of pie. Must be >= 0. // color - color of slice. // sliceLabel - label associated with slice. 片标签 // sliceLegend - legend associated with slice. 颜色旁边的片图例 Slice s1 = Slice.newSlice(30, Color.newColor("CACACA"), "Safari", "Apple"); Slice s2 = Slice.newSlice(10, Color.newColor("DF7417"), "Firefox", "Mozilla"); Slice s3 = Slice.newSlice(10, Color.newColor("951800"), "Chrome", "Google"); Slice s4 = Slice.newSlice(10, Color.newColor("01A1DB"), "Internet Explorer", "Microsoft"); PieChart chart = GCharts.newPieChart(s1, s2, s3, s4); chart.setTitle("A Better Web", BLACK, 16); chart.setSize(500, 200); // 是否开启3D效果 chart.setThreeD(true); String url = chart.toURLString(); // EXAMPLE CODE END. Use this url string in your web or Internet application. System.out.println(url); } @Test public void example2() { // EXAMPLE CODE START Slice s1 = Slice.newSlice(90, YELLOW, "Ms. Pac-Man"); Slice s2 = Slice.newSlice(10, RED, "Red Lips"); PieChart chart = GCharts.newPieChart(s1, s2); chart.setTitle("2D Pie Chart", BLACK, 16); chart.setSize(500, 200); String url = chart.toURLString(); // EXAMPLE CODE END. Use this url string in your web or Internet application. System.out.println(url); } }
example1 url
http://chart.apis.google.com/chart?cht=p3&chs=500x200&chts=000000,16&chd=e:gAKqKqKq&chtt=A+Better+Web&chco=CACACA,DF7417,951800,01A1DB&chdl=Apple|Mozilla|Google|Microsoft&chl=Safari|Firefox|Chrome|Internet+Explorer
example2 url
http://chart.apis.google.com/chart?cht=p&chd=e:5mGa&chs=500x200&chts=000000,16&chtt=2D+Pie+Chart&chco=FFFF00,FF0000&chl=Ms.+Pac-Man|Red+Lips
4. ScatterChart
/** * * The MIT License * * Copyright (c) 2011 the original author or authors. * * 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.jspsmart.charts4j; import static com.googlecode.charts4j.Color.WHITE; import org.junit.Test; import com.googlecode.charts4j.AxisLabels; import com.googlecode.charts4j.AxisLabelsFactory; import com.googlecode.charts4j.AxisStyle; import com.googlecode.charts4j.AxisTextAlignment; import com.googlecode.charts4j.Color; import com.googlecode.charts4j.Data; import com.googlecode.charts4j.Fills; import com.googlecode.charts4j.GCharts; import com.googlecode.charts4j.LinearGradientFill; import com.googlecode.charts4j.Plots; import com.googlecode.charts4j.ScatterPlot; import com.googlecode.charts4j.ScatterPlotData; import com.googlecode.charts4j.Shape; /** * * @author Julien Chastang (julien.c.chastang at gmail dot com) */ public class ScatterChartExample { @Test public void example1() { // 定义数据 Data d1 = Data.newData(10, 50, 30, 45, 65, 95, 20, 80); Data d2 = Data.newData(20, 40, 40, 15, 85, 95, 80, 20); Data pointSizes = Data.newData(100, 30, 50, 75, 40, 35, 80, 100); // xData - x data. Cannot be null. // yData - y data. Cannot be null. // pointSizes - size of x,y data. Cannot be null. ScatterPlotData data = Plots.newScatterPlotData(d1, d2, pointSizes); // 图例 Color shapeColor = Color.newColor("FF471A"); data.setLegend("表格提示"); data.setColor(Color.YELLOW); data.addShapeMarkers(Shape.CIRCLE, shapeColor, 30); ScatterPlot chart = GCharts.newScatterPlot(data); chart.setSize(600, 450); chart.setGrid(20, 20, 3, 2); AxisLabels axisLabels = AxisLabelsFactory.newNumericRangeAxisLabels(0, 100); axisLabels.setAxisStyle(AxisStyle.newAxisStyle(WHITE, 13, AxisTextAlignment.CENTER)); chart.addXAxisLabels(axisLabels); chart.addYAxisLabels(axisLabels); chart.setTitle("分散表格标题", WHITE, 16); // 填充背景颜色 chart.setBackgroundFill(Fills.newSolidFill(Color.RED)); // 设置表格背景 LinearGradientFill fill = Fills.newLinearGradientFill(0, Color.BLUE, 100); // 添加额外的填充渐变。 fill.addColorAndOffset(Color.BLACK, 0); chart.setAreaFill(fill); String url = chart.toURLString(); // EXAMPLE CODE END. Use this url string in your web or Internet application. System.out.println(url); } }
example1 url
http://chart.apis.google.com/chart?cht=s&chxt=y,x&chs=600x450&chco=FFFF00&chts=FFFFFF,16&chg=20.0,20.0,3,2&chm=o,FF471A,0,-1,30,0&chxr=0,0.0,100.0|1,0.0,100.0&chxs=0,FFFFFF,13,0|1,FFFFFF,13,0&chdl=%E8%A1%A8%E6%A0%BC%E6%8F%90%E7%A4%BA&chf=bg,s,FF0000|c,lg,0,0000FF,1.0,000000,0.0&chd=e:GagATNczpm8yMzzM,MzZmZmJm2Z8yzMMz,..TNgAv.ZmWZzM..&chtt=%E5%88%86%E6%95%A3%E8%A1%A8%E6%A0%BC%E6%A0%87%E9%A2%98
5. Swing
/** * The MIT License * * Copyright (c) 2011 the original author or authors. * * 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.jspsmart.charts4j; import java.awt.BorderLayout; import java.io.IOException; import java.net.URL; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import org.junit.Ignore; import com.googlecode.charts4j.Data; import com.googlecode.charts4j.GCharts; import com.googlecode.charts4j.LineChart; import com.googlecode.charts4j.Plot; import com.googlecode.charts4j.Plots; /** * Example code for displaying a chart via Swing. This is an alternative * to displaying charts via JSP and Servlet technology. * * @author Julien Chastang (julien.c.chastang at gmail dot com) */ @Ignore("not a unit test, just a Java Swing example") public class SwingExample { /** * main * * @param s * args not read. * @throws IOException */ public static void main(String...s) throws IOException { Plot plot = Plots.newPlot(Data.newData(0, 66.6, 33.3, 100)); LineChart chart = GCharts.newLineChart(plot); displayUrlString(chart.toURLString()); } /** * Display the chart in a swing window. * @param urlString * the url string to display. * @throws IOException */ private static void displayUrlString(final String urlString) throws IOException{ JFrame frame = new JFrame(); JLabel label = new JLabel(new ImageIcon(ImageIO.read(new URL(urlString)))); frame.getContentPane().add(label, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } }
发表评论
-
List 遍历 ConcurrentModificationException
2013-07-05 17:39 1053有如下代码片段: public static void m ... -
foreach的原理
2013-07-05 14:49 819... -
java.util.Properties 简单用法
2013-04-25 10:05 16011. 认识properties文件 1、properties文 ... -
while 和 for 不完全相同
2013-03-07 11:05 7731. for和while的语法如下: for(initi ... -
(a + (a++)) 与 ((a++) + a)
2013-03-04 09:46 861直接上代码: public static void mai ... -
java 发送邮件错误收集
2012-10-31 19:00 8041. 报错: Exception in thread &qu ... -
Add Deployment java.lang.NullPointerException
2012-08-22 17:28 33441. 在用Myeclipse部署项目时候突然报错: 无法 ... -
Undefined exploded archive location
2012-08-22 17:14 9381. 用Myeclipse部署web系统wlms时候报如下错误 ... -
java @override 报错处理
2012-07-25 16:17 807有时候在自己电脑上编译通过的java代码,在别人那里却编译不通 ... -
java 环境变量配置
2012-07-25 10:01 927windows xp下配置JDK环境变量: 1.安 ... -
java 源码解析--LinkedList
2012-03-13 14:20 1152LinkedList 1.看源码前应该知道的知识点 ... -
java 源码解析--ArrayList
2012-03-13 09:51 1307ArrayList 1.看源码前应该知道的知识点 / ... -
java 三大特性--封装、继承和多态理解
2012-03-12 15:21 3753封装 /** * 所谓封装,就是将对象具有的成员变量和 ... -
java 关键字 clone
2012-02-24 17:24 8331. 最简单的clone例子 /** * */ ... -
java 基础之(equals hashcode)
2012-01-19 11:02 10861.equals 的等价关系 2. ... -
Myeclipse Code Template 基本设置
2012-01-13 11:17 21901. 设置注释模板的入口: Window->Prefer ... -
java 基础之(接口)
2011-11-28 15:20 902“interface”(接口)关 ... -
java 基础之(抽象类)
2011-11-28 15:15 927抽象方法 :它属于一种不完整的方法, 只含有一个声明,没有方法 ... -
位移运算符
2011-11-04 11:46 931package com.lgf.operation; / ... -
java 关键字 final
2011-10-25 09:52 8621. final 数据 package com.lgf.k ...
相关推荐
charts4j-1.3.zip
charts4j-1.3.zip 支持柱形图 饼图,折线图。
apache click 扩展插件 报表 click-chartsapache click 扩展插件 报表 click-charts
JSCharts3报表实例,包括折线图、柱状图、饼状图等2D及3D图表型报表。该图形报表由js生成,报表十分美观,带鼠标覆盖数字放大等效果,生成速度快,占用资源极小,背景不带logo.
Axhub Charts Pro V2.1.1.rplib Axhub Charts Pro V2.1.1.rplib Axhub Charts Pro V2.1.1.rplib Axhub Charts Pro V2.1.1.rplib Axhub Charts Pro V2.1.1.rplib Axhub Charts Pro V2.1.1.rplib Axhub Charts Pro V...
插件描述:支持柱状图、圆饼图以及线性图 参考示例:http://www.jq22.com/jquery-info5330
jide开源Swing组件中,jide-charts的jar包
jscharts生成报表,有柱状和饼状还有线状,可以根据自己的需求动态同过json或者xml来生成数据
NULL 博文链接:https://zzc1684.iteye.com/blog/1184267
Live-Charts-master.zip LiveCharts2-master.zip
基于LiveCharts.Wpf.Core(0.9.8)的几个图形报表实例(柱状图,曲线图,分组柱状图,饼状图) 运行环境 net6 开发语言C# VS2022
1、Qt4中学习使用QtCharts绘图五:绘制折线图 2、实例带源码工程
JQuery图表charts 报表
Qt4中学习使用QtCharts绘图四:绘制柱状图
Get beyond the basics with Excel 2007 charts Now you can take your Excel charting skills to the next level with help from this hands-on guide. Excel 2007 Charts Made Easy shows you how to upgrade ...
主要介绍LiveCharts曲线截屏保存功能。
Chapter 4 Better Charts In A Couple Of Hours Part Three Refine Chapter 5 Refine To Impress Chapter 6 Refine To Persuade Chapter 7 Persuasion Or Manipulation? Part Four Present And Practice Chapter 8...
Visifire最新源码,呕心沥血之作 由于Visifire公司已不再更新此控件,但是项目中需要修改动画效果。没有源码,如何搞啊? 无奈之下反编译动态库,反编译出来要报错,经过一个多月的修改,终于将BUG修复,完美的...