JFreeChart展示柱状图和折线图的组合

阅读更多
//1.jquery调用ajax请求 
    $(document).ready(function() { 
        $.ajax({ 
            type: "POST", 
            url: "需要调用的url链接", 
            beforeSend :function() {//调用成功前前端显示内容 
                $("#testImgError").text("正在获取...");//可使用动态gif图片展示等待过程 
            }, 
            success: function(data) {//调用成功后前端处理 
                $("#testImgError").text("");                     
                $("#testImg").attr("src", "../test/"+data); 
            }, 
            error: function() {//前端调用错误处理 
                $("#testImgError").text("调用失败"); 
                $("#testImg").hide(); 
            } 
        });             
    }); 


//2.前端form中的显示,只需两行代码,可嵌入到相应的table或者div中: 
     
    


//3.中后端的代码也不复杂,需要处理一下数据获取和图片的保存和发送过程,代码如下: 
    //3.1.数据获取 
    public void createTestImg() throws IOException { 
        //获取参数, id不能为空 
        Integer id = Integer.parseInt(this.getRequest().getParameter("id")); 
        //根据id获取数据         
        List distributed = testService.getData(id); 
 
        ChartConstruction mtd = new ChartConstruction(""); 
        JFreeChart demo = mtd.getTestChart(distributed); 
        //保存为图片,创建所需保存图片的文件夹 
        String prefix = "InvestTypeDistributed-"; 
        String path1 = "D://Chart//paperIrrByYear"; 
        File newPath = new File(path1); 
        if (!newPath.exists()) 
            newPath.mkdir(); 
        File tempFile1 = File.createTempFile(prefix, ".jpeg", newPath); 
        ChartUtilities.saveChartAsJPEG(tempFile1, demo, 500, 270);//实际JFreeChart保存图片方法 
 
        //向前台传递Json 
        sendJSON(distributed); 
    }
 //3.2.向前台发送Json,方法多种多样,大家可以根据需要自行编写 
    private void sendJSON(List distributed){ 
        Map map = new HashMap(); 
        if ((distributed == null) || (distributed.size() == 0)) 
            map.put("rows", new ArrayList()); 
        else 
            map.put("rows", distributed); 
        senderJson(this.getResponse(), map); 
    } 
    //3.3组织数据,两个dataset,形成柱状图和折线图的组合 
    public JFreeChart getTestChart(List distributed, Integer companyId, String begin, String end){ 
        //List distributed = peCompanyInvestAnalysisService.getCompanyMoneyTypeDistributed(companyId, begin, end); 
        DefaultCategoryDataset datasetSum = new DefaultCategoryDataset(); 
        DefaultCategoryDataset datasetNum = new DefaultCategoryDataset(); 
        Double maxSum = 0.0d; 
        Double minSum = 0.0d; 
        Double tempSum = 0.0d; 
        Integer maxNum = 0; 
        Integer minNum = 0; 
        Integer tempNum = 0; 
        if(distributed!=null) 
            for(int i=0;i 
 


好的例子: http://blog.sina.com.cn/s/blog_906e353d0101241e.html


小知识点:
BasicStroke basicStroke = new BasicStroke(5.0f,// 线条粗细
                BasicStroke.CAP_ROUND,// 端点风格
                BasicStroke.JOIN_ROUND,// 折点风格
                1.0f,// 折点处理办法
                new float[]{ 1.0f },// 虚线数组
                0.0f);// 虚线偏移量
        renderer.setSeriesStroke(1, basicStroke);// 利用虚线绘制

你可能感兴趣的:(jfreechart,ajax,JavaScript)