JFreeChart折线图

String chartTitle = ciinfoList.get(0).getHwname() + "_巡检情况统计";
				HttpSession session = request.getSession();  
				//图表生成在tomcat下的temp目录
				String filename = ServletUtilities.saveChartAsPNG(LineChart.getJFreeChart(defaultcategorydataset,chartTitle), 1000, 400, null, session);
				String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
				request.setAttribute("graphURL", graphURL);  
				request.setAttribute("filename", filename);  public class LineChart {
	
	/** 
     * 产生JFreeChart对象 
     *  
     * @return 
     */  
    public static JFreeChart getJFreeChart(DefaultCategoryDataset chartData,String chartTitle) {  
        JFreeChart imgChart=null;  
        //JFreeChart对象 参数:标题,目录轴显示标签,数值轴显示标签,数据集,是否显示图例,是否生成工具,是否生成URL连接  
        imgChart = ChartFactory.createLineChart3D("", "巡检日期", "使用率", chartData, PlotOrientation.VERTICAL, true, true, false);  
        imgChart.setBackgroundPaint(Color.white);  
        imgChart.setBorderVisible(true);//边框可见  
        TextTitle title = new TextTitle(chartTitle, new Font("黑体", Font.BOLD, 20));  //解决曲线图片标题中文乱码问题  
        imgChart.setTitle(title);  
        imgChart.getLegend().setItemFont(new Font("黑体", Font.PLAIN, 18));  //解决图表底部中文乱码问题 
        CategoryPlot categoryplot = (CategoryPlot) imgChart.getPlot();  
        categoryplot.setBackgroundPaint(Color.lightGray);  
        categoryplot.setRangeGridlinePaint(Color.white);  

        NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); //Y轴 
        setNumberAxis(numberaxis);  
          
        CategoryAxis domainAxis = (CategoryAxis) categoryplot.getDomainAxis();  //x轴  
        setDomainAxis(domainAxis);  
        
        LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot.getRenderer();//数据点  
        lineandshaperenderer.setBaseShapesVisible(true);  //series 点(即数据点)可见
        lineandshaperenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());  //显示数据点的数据   
        lineandshaperenderer.setBaseItemLabelsVisible(true);  //显示折线图点上的数据  
        /*纵坐标百分比显示*/
        NumberFormat nfP = NumberFormat.getPercentInstance();
        nfP.setMaximumFractionDigits(2);
        lineandshaperenderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}",nfP));
        return imgChart;  
    }  
      
    /** 
     * 设置X轴 
     * @param domainAxis 
     */  
    private static void setDomainAxis(CategoryAxis domainAxis){  
        domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 18));  //解决x轴坐标上中文乱码  
        domainAxis.setLabelFont(new Font("黑体", Font.PLAIN, 18));  //解决x轴标题中文乱码  
        domainAxis.setTickMarksVisible(true);  //用于显示X轴刻度  
        domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);  //设置X轴45度  
    }  
      
    /** 
     * 设置Y轴 
     * @param numberAxis 
     */  
    private static void setNumberAxis(NumberAxis numberaxis){  
        numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());  
        numberaxis.setAutoRangeIncludesZero(true);//是否显示零点  
        numberaxis.setAutoTickUnitSelection(false);  
        numberaxis.setLabelFont(new Font("sans-serif", Font.PLAIN, 18));  //解决Y轴标题中文乱码  
        numberaxis.setTickUnit(new NumberTickUnit(0.1));//Y轴数据间隔  
    }  
}

 

    jsp显示生成的图片方式一:

 

FileOutputStream fos = new FileOutputStream("生成图片的完整路径+图片名");
ChartUtilities.writeChartAsJPEG(fos,1,LineChart.getJFreeChart("数据集","图片标题"),1000,400,null);
request.setAttribute("jpgName", jpgName);//折线图名
<img src="<%=request.getContextPath() %>/images/${jpgName}"  width=1000 height=400 usemap="${jpgName}"/>

 

    jsp显示生成的图片方式二:

 

String chartTitle = ciinfoList.get(0).getHwname() + "_巡检情况统计";
HttpSession session = request.getSession();  
//图表生成在tomcat下的temp目录
String filename =ServletUtilities.saveChartAsPNG(LineChart.getJFreeChart(defaultcategorydataset,chartTitle), 1000, 400, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
request.setAttribute("graphURL", graphURL);  
request.setAttribute("filename", filename); 

 

<servlet> 
<servlet-name>DisplayChart</servlet-name> 
      <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> 
</servlet> 
<servlet-mapping> 
       <servlet-name>DisplayChart</servlet-name> 
       <url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping> 
 
<img src="${graphURL}"  width=1000 height=400 usemap="${filename}"/>

 

 

 

 

 

你可能感兴趣的:(jfreechart)