JFreeChart使用方法与例子

来源:互联网 发布:温州慧网网络好不好 编辑:程序博客网 时间:2024/05/29 07:27

转自:http://blog.csdn.net/crazy1235/article/details/8535999

 

介绍

  JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications,applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(barcharts)、散点图(scatter plots)、时序图(time series)、甘特图(Ganttcharts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。

       获取

   JFreeChart是JFreeChart公司在开源网站SourceForge.net上的一个项目,该公司的主要产品有如下: 
    1.JFreeReport:报表解决工具 
    2.JFreeChart:Java图形解决方案(Application/Applet/Servlet/Jsp) 
    3.JCommon:JFreeReport和JFreeChart的公共类库 
    4.JFreeDesigner:JFreeReport的报表设计工具 
   我们可以从jfree官方网站上获取最新版本和相关资料(但是jfree的document需要40美金才能获取),  

   官方网站:http://www.jfree.org/index.html

          功能介绍:

   JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面: 
     pie charts(2D and 3D) :饼图(平面和立体) 
     bar charts(regular and stacked, with an optional 3D effect):柱状图 
     line andarea charts :曲线图 
     scatterplots and bubble charts 
     timeseries, high/low/open/close charts and candle stick charts:时序图 
     combinationcharts :复合图 
     Paretocharts :排列图
     Ganttcharts :甘特图 
     wind plots,meter charts and symbol charts :符号表图
     wafer mapcharts ( 态图表,饼图(二维和三维) , 柱状图 (水平,垂直),线图,点图,时间变化图,甘特图, 股票行情图,混和图, 温度计图,刻度图等常用商用图表) 

   JFreeChart核心类库介绍: 
    研究jfreechart源码发现源码的主要由两个大的包组成:org.jfree.chart,org.jfree.data。其中前者主要与图形本身有关,后者与图形显示的数据有关。具体研究如果大家有兴趣的话可以自己研究。 
    核心类主要有: 
    org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象 
    org.jfree.data.category.XXXDataSet:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类 
    org.jfree.chart.plot.XXXPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持 
    org.jfree.chart.axis.XXXAxis:用于处理图表的两个轴:纵轴和横轴 
    org.jfree.chart.render.XXXRender:负责如何显示一个图表对象 
    org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接 
    XXXXXToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类 

   配置安装:

    如图所示:从官网下载下来工具包之后,解压之后的结构如图所示。

    lib文件夹中是所需的jar包。source文件夹中是源码,需要看的话,可以添加到eclipse中查看。

     新建一个项目,将jfreechart-1.0.1.jar, jcommon-1.0.0.jar,gunjaxp.jar 这三个包添加到你的项目中就OK了。

    代码编写

     用JFreeChart生成的各种图表,可以直接保存成为本地的一个图片(.jpeg.png等格式),也可以直接显示到图形用户界面,还可以显示在jsp网页上。下面我只介绍前两种方法!

     大体上分为一下几个步骤:

    (1)建立Dataset。将你所想要显示的数据都放到这个库中。

    (2)建立JFreeChart对象。将你的dataset填入到这个对象中。

    (3)设置各种JFreeChart的属性和效果。通过它提供的各种方法和接口设置相关的属性。

     (4)生成图表,然后按照个人的需求进行执行。

    个人感觉这几个步骤类似于C#中的数据绑定,不知网友们如何看呢?!

     先以柱状图为例,下面看代码:

[java] viewplaincopyprint?
  1. package chart.demo02;  
  2.   
  3. import java.awt.Font;  
  4. import java.awt.RenderingHints;  
  5. import java.io.FileOutputStream;  
  6.   
  7. import org.jfree.chart.ChartFactory;  
  8. import org.jfree.chart.ChartFrame;  
  9. import org.jfree.chart.ChartUtilities;  
  10. import org.jfree.chart.JFreeChart;  
  11. import org.jfree.chart.axis.CategoryAxis;  
  12. import org.jfree.chart.axis.ValueAxis;  
  13. import org.jfree.chart.plot.CategoryPlot;  
  14. import org.jfree.chart.plot.PlotOrientation;  
  15. import org.jfree.chart.title.TextTitle;  
  16. import org.jfree.data.category.CategoryDataset;  
  17. import org.jfree.data.category.DefaultCategoryDataset;  
  18.   
  19. public class BarChartDemo  
  20.     public static void main(String[] args)  
  21.         // 1. 得到数据  
  22.         CategoryDataset dataset getDataSet();  
  23.         // 2. 构造chart  
  24.         JFreeChart chart ChartFactory.createBarChart3D(  
  25.                 "水果产量图"// 图表标题  
  26.                 "水果"// 目录轴的显示标签--横轴  
  27.                 "产量"// 数值轴的显示标签--纵轴  
  28.                 dataset, // 数据集  
  29.                 PlotOrientation.VERTICAL, // 图表方向:水平、  
  30.                 true// 是否显示图例(对于简单的柱状图必须  
  31.                 false// 是否生成工具  
  32.                 false // 是否生成URL链接  
  33.                 );  
  34.         // 3. 处理chart中文显示问题  
  35.         processChart(chart);  
  36.   
  37.         // 4. chart输出图片  
  38.         writeChartAsImage(chart);  
  39.   
  40.         // 5. chart 以swing形式输出  
  41.         ChartFrame pieFrame new ChartFrame("XXX"chart);  
  42.         pieFrame.pack();  
  43.         pieFrame.setVisible(true);  
  44.   
  45.      
  46.   
  47.       
  48.     private static CategoryDataset getDataSet()  
  49.         DefaultCategoryDataset dataset new DefaultCategoryDataset();  
  50.         dataset.addValue(100"北京""苹果");  
  51.         dataset.addValue(120"上海""苹果");  
  52.         dataset.addValue(160"广州""苹果");  
  53.         dataset.addValue(210"北京""梨子");  
  54.         dataset.addValue(220"上海""梨子");  
  55.         dataset.addValue(230"广州""梨子");  
  56.         dataset.addValue(330"北京""葡萄");  
  57.         dataset.addValue(340"上海""葡萄");  
  58.         dataset.addValue(340"广州""葡萄");  
  59.         dataset.addValue(420"北京""香蕉");  
  60.         dataset.addValue(430"上海""香蕉");  
  61.         dataset.addValue(400"广州""香蕉");  
  62.         dataset.addValue(510"北京""荔枝");  
  63.         dataset.addValue(530"上海""荔枝");  
  64.         dataset.addValue(510"广州""荔枝");  
  65.         return dataset;  
  66.      
  67.   
  68.       
  69.     private static void processChart(JFreeChart chart)  
  70.         CategoryPlot plot chart.getCategoryPlot();  
  71.         CategoryAxis domainAxis plot.getDomainAxis();  
  72.         ValueAxis rAxis plot.getRangeAxis();  
  73.         chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,  
  74.                 RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);  
  75.         TextTitle textTitle chart.getTitle();  
  76.         textTitle.setFont(new Font("宋体"Font.PLAIN, 20));  
  77.         domainAxis.setTickLabelFont(new Font("sans-serif"Font.PLAIN, 11));  
  78.         domainAxis.setLabelFont(new Font("宋体"Font.PLAIN, 12));  
  79.         rAxis.setTickLabelFont(new Font("sans-serif"Font.PLAIN, 12));  
  80.         rAxis.setLabelFont(new Font("宋体"Font.PLAIN, 12));  
  81.         chart.getLegend().setItemFont(new Font("宋体"Font.PLAIN, 12));  
  82.         // renderer.setItemLabelGenerator(new LabelGenerator(0.0));  
  83.         // renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));  
  84.         // renderer.setItemLabelsVisible(true);  
  85.      
  86.   
  87.       
  88.     private static void writeChartAsImage(JFreeChart chart)  
  89.         FileOutputStream fos_jpg null 
  90.         try  
  91.             fos_jpg new FileOutputStream("D:\\test\\fruit.jpg");  
  92.             ChartUtilities.writeChartAsJPEG(fos_jpg, 1chart, 400300null);  
  93.         catch (Exception e)  
  94.             e.printStackTrace();  
  95.         finally  
  96.             try  
  97.                 fos_jpg.close();  
  98.             catch (Exception e)  
  99.              
  100.          
  101.      
  102.  
package chart.demo02;import java.awt.Font;import java.awt.RenderingHints;import java.io.FileOutputStream;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartFrame;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.title.TextTitle;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;public class BarChartDemo {        public static void main(String[] args) {                // 1. 得到数据                CategoryDataset dataset = getDataSet();                // 2. 构造chart                JFreeChart chart = ChartFactory.createBarChart3D(                                "水果产量图", // 图表标题                                "水果", // 目录轴的显示标签--横轴                                "产量", // 数值轴的显示标签--纵轴                                dataset, // 数据集                                PlotOrientation.VERTICAL, // 图表方向:水平、                                true, // 是否显示图例(对于简单的柱状图必须                                false, // 是否生成工具                                false // 是否生成URL链接                                );                // 3. 处理chart中文显示问题                processChart(chart);                // 4. chart输出图片                writeChartAsImage(chart);                // 5. chart 以swing形式输出                ChartFrame pieFrame = new ChartFrame("XXX", chart);                pieFrame.pack();                pieFrame.setVisible(true);        }                private static CategoryDataset getDataSet() {                DefaultCategoryDataset dataset = new DefaultCategoryDataset();                dataset.addValue(100, "北京", "苹果");                dataset.addValue(120, "上海", "苹果");                dataset.addValue(160, "广州", "苹果");                dataset.addValue(210, "北京", "梨子");                dataset.addValue(220, "上海", "梨子");                dataset.addValue(230, "广州", "梨子");                dataset.addValue(330, "北京", "葡萄");                dataset.addValue(340, "上海", "葡萄");                dataset.addValue(340, "广州", "葡萄");                dataset.addValue(420, "北京", "香蕉");                dataset.addValue(430, "上海", "香蕉");                dataset.addValue(400, "广州", "香蕉");                dataset.addValue(510, "北京", "荔枝");                dataset.addValue(530, "上海", "荔枝");                dataset.addValue(510, "广州", "荔枝");                return dataset;        }                private static void processChart(JFreeChart chart) {                CategoryPlot plot = chart.getCategoryPlot();                CategoryAxis domainAxis = plot.getDomainAxis();                ValueAxis rAxis = plot.getRangeAxis();                chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,                                RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);                TextTitle textTitle = chart.getTitle();                textTitle.setFont(new Font("宋体", Font.PLAIN, 20));                domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));                domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));                rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));                rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));                chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));                // renderer.setItemLabelGenerator(new LabelGenerator(0.0));                // renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));                // renderer.setItemLabelsVisible(true);        }                private static void writeChartAsImage(JFreeChart chart) {                FileOutputStream fos_jpg = null;                try {                        fos_jpg = new FileOutputStream("D:\\test\\fruit.jpg");                        ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300, null);                } catch (Exception e) {                        e.printStackTrace();                } finally {                        try {                                fos_jpg.close();                        } catch (Exception e) {                        }                }        }}


效果图如下:

接下来看其他的图表的生成:

饼状图:

[java] viewplaincopyprint?
  1. public void createPieChart()  
  2.         DefaultPieDataset dataset new DefaultPieDataset();  
  3.         dataset.setValue("苹果"250);  
  4.         dataset.setValue("桔子"350);  
  5.         dataset.setValue("梨子"200);  
  6.         dataset.setValue("香蕉"50);  
  7.         dataset.setValue("荔枝"150);  
  8.         JFreeChart chart ChartFactory.createPieChart("水果产量比率图"dataset,  
  9.                 truetruetrue);  
  10.   
  11.         Plot cp chart.getPlot();  
  12.         cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置  
  13.   
  14.         // ChartFrame frame new ChartFrame("水果产量比率图 ", chart, true);  
  15.         // frame.pack();  
  16.         // frame.setVisible(true);  
  17.   
  18.         try  
  19.             ChartUtilities.saveChartAsPNG(new File("D:\\test\\PieChart.png"),  
  20.                     chart, 800500);  
  21.         catch (IOException e)  
  22.             e.printStackTrace();  
  23.          
  24.      
public void createPieChart() {                DefaultPieDataset dataset = new DefaultPieDataset();                dataset.setValue("苹果", 250);                dataset.setValue("桔子", 350);                dataset.setValue("梨子", 200);                dataset.setValue("香蕉", 50);                dataset.setValue("荔枝", 150);                JFreeChart chart = ChartFactory.createPieChart("水果产量比率图", dataset,                                true, true, true);                Plot cp = chart.getPlot();                cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置                // ChartFrame frame = new ChartFrame("水果产量比率图 ", chart, true);                // frame.pack();                // frame.setVisible(true);                try {                        ChartUtilities.saveChartAsPNG(new File("D:\\test\\PieChart.png"),                                        chart, 800, 500);                } catch (IOException e) {                        e.printStackTrace();                }        }

3D饼状图
[java] viewplaincopyprint?
  1. public void createPieChart3D()  
  2.         DefaultPieDataset dataset new DefaultPieDataset();  
  3.         dataset.setValue("苹果"250);  
  4.         dataset.setValue("桔子"350);  
  5.         dataset.setValue("梨子"200);  
  6.         dataset.setValue("香蕉"50);  
  7.         dataset.setValue("荔枝"150);  
  8.         JFreeChart chart ChartFactory.createPieChart3D("水果产量比率图"dataset,  
  9.                 truetruetrue);  
  10.         PiePlot3D plot (PiePlot3D) chart.getPlot();  
  11.         // 设置开始角度  
  12.         plot.setStartAngle(150D);  
  13.         // 设置方向为"顺时针方向"  
  14.         plot.setDirection(Rotation.CLOCKWISE);  
  15.         // 设置透明度,0.5F为半透明,1为不透明,0为全透明  
  16.         plot.setForegroundAlpha(1F);  
  17.         // 没有数据的时候显示的内容  
  18.         plot.setNoDataMessage("无数据显示");  
  19.         // 背景色设置  
  20.         plot.setBackgroundPaint(ChartColor.WHITE);  
  21.         // ChartFrame frame new ChartFrame("水果产量比率图 ", chart, true);  
  22.         // frame.pack();  
  23.         // frame.setVisible(true);  
  24.   
  25.         try  
  26.             ChartUtilities.saveChartAsPNG(new File("D:\\test\\PieChart3D.png"),  
  27.                     chart, 800500);  
  28.         catch (IOException e)  
  29.             e.printStackTrace();  
  30.          
  31.      
public void createPieChart3D() {                DefaultPieDataset dataset = new DefaultPieDataset();                dataset.setValue("苹果", 250);                dataset.setValue("桔子", 350);                dataset.setValue("梨子", 200);                dataset.setValue("香蕉", 50);                dataset.setValue("荔枝", 150);                JFreeChart chart = ChartFactory.createPieChart3D("水果产量比率图", dataset,                                true, true, true);                PiePlot3D plot = (PiePlot3D) chart.getPlot();                // 设置开始角度                plot.setStartAngle(150D);                // 设置方向为"顺时针方向"                plot.setDirection(Rotation.CLOCKWISE);                // 设置透明度,0.5F为半透明,1为不透明,0为全透明                plot.setForegroundAlpha(1F);                // 没有数据的时候显示的内容                plot.setNoDataMessage("无数据显示");                // 背景色设置                plot.setBackgroundPaint(ChartColor.WHITE);                // ChartFrame frame = new ChartFrame("水果产量比率图 ", chart, true);                // frame.pack();                // frame.setVisible(true);                try {                        ChartUtilities.saveChartAsPNG(new File("D:\\test\\PieChart3D.png"),                                        chart, 800, 500);                } catch (IOException e) {                        e.printStackTrace();                }        }

柱状图:
[java] viewplaincopyprint?
  1. public void createColumnChart()  
  2.         DefaultCategoryDataset dataset new DefaultCategoryDataset();  
  3.         dataset.addValue(100"北京""苹果");  
  4.         dataset.addValue(100"上海""苹果");  
  5.         dataset.addValue(100"广州""苹果");  
  6.         dataset.addValue(200"北京""梨子");  
  7.         dataset.addValue(200"上海""梨子");  
  8.         dataset.addValue(200"广州""梨子");  
  9.         dataset.addValue(300"北京""葡萄");  
  10.         dataset.addValue(300"上海""葡萄");  
  11.         dataset.addValue(300"广州""葡萄");  
  12.         dataset.addValue(400"北京""香蕉");  
  13.         dataset.addValue(400"上海""香蕉");  
  14.         dataset.addValue(400"广州""香蕉");  
  15.         dataset.addValue(500"北京""荔枝");  
  16.         dataset.addValue(500"上海""荔枝");  
  17.         dataset.addValue(500"广州""荔枝");  
  18.   
  19.         JFreeChart chart ChartFactory.createBarChart("水果产量图""水量""产量" 
  20.                 dataset, PlotOrientation.VERTICAL, truetruetrue);  
  21.   
  22.         CategoryPlot cp chart.getCategoryPlot();  
  23.         cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置  
  24.         cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置  
  25.   
  26.         // ChartFrame frame=new ChartFrame ("水果产量图 ",chart,true);  
  27.         // frame.pack();  
  28.         // frame.setVisible(true);  
  29.   
  30.         try  
  31.             ChartUtilities.saveChartAsPNG(new File("D:\\test\\ColumnChart.png"),  
  32.                     chart, 800500);  
  33.         catch (IOException e)  
  34.             e.printStackTrace();  
  35.          
  36.      
public void createColumnChart() {                DefaultCategoryDataset dataset = new DefaultCategoryDataset();                dataset.addValue(100, "北京", "苹果");                dataset.addValue(100, "上海", "苹果");                dataset.addValue(100, "广州", "苹果");                dataset.addValue(200, "北京", "梨子");                dataset.addValue(200, "上海", "梨子");                dataset.addValue(200, "广州", "梨子");                dataset.addValue(300, "北京", "葡萄");                dataset.addValue(300, "上海", "葡萄");                dataset.addValue(300, "广州", "葡萄");                dataset.addValue(400, "北京", "香蕉");                dataset.addValue(400, "上海", "香蕉");                dataset.addValue(400, "广州", "香蕉");                dataset.addValue(500, "北京", "荔枝");                dataset.addValue(500, "上海", "荔枝");                dataset.addValue(500, "广州", "荔枝");                JFreeChart chart = ChartFactory.createBarChart("水果产量图", "水量", "产量",                                dataset, PlotOrientation.VERTICAL, true, true, true);                CategoryPlot cp = chart.getCategoryPlot();                cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置                cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置                // ChartFrame frame=new ChartFrame ("水果产量图 ",chart,true);                // frame.pack();                // frame.setVisible(true);                try {                        ChartUtilities.saveChartAsPNG(new File("D:\\test\\ColumnChart.png"),                                        chart, 800, 500);                } catch (IOException e) {                        e.printStackTrace();                }        }

折线图:

[java] viewplaincopyprint?
  1. public void createLineChart()  
  2.         DefaultCategoryDataset dataset new DefaultCategoryDataset();  
  3.         dataset.addValue(100"北京""苹果");  
  4.         dataset.addValue(200"上海""苹果");  
  5.         dataset.addValue(300"广州""苹果");  
  6.         dataset.addValue(400"北京""梨子");  
  7.         dataset.addValue(500"上海""梨子");  
  8.         dataset.addValue(600"广州""梨子");  
  9.         dataset.addValue(700"北京""葡萄");  
  10.         dataset.addValue(800"上海""葡萄");  
  11.         dataset.addValue(900"广州""葡萄");  
  12.         dataset.addValue(800"北京""香蕉");  
  13.         dataset.addValue(700"上海""香蕉");  
  14.         dataset.addValue(600"广州""香蕉");  
  15.         dataset.addValue(500"北京""荔枝");  
  16.         dataset.addValue(400"上海""荔枝");  
  17.         dataset.addValue(300"广州""荔枝");  
  18.         JFreeChart chart ChartFactory.createLineChart("水果产量图 ""水果""产量" 
  19.                 dataset, PlotOrientation.VERTICAL, truetruetrue);  
  20.   
  21.         CategoryPlot cp chart.getCategoryPlot();  
  22.         cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置  
  23.         cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置  
  24.   
  25.         // ChartFrame frame=new ChartFrame ("水果产量图 ",chart,true);  
  26.         // frame.pack();  
  27.         // frame.setVisible(true);  
  28.   
  29.         try  
  30.             ChartUtilities.saveChartAsPNG(new File("D:\\test\\LineChart.png"),  
  31.                     chart, 800500);  
  32.         catch (IOException e)  
  33.             e.printStackTrace();  
  34.          
  35.      
public void createLineChart() {                DefaultCategoryDataset dataset = new DefaultCategoryDataset();                dataset.addValue(100, "北京", "苹果");                dataset.addValue(200, "上海", "苹果");                dataset.addValue(300, "广州", "苹果");                dataset.addValue(400, "北京", "梨子");                dataset.addValue(500, "上海", "梨子");                dataset.addValue(600, "广州", "梨子");                dataset.addValue(700, "北京", "葡萄");                dataset.addValue(800, "上海", "葡萄");                dataset.addValue(900, "广州", "葡萄");                dataset.addValue(800, "北京", "香蕉");                dataset.addValue(700, "上海", "香蕉");                dataset.addValue(600, "广州", "香蕉");                dataset.addValue(500, "北京", "荔枝");                dataset.addValue(400, "上海", "荔枝");                dataset.addValue(300, "广州", "荔枝");                JFreeChart chart = ChartFactory.createLineChart("水果产量图 ", "水果", "产量",                                dataset, PlotOrientation.VERTICAL, true, true, true);                CategoryPlot cp = chart.getCategoryPlot();                cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置                cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置                // ChartFrame frame=new ChartFrame ("水果产量图 ",chart,true);                // frame.pack();                // frame.setVisible(true);                try {                        ChartUtilities.saveChartAsPNG(new File("D:\\test\\LineChart.png"),                                        chart, 800, 500);                } catch (IOException e) {                        e.printStackTrace();                }        }

3D折线图:
[java] viewplaincopyprint?
  1. public void createLineChart3D()  
  2.         DefaultCategoryDataset dataset new DefaultCategoryDataset();  
  3.         dataset.addValue(300"北京""苹果");  
  4.         dataset.addValue(100"上海""苹果");  
  5.         dataset.addValue(900"广州""苹果");  
  6.         dataset.addValue(200"北京""梨子");  
  7.         dataset.addValue(200"上海""梨子");  
  8.         dataset.addValue(700"广州""梨子");  
  9.         dataset.addValue(300"北京""葡萄");  
  10.         dataset.addValue(300"上海""葡萄");  
  11.         dataset.addValue(300"广州""葡萄");  
  12.         dataset.addValue(400"北京""香蕉");  
  13.         dataset.addValue(800"上海""香蕉");  
  14.         dataset.addValue(400"广州""香蕉");  
  15.         dataset.addValue(100"北京""荔枝");  
  16.         dataset.addValue(500"上海""荔枝");  
  17.         dataset.addValue(500"广州""荔枝");  
  18.         JFreeChart chart ChartFactory.createLineChart3D("水果产量图 ""水果""产量" 
  19.                 dataset, PlotOrientation.VERTICAL, truetruetrue);  
  20.   
  21.         CategoryPlot cp chart.getCategoryPlot();  
  22.         cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置  
  23.         cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置  
  24.   
  25.         // ChartFrame frame=new ChartFrame ("水果产量图 ",chart,true);  
  26.         // frame.pack();  
  27.         // frame.setVisible(true);  
  28.   
  29.         try  
  30.             ChartUtilities.saveChartAsPNG(new File("D:\\test\\LineChart3D.png"),  
  31.                     chart, 800500);  
  32.         catch (IOException e)  
  33.             e.printStackTrace();  
  34.          
  35.      
0 0
原创粉丝点击