JfreeChar学习笔记

来源:互联网 发布:苹果笔记本清理软件 编辑:程序博客网 时间:2024/06/03 23:48

1,首先导入jfreechart的三个jar包,官网下载的lib中有9个jar,但我们只需要其中的3个就OK、可以去官网下载 http://sourceforge.net/projects/jfreechart/files/

          iText-2.1.5.jar ,jcommon-1.0.17.jar,jfreechart-1.0.14.jar,三个jar包导入

2,首先写一个比较简单的饼图

package cn.ittec.zfx.jfreechart;import java.awt.Font;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartFrame;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.PiePlot;import org.jfree.data.general.DefaultPieDataset;public class JfreeChart {public static void main(String[] args)    {DefaultPieDataset bin=new DefaultPieDataset(); //建立一个默认的饼图        bin.setValue("架构师", 20000);   bin.setValue("代码级程序员", 5000);         bin.setValue("项目经理", 9000);         bin.setValue("软件部经理", 12000);              JFreeChart chart=ChartFactory.createPieChart("今年程序员价格",bin,true,true,false);         //可以查具体的API文档,第一个参数是标题,第二个参数是一个数据集,第三个参数表示是否显示Legend,第四个参数表示是否显示提示,第五个参数表示图中是否存在URL                ChartFrame chartFrame=new ChartFrame("今年程序员价格",chart);         //chart要放在Java容器组件中,ChartFrame继承自java的Jframe类。该第一个参数的数据是放在窗口左上角的,不是正中间的标题。        //中文乱码,设置字体//标题字体chart.getTitle().setFont(new Font("宋体", Font.BOLD, 25));//提示条字体chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 15));//获得绘图区PiePlot plot = (PiePlot) chart.getPlot();plot.setLabelFont(new Font("宋体", Font.PLAIN, 20));chartFrame.pack(); //以合适的大小展现图形      chartFrame.setVisible(true);//图形是否可见           }}


 


 


 

效果是

 

 

3,图片说明

 

4,将生成的饼图自动生成到指定磁盘下的代码

 

package cn.ittec.zfx.jfreechart;import java.awt.Font;import java.io.FileOutputStream;import java.io.OutputStream;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.PiePlot;import org.jfree.chart.title.LegendTitle;import org.jfree.chart.title.TextTitle;import org.jfree.data.general.DefaultPieDataset;public class JfreeCharTest3 { /** * 将饼图输入到指定磁盘下 * @param args * @throws Exception */public static void main(String[] args) throws Exception {//创建一个饼图对象 DefaultPieDataset bin=new DefaultPieDataset(); //设置饼图数据 bin.setValue("架构师", 20000);   bin.setValue("代码级程序员", 5000);         bin.setValue("项目经理", 9000);         bin.setValue("软件部经理", 12000);         JFreeChart chart=ChartFactory.createPieChart("今年程序员价格",bin,true,true,false);       //设置头部字体   chart.setTitle(new TextTitle("今年程序员价格",new Font("宋体",Font.BOLD+Font.ITALIC,20)));    //设置Legend   解决中文乱码问题 LegendTitle legend=chart.getLegend(0);       legend.setItemFont(new Font("宋体",Font.BOLD,14));          PiePlot plot=(PiePlot) chart.getPlot();//设置Plot          plot.setLabelFont(new Font("隶书",Font.BOLD,16));                  OutputStream os = new FileOutputStream("D:/bin.jpeg");//图片是文件格式的,故要用到FileOutputStream用来输出。         ChartUtilities.writeChartAsJPEG(os, chart, 1000, 800);        //使用一个面向application的工具类,将chart转换成JPEG格式的图片。第3个参数是宽度,第4个参数是高度。                os.close();//关闭输出流} }


这里是说制作饼图的实例,如果想制作其他图形只需要将

DefaultPieDataset dpd=new DefaultPieDataset();创建的对象换成其他的对象然后做少许的调整即可

 DefaultCategoryDataset dataset=new DefaultCategoryDataset();柱状图

 

 

 

原创粉丝点击