JfreeChart生成简单的柱形图和折线图ss

1.JFreeChart是Java中开源的制图组件,主要用于生成各种动态图表。在Java的图形报表技术中,JFreeChart组件提供了方便、快捷、灵活的制图方法.
2.JFreeChart组件可以生成各种各样的图形报表,如常用的柱形图、区域图、饼形图、折线图、时序图、甘特图等;而对于同一种类型的图表,JFreeChart组件还提供了不同的表现方式、
使用jFreeChart首先需要下载两个jar包,大家可以去官网下载,下面是主页网站
http://www.jfree.org/jfreechart/index.html
在主页中单击DOWNLOAD导航链接将进入下载页面,选择所要下载的JfreeChart版本即可进行下载,博住下载的是1.0.19版本,在下载成功后将得到一个名为jfreechart-1.0.19.zip的压缩包,此压缩包包含JFreeChart组件源码、示例、支持类库等文件,将其解压缩后的文件结构如图所示这里写图片描述
其中jfreechart-1.0.19-demo.jar 文件为JFreeChart组件提供的演示文件,运行此文件将可以看到利用JFreeChart组件制作的各种图表的样式及效果;source文件夹为JFreeChart的源代码文件夹,在此文件夹中可以查看到JFreeChart组件的源代码;lib文件夹为JFreeChart的支持类库

jfreeChart开发前准备
1. 导入JfreeChart包
导入在lib目录下的jfreechart-1.0.19.jar、jcommon-1.0.23.jar两个Jar包到工程
2.配置JFreeChart
JFreeChart组件能够成.JPEG、.PNG格式的图片,其输出方式可以直接存储在硬盘中,也可以交给JFreeChart组件进行管理。在Web应用中,所生成的图形报表一般均为动态图表,如果对每次生成的图表都进行直接存储,将会产生大量的垃圾文件,时间长了必须进行清理。因此,由JFreeChart组件进行管理来生成图片是一个不错的选择,它不仅可以提供图片的路径,而且在查看图片后JFreeChart组件会自动进行清理
JFreeChart组件提供了一个Servlet文件用于获取生成的图片,此Servlet文件存在于JFreeChart组件包中,所以在使用过程中,需要将其配置到Web.xml文件中。其配置方法
如下这里写图片描述

jfreeChart开发流程

//创建一个默认的图形
    DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
    //构造数据集合
    dataset.addValue(510, "深圳", "苹果");  
    dataset.addValue(320, "深圳", "香蕉");  
    dataset.addValue(580, "深圳", "橘子");  
    dataset.addValue(390, "深圳", "梨子");  
    //设置主题
     StandardChartTheme mChartTheme = new StandardChartTheme("CN");  
       //设置图表标题  
      mChartTheme.setExtraLargeFont(new Font("黑体", Font.BOLD, 20));  
        //设置轴向字体  
      mChartTheme.setLargeFont(new Font("宋体", Font.PLAIN, 15));  
        //设置图例字体  
      mChartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 15));  
        //应用主题  
      ChartFactory.setChartTheme(mChartTheme);  
    JFreeChart chart = ChartFactory.createBarChart3D(
                "水果销量统计图",              // chart title
                 "水果",                      // x-domain axis label
                 "销量",                      // y-range axis label
                 dataset,                   // data
                 PlotOrientation.VERTICAL,  // 图标方向:水平,垂直
                 false,                     // 是否生成图例
                 false,                     // 是否生成工具
                 false);                    // 是否生产链接
    String filename = ServletUtilities.saveChartAsPNG(chart, 420, 300, null, session);  
    String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
%>  
<img src="<%= graphURL %>" width=420 height=300 border=0>

<!-- 折线图 -->
//创建一个默认的图形
    DefaultCategoryDataset mDatasetline = new DefaultCategoryDataset();  
    mDatasetline.addValue(1, "First", "2013");  
    mDatasetline.addValue(3, "First", "2014");  
    mDatasetline.addValue(2, "First", "2015");  
    mDatasetline.addValue(6, "First", "2016");  
    mDatasetline.addValue(5, "First", "2017");  
    mDatasetline.addValue(12, "First", "2018");  
    mDatasetline.addValue(14, "Second", "2013");  
    mDatasetline.addValue(13, "Second", "2014");  
    mDatasetline.addValue(12, "Second", "2015");  
    mDatasetline.addValue(9, "Second", "2016");  
    mDatasetline.addValue(5, "Second", "2017");  
    mDatasetline.addValue(7, "Second", "2018");  

    StandardChartTheme mChartThemeline = new StandardChartTheme("CN");  
    mChartThemeline.setLargeFont(new Font("黑体", Font.BOLD, 20));  
    mChartThemeline.setExtraLargeFont(new Font("宋体", Font.PLAIN, 15));  
    mChartThemeline.setRegularFont(new Font("宋体", Font.PLAIN, 15));  
    XYLineAndShapeRenderer renderer=new XYLineAndShapeRenderer();

    ChartFactory.setChartTheme(mChartThemeline);  

    JFreeChart mChartline = ChartFactory.createLineChart(  
                "折线图",  
                "年份",  
                "数量",  
                mDatasetline,  
                PlotOrientation.VERTICAL,  
                true,   
                true,   
                false);  

    CategoryPlot mPlotline = (CategoryPlot)mChartline.getPlot();  
    mPlotline.setBackgroundPaint(Color.LIGHT_GRAY);  
    mPlotline.setRangeGridlinePaint(Color.BLUE);//背景底部横虚线  
    mPlotline.setOutlinePaint(Color.RED);//边界线  



    //500是图片长度,300是图片高度  
    String filenameline = ServletUtilities.saveChartAsPNG(mChartline, 800, 500, null, session);  
    String graphURLline = request.getContextPath() + "/DisplayChart?filename=" + filenameline;
    %>
    <img src="<%= graphURLline %>" width=800 height=500 border=0>

柱状图
柱状图
折线图
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值