jfreechart应用篇

原创 2006年05月30日 11:27:00

前段时间有个朋友要做柱图,出了点问题,GOOGLE了半天,原来网上很多人都有这个问题,而且发现竟然只有饼图和柱图(还是有点问题的),就花了一早上,把以前做的几个项目里的几种常用的图的用法拿出来列一下,希望对那些想用jfreechart出图的人有点帮助。

(附:以下为1.0.0-rc)

一、饼图: 

 

      DefaultPieDataset dataset=new DefaultPieDataset();
        //开始填充数据
        dataset.setValue("Java", new Double(43.200000000000003D));
        dataset.setValue("Visual Basic", new Double(10D));
        dataset.setValue("C/C++", new Double(17.5D));
        dataset.setValue("PHP", new Double(32.5D));
        dataset.setValue("Perl", new Double(12.5D));
       
        JFreeChart chart=ChartFactory.createPieChart("2D饼型图",dataset,true,true,true);
        chart.setTitle("统计图");//设置图片标题
        ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());
       

         String imgaeFileName=ServletUtilities.saveChartAsJPEG(chart,300,200,info,session);//设置生成图片,包括图片的大小,长度是300,宽是200

        session.setAttribute("image_name1",imageFileName;
        String URL= request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;//Display为org.jfree.chart.servlet.DisplayChart
        session.setAttribute("image_url1",URL);

 

显示代码:(以下显示代码不注明了,是一样的,只是session中的属性名不同而已,大家注意区别)

<img src="<%=session.getAttribute("image_url1")%>" width=300 height=200 border=0 usemap="#<%=session.getAttribute("image_name1") %>">

二、3D饼图

 

        DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
        defaultpiedataset.setValue("Java", new Double(43.200000000000003D));
        defaultpiedataset.setValue("Visual Basic", new Double(10D));
        defaultpiedataset.setValue("C/C++", new Double(17.5D));
        defaultpiedataset.setValue("PHP", new Double(32.5D));
        defaultpiedataset.setValue("Perl", new Double(12.5D));
       
        JFreeChart jfreechart = ChartFactory.createPieChart3D("3D 饼图", defaultpiedataset, true, false, false);
        PiePlot3D pieplot3d = (PiePlot3D)jfreechart.getPlot();
          
       String imageFileName2= ServletUtilities.saveChartAsJPEG(jfreechart,300,200,session);
        session.setAttribute("image_name2",imageFileName2);
         String URL=request.getContextPath()+"/servlet/DisplayChart?filename="+imageFileName2;

         session.setAttribute("image_url2",URL);

 

 

三、柱图

        DefaultCategoryDataset dataset=new DefaultCategoryDataset();//设置数据源
        
        dataset.setValue(new Double(43.200000000000003D),"图解","Java" );
        dataset.setValue( new Double(10D),"图解","Visual Basic");
        dataset.setValue(new Double(17.5D), "图解","C/C++");
        dataset.setValue(new Double(32.5D), "图解","PHP");
        dataset.setValue(new Double(12.5D), "图解","Perl");
         //添加数据,参数包括名称和数值
        
        
 
         JFreeChart chart1=ChartFactory.createBarChart3D("柱图","大人物","地盘",                dataset,PlotOrientation.VERTICAL,false,false,false);

         CategoryPlot plot=chart1.getCategoryPlot();
      
         //BarRenderer3D renderer1=new BarRenderer3D();
 
 final BarRenderer renderer1 = (BarRenderer) plot.getRenderer();
    
     renderer1.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());      

         renderer1.setItemLabelsVisible(true);//显示每个柱子上的数据
       
         renderer1.setItemMargin(0.1);//设置每个柱子之间的距离
         plot.setRenderer(renderer1);//让上面对柱子的设置生效
        String imageFileName=ServletUtilities.saveChartAsJPEG(chart1,300,200,session);
         //生成图片,包括图片的大小

         session.setAttribute("image_name3",imageFileName);
         String URL=request.getContextPath()+"/servlet/DisplayChart?filename="+imageFileName;

         session.setAttribute("image_url3",URL);

四、线图

 

DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
        defaultcategorydataset.addValue(212D, "Classes", "JDK 1.0");
        defaultcategorydataset.addValue(504D, "Classes", "JDK 1.1");
        defaultcategorydataset.addValue(1520D, "Classes", "SDK 1.2");
        defaultcategorydataset.addValue(1842D, "Classes", "SDK 1.3");
        defaultcategorydataset.addValue(2991D, "Classes", "SDK 1.4");
       
        JFreeChart jfreechart = ChartFactory.createLineChart("Java Standard Class Library", "线图", "Class Count", defaultcategorydataset, PlotOrientation.VERTICAL, false, true, false);
        jfreechart.addSubtitle(new TextTitle("Number of Classes By Release"));
        TextTitle texttitle = new TextTitle("线图");
        texttitle.setFont(new Font("SansSerif", 0, 10));
        texttitle.setPosition(RectangleEdge.BOTTOM);
        texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT);
        jfreechart.addSubtitle(texttitle);
        jfreechart.setBackgroundPaint(Color.white);
        CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
        categoryplot.setBackgroundPaint(Color.lightGray);
        categoryplot.setRangeGridlinePaint(Color.white);
        NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
        numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)categoryplot.getRenderer();
        lineandshaperenderer.setShapesVisible(true);
        lineandshaperenderer.setDrawOutlines(true);
        lineandshaperenderer.setUseFillPaint(true);
        lineandshaperenderer.setFillPaint(Color.white);
       
        String imageFileName4 = ServletUtilities.saveChartAsJPEG(jfreechart,500,500,session);
       
       session.setAttribute("image_name4",imageFileName4);
         String URL=request.getContextPath()+"/servlet/DisplayChart?filename="+imageFileName4;

         session.setAttribute("image_url4",URL);

 五、时序图

 

TimeSeries timeseries = new TimeSeries("Random Data");
        Day day = new Day(1, 1, 1990);
        double d = 100D;
        for(int j = 0; j < 4000; j++)
            try
            {
                d = (d + Math.random()) - 0.5D;
                timeseries.add(day, new Double(d));
                day = (Day)day.next();
            }
            catch(SeriesException seriesexception)
            {
                System.err.println("Error adding to series");
            }
            XYDataset xydataset = new TimeSeriesCollection(timeseries);
            JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("时序图", "Day", "Value", xydataset, false, false, false);
        XYPlot xyplot = (XYPlot)jfreechart.getPlot();
        XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer();
        xylineandshaperenderer.setDefaultShapesVisible(false);
        xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(0.5F, 1, 1, 5F, new float[] {
            5F, 10F
        }, 0.0F));
        xyplot.setRenderer(xylineandshaperenderer);
       
        String imageFileName5 = ServletUtilities.saveChartAsJPEG(jfreechart,500,500,session);
       
       session.setAttribute("image_name5",imageFileName5);
         String URL=request.getContextPath()+"/servlet/DisplayChart?filename="+imageFileName5;

         session.setAttribute("image_url5",URL);

 

当然jfreechart能做的图还是很多的,不过我总觉得在Swing等环境下,效果还要好点,至少可以实现动态图,比如说实时股票图等,WEB页面要做也是applet,实在是个缺憾.

还有其他很多图,我就不一一类举了,我日常就用这五种图最多,大家如果还有需要的,可以和我联系,我发给你。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Struts2下的JFreeChart应用

本人是Java菜鸟,最近接触JFreeChart,做一下学习总结,与各位分享,有哪里不对劲的,请各位前辈指出来方便我的学习,thx! JFreeChart的官网:http://www.jfree.or...

JFreeChart应用实例-时序图

package Time; import java.awt.Color; import java.awt.Font; import org.jfree.chart.ChartFactory; im...

JFreeChart 高级应用 一 图表条目标签(Item Label)

1、简介 1.1 概述 对于大多数的图表类型来说,JFreeChart允许我们在图表的每个条目上、或者内部、或者附近显示条目标签。例如,下图在每个条形图上显示出了真实的值。 ...

jfreechart应用_经典例题

jfreechart应用_经典例题 1:从http://sourceforge.net/projects/jfreechart/files/下载jfreechart-1.0.13 (最新...

JAVA基础应用——JFreeChart 使用

JFreeChart是一个Java下的免费的图表控件。网址: http://www.jfree.org/jfreechart/ 不多说,直接上代码: 饼状图: package chartTest;...
  • xundh
  • xundh
  • 2015-01-08 19:31
  • 471

JFreeChart在JSP中的应用实例

JFreeChart在JSP中的应用实例 前段时间,也就是去年,在做一个项目的时候有这样一个需求,根据用户在Web页面上向服务器提交的数据,根据条件从数据库中取出相应的一系列数据后,要能在web浏览...

JFreeChart的简单应用以及解决中文显示方框的问题

JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广...

使用JFreeChart生成饼图,不做任何注释,只求应用,生成的饼图放在D:\\fruit.jpg

/** * 要是用JFreeChar生成饼图,不做任何注释,只求应用,生成的饼图放在D:\\fruit.jpg * * 1.加入jcommon-1.0.5.jar和jfreechart-...

使用JFreeChart生成饼图,不做任何注释,只求应用,生成的饼图输出到网页中

/** * 使用JFreeChar生成饼图,不做任何注释,只求应用,生成的饼图输出到网页中 * * 1.加入jcommon-1.0.5.jar和jfreechart-1.0.2.jar ...

JFreeChart应用实例-柱状图

JFreeChart可以实现普通柱状图和3D柱状图 1、普通柱状图 package Bar; import java.awt.Font; import org.jfree.chart.Cha...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)