JFreeChart实现饼状图、柱状图和折线图以及各类报表
2014-12-02 09:48
435 查看
1.饼状图的CS架构实现:
实现代码如下: package servlet; import java.awt.Container;
import java.awt.Font; import javax.swing.JPanel; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities; /**
* @Title: 饼状图的CS架构实现
* @Package servlet
* @Description:
* @author lzh
* @date Dec 5, 2011 3:17:25 PM
* @version V1.0
*/
public class PieCharts extends ApplicationFrame { public PieCharts(String s) {
super(s);
setContentPane(createDemoPanel());
// TODO Auto-generated constructor stub
} public static JPanel createDemoPanel() {
// 生成图表面板
JFreeChart jfreechart=createChart(createDataset());
return new ChartPanel(jfreechart);
} private static JFreeChart createChart(Object createDataset) {
// TODO Auto-generated method stub
return null;
} //生成饼图数据集对象
public static PieDataset createDataset(){
DefaultPieDataset defaultpiedataset=new DefaultPieDataset();
defaultpiedataset.setValue("MANAGER", 10.02D);
defaultpiedataset.setValue("MARKET", 20.23D);
defaultpiedataset.setValue("DEVELOP", 60.02D);
defaultpiedataset.setValue("OEM", 10.02D);
defaultpiedataset.setValue("OTHERS", 5.11D);
return defaultpiedataset;
} //生成图表主对象JFreeChart
public static JFreeChart createChart(PieDataset piedataset){
JFreeChart jfreechart=ChartFactory.createPieChart("CityInfoPort Company",piedataset,true,true,false);
//获得图表显示对象
PiePlot pieplot=(PiePlot)jfreechart.getPlot();
//设置图表标签字体
pieplot.setLabelFont(new Font("SansSerif",Font.BOLD,12));
pieplot.setNoDataMessage("No data available");
pieplot.setCircular(true);
pieplot.setLabelGap(0.01D);//间距
return jfreechart;
//定义图表对象
}
/**
* @Fields serialVersionUID :
* @author lzh
* @date Dec 5, 2011 3:18:05 PM
*/
private static final long serialVersionUID = 1L; /**
* @Title: main
* @Description:
* @param args
* @return void
* @author lzh
* @date Dec 5, 2011 3:17:25 PM
* @throws
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PieCharts fjc=new PieCharts("CityInfoPort Company");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
} }
2.折线图的CS架构实现
实现代码如下: package servlet; import java.awt.Container; import javax.swing.JPanel; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities; /**
* @Title: 折线图的CS架构实现
* @Package servlet
* @Description:
* @author lzh
* @date Dec 5, 2011 3:39:41 PM
* @version V1.0
*/
public class LineCharts extends ApplicationFrame{ private static final long serialVersionUID = 0L;
public LineCharts(String s) {
super(s);
setContentPane(createDemoLine());
} public static void main(String args[]){
LineCharts fjc=new LineCharts("Line");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
}
//生成显示图表的面板
public static JPanel createDemoLine(){
JFreeChart jfreechart=createChart(createDataset());
return new ChartPanel(jfreechart);
} //生成图表主对象JFreeChart
private static JFreeChart createChart(DefaultCategoryDataset linedataset) {
//定义图表对象
JFreeChart chart=ChartFactory.createLineChart("Line","Time","Sale(million)",linedataset,PlotOrientation.VERTICAL,true,true,false);
CategoryPlot plot=chart.getCategoryPlot();
NumberAxis rangeAxis=(NumberAxis)plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI/2.0);
return chart;
} //生成数据
private static DefaultCategoryDataset createDataset() {
DefaultCategoryDataset linedataset=new DefaultCategoryDataset();
//各曲线名称
String series1="TV";
String series2="PC";
String series3="WASH";
//横轴名称(列名称)
String type1="JAN";
String type2="FEB";
String type3="MAR";
linedataset.addValue(0.0,series1,type1);
linedataset.addValue(4.2,series1,type2);
linedataset.addValue(3.9,series1,type3);
linedataset.addValue(1.0,series2,type1);
linedataset.addValue(5.2,series2,type2);
linedataset.addValue(7.9,series2,type3);
linedataset.addValue(2.0,series3,type1);
linedataset.addValue(9.2,series3,type2);
linedataset.addValue(8.9,series3,type3);
return linedataset;
} }
3.柱状图的CS架构实现
实现代码如下:BarCharts.javapackage servlet;
import java.awt.Color;import java.awt.Font;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.renderer.category.BarRenderer3D;import org.jfree.data.category.CategoryDataset;import org.jfree.data.general.DatasetUtilities;import org.jfree.ui.ApplicationFrame;import org.jfree.ui.RefineryUtilities;
public class BarCharts extends ApplicationFrame{ private static final long serialVersionUID = 1L; public BarCharts(String title) { super(title); setContentPane(createDemoBar()); }
//生成显示图表的面板 public static JPanel createDemoBar() { JFreeChart jfreechart=createChart(createDataset()); return new ChartPanel(jfreechart); }
//生成图表主对象JFreeChart public static JFreeChart createChart(CategoryDataset dataset) { JFreeChart chart=ChartFactory.createBarChart3D("Fruit sales","Fruit","Sales",dataset,PlotOrientation.VERTICAL,true,false,false);//第三个true表示显示每个颜色柱子的柱名 CategoryPlot plot=chart.getCategoryPlot();//设置图的高级属性 BarRenderer3D renderer=new BarRenderer3D();//3D属性修改 renderer.setBaseOutlinePaint(Color.BLACK);//设置边框颜色为black renderer.setWallPaint(Color.gray);//设置wall的颜色为gray renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());//设置柱顶数据,API中居然没有StandardCategoryItemLabelGenerator这个类 renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));//设置柱顶数据字体 renderer.setItemLabelsVisible(true);//打开ItemLabel开关 plot.setRenderer(renderer);//将修改后的属性值保存到图中 plot.setForegroundAlpha(0.6f); return chart; }
//生成数据 public static CategoryDataset createDataset(){ double[][] data=new double[][]{{672,766,223,540,126},{325,521,210,340,106},{332,256,523,240,526}};//设置数据 String[] rowKeys={"Apple","Pear","BANANA"};//行标志 String[] columnKeys={"Peking","ShangHai","ChengDu","ChongQing","GuangZhou"};//列标志 CategoryDataset linedataset=DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data);//建立数据集 return linedataset; } public static void main(String args[]){ BarCharts fjc=new BarCharts("BarCharts"); fjc.pack(); RefineryUtilities.centerFrameOnScreen(fjc); fjc.setVisible(true); }}
实现代码如下: package servlet; import java.awt.Container;
import java.awt.Font; import javax.swing.JPanel; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities; /**
* @Title: 饼状图的CS架构实现
* @Package servlet
* @Description:
* @author lzh
* @date Dec 5, 2011 3:17:25 PM
* @version V1.0
*/
public class PieCharts extends ApplicationFrame { public PieCharts(String s) {
super(s);
setContentPane(createDemoPanel());
// TODO Auto-generated constructor stub
} public static JPanel createDemoPanel() {
// 生成图表面板
JFreeChart jfreechart=createChart(createDataset());
return new ChartPanel(jfreechart);
} private static JFreeChart createChart(Object createDataset) {
// TODO Auto-generated method stub
return null;
} //生成饼图数据集对象
public static PieDataset createDataset(){
DefaultPieDataset defaultpiedataset=new DefaultPieDataset();
defaultpiedataset.setValue("MANAGER", 10.02D);
defaultpiedataset.setValue("MARKET", 20.23D);
defaultpiedataset.setValue("DEVELOP", 60.02D);
defaultpiedataset.setValue("OEM", 10.02D);
defaultpiedataset.setValue("OTHERS", 5.11D);
return defaultpiedataset;
} //生成图表主对象JFreeChart
public static JFreeChart createChart(PieDataset piedataset){
JFreeChart jfreechart=ChartFactory.createPieChart("CityInfoPort Company",piedataset,true,true,false);
//获得图表显示对象
PiePlot pieplot=(PiePlot)jfreechart.getPlot();
//设置图表标签字体
pieplot.setLabelFont(new Font("SansSerif",Font.BOLD,12));
pieplot.setNoDataMessage("No data available");
pieplot.setCircular(true);
pieplot.setLabelGap(0.01D);//间距
return jfreechart;
//定义图表对象
}
/**
* @Fields serialVersionUID :
* @author lzh
* @date Dec 5, 2011 3:18:05 PM
*/
private static final long serialVersionUID = 1L; /**
* @Title: main
* @Description:
* @param args
* @return void
* @author lzh
* @date Dec 5, 2011 3:17:25 PM
* @throws
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PieCharts fjc=new PieCharts("CityInfoPort Company");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
} }
2.折线图的CS架构实现
实现代码如下: package servlet; import java.awt.Container; import javax.swing.JPanel; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities; /**
* @Title: 折线图的CS架构实现
* @Package servlet
* @Description:
* @author lzh
* @date Dec 5, 2011 3:39:41 PM
* @version V1.0
*/
public class LineCharts extends ApplicationFrame{ private static final long serialVersionUID = 0L;
public LineCharts(String s) {
super(s);
setContentPane(createDemoLine());
} public static void main(String args[]){
LineCharts fjc=new LineCharts("Line");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
}
//生成显示图表的面板
public static JPanel createDemoLine(){
JFreeChart jfreechart=createChart(createDataset());
return new ChartPanel(jfreechart);
} //生成图表主对象JFreeChart
private static JFreeChart createChart(DefaultCategoryDataset linedataset) {
//定义图表对象
JFreeChart chart=ChartFactory.createLineChart("Line","Time","Sale(million)",linedataset,PlotOrientation.VERTICAL,true,true,false);
CategoryPlot plot=chart.getCategoryPlot();
NumberAxis rangeAxis=(NumberAxis)plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI/2.0);
return chart;
} //生成数据
private static DefaultCategoryDataset createDataset() {
DefaultCategoryDataset linedataset=new DefaultCategoryDataset();
//各曲线名称
String series1="TV";
String series2="PC";
String series3="WASH";
//横轴名称(列名称)
String type1="JAN";
String type2="FEB";
String type3="MAR";
linedataset.addValue(0.0,series1,type1);
linedataset.addValue(4.2,series1,type2);
linedataset.addValue(3.9,series1,type3);
linedataset.addValue(1.0,series2,type1);
linedataset.addValue(5.2,series2,type2);
linedataset.addValue(7.9,series2,type3);
linedataset.addValue(2.0,series3,type1);
linedataset.addValue(9.2,series3,type2);
linedataset.addValue(8.9,series3,type3);
return linedataset;
} }
3.柱状图的CS架构实现
实现代码如下:BarCharts.javapackage servlet;
import java.awt.Color;import java.awt.Font;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.renderer.category.BarRenderer3D;import org.jfree.data.category.CategoryDataset;import org.jfree.data.general.DatasetUtilities;import org.jfree.ui.ApplicationFrame;import org.jfree.ui.RefineryUtilities;
public class BarCharts extends ApplicationFrame{ private static final long serialVersionUID = 1L; public BarCharts(String title) { super(title); setContentPane(createDemoBar()); }
//生成显示图表的面板 public static JPanel createDemoBar() { JFreeChart jfreechart=createChart(createDataset()); return new ChartPanel(jfreechart); }
//生成图表主对象JFreeChart public static JFreeChart createChart(CategoryDataset dataset) { JFreeChart chart=ChartFactory.createBarChart3D("Fruit sales","Fruit","Sales",dataset,PlotOrientation.VERTICAL,true,false,false);//第三个true表示显示每个颜色柱子的柱名 CategoryPlot plot=chart.getCategoryPlot();//设置图的高级属性 BarRenderer3D renderer=new BarRenderer3D();//3D属性修改 renderer.setBaseOutlinePaint(Color.BLACK);//设置边框颜色为black renderer.setWallPaint(Color.gray);//设置wall的颜色为gray renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());//设置柱顶数据,API中居然没有StandardCategoryItemLabelGenerator这个类 renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));//设置柱顶数据字体 renderer.setItemLabelsVisible(true);//打开ItemLabel开关 plot.setRenderer(renderer);//将修改后的属性值保存到图中 plot.setForegroundAlpha(0.6f); return chart; }
//生成数据 public static CategoryDataset createDataset(){ double[][] data=new double[][]{{672,766,223,540,126},{325,521,210,340,106},{332,256,523,240,526}};//设置数据 String[] rowKeys={"Apple","Pear","BANANA"};//行标志 String[] columnKeys={"Peking","ShangHai","ChengDu","ChongQing","GuangZhou"};//列标志 CategoryDataset linedataset=DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data);//建立数据集 return linedataset; } public static void main(String args[]){ BarCharts fjc=new BarCharts("BarCharts"); fjc.pack(); RefineryUtilities.centerFrameOnScreen(fjc); fjc.setVisible(true); }}
相关文章推荐
- 插件jfreechart+shh实现树状图 柱状图 折线图
- PHP实现动态生成饼状图、柱状图和折线图(转)
- 基于SpringMVC框架使用ECharts3.0实现折线图,柱状图,饼状图,的绘制(上篇)
- 报表 之 饼状图 单组柱状图 多组柱状图 堆积柱状图 折线图
- jfreechart产生饼状图,折线图,柱状图
- 基于SpringMVC框架使用ECharts3.0实现折线图,柱状图,饼状图,的绘制(上篇)
- PHP实现动态生成饼状图、柱状图和折线图(转载)
- 基于SpringMVC框架使用ECharts3.0实现折线图,柱状图,饼状图,的绘制(上篇)
- ExtJS 3.0 中的Flash报表的使用之一:柱状图、横向柱状图、折线图、饼状图
- JfreeChart画饼图,折线图,柱状图
- 使用amCharts工具做报表的小记 flash报表 饼图 柱状图 折线图
- JFreeChart的柱状图实现
- JFreeChart生成柱状图、饼状图、折线图详解
- PUSH模式动态水晶报表的实现-动态数据以及汇总信息的的实现
- JFreeChart在struts2中实现柱状图
- ReportView报表实现带参数存储过程创建报表以及为rdlc传递参
- 统计报表柱状图,折线图生成
- 使用amCharts工具做报表的小记 flash报表 饼图 柱状图 折线图
- Reporting Service Tips 101(#4) - 使用RS实现报表的自动生成以及在程序中调用RS
- ReportView报表实现带参数存储过程创建报表以及为rdlc传递参