JFreeChart 사용 예시(입문 레벨)

최근 에 JFreeChart 를 사용 해 야 하 는 숙제 가 있 는데 인터넷 에서 찾 아 보 니 이 분야 의 자료 가 매우 적 고 거의 비슷 해서 초보 자 들 이 공부 하기에 적합 하지 않다.
JFreeChart 의 기능 이 매우 강해 서 나 도 방금 약간의 가죽 과 털 을 익 혔 을 뿐이다.
다음은 제 코드 를 붙 여 드 리 겠 습 니 다.입문 급 의 예 로 초보 자 에 게 작은 도움 을 주 고 싶 습 니 다.
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.FileOutputStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAnchor;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;

public class drawpie {
	public static void drawit(int[] a, String t) {
		PieDataset dataset = getDataSet(a);
		JFreeChart chart = ChartFactory.createPieChart3D("     ", dataset,true, true, false);
		PiePlot3D plot = (PiePlot3D) chart.getPlot();
		//         :     ,{0}     , {1}     , {2}        ,      
		plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(),
				new DecimalFormat("0.00%")));
		//        :     , {0}     , {1}     , {2}       
		plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(
				"{0}={1}({2})"));
		//         
		chart.setBackgroundPaint(Color.white);
		//         (0.0-1.0)
		plot.setForegroundAlpha(1.0f);
		//           (false)    (true)
		plot.setCircular(true);
		//         
		Font font = new Font("  ", Font.CENTER_BASELINE, 10);
		TextTitle title = new TextTitle(t);
		title.setFont(font);
		//     ,            ,     
		chart.getLegend().setItemFont(font);
		//        Pie    
		plot.setLabelFont(font);
		chart.setTitle(title);
		FileOutputStream fos_jpg = null;
		try {
                        File file=new File("img");
                        if(!file.exists())
                        {
                            file.mkdir();
                        }
			fos_jpg = new FileOutputStream("img\\"+t+".jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 296, 221, null);
			fos_jpg.close();
		} catch (Exception e) {
		}
	}

	private static PieDataset getDataSet(int[] a) {
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("  ",a[0]);
		dataset.setValue("  ",a[1]);
		dataset.setValue("  ",a[2]);
		dataset.setValue("  ",a[3]);
		dataset.setValue("   ",a[4]);
		return dataset;
	}
        public static void drawchart(int[][] b,String name)
        {
            CategoryDataset ds =getchartDataSet(b);
            JFreeChart chart = ChartFactory.createBarChart3D(
                "       ", //    
                "  ", //        
                "  ", //        
                ds, //   
                PlotOrientation.VERTICAL, //    
                true, //      ,           false
                false, //        
                false);         //    url  

        CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();

        NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();

        CategoryAxis domainAxis = categoryplot.getDomainAxis();

        /*------  X       -----------*/
        domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));

        /*------  X      ------------*/
        domainAxis.setLabelFont(new Font("  ", Font.PLAIN, 12));

        /*------  Y       -----------*/
        numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));

        /*------  Y      ------------*/
        numberaxis.setLabelFont(new Font("  ", Font.PLAIN, 12));

        /*------                -----------*/
        chart.getLegend().setItemFont(new Font("  ", Font.PLAIN, 12));

        FileOutputStream fos_jpg = null;
		try {
                        File file=new File("img");
                        if(!file.exists())
                        {
                            file.mkdir();
                        }
			fos_jpg = new FileOutputStream("img\\"+name+".jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 392, 221, null);
			fos_jpg.close();
		} catch (Exception e) {
		}
    }
    private static CategoryDataset getchartDataSet(int[][] b) {
        DefaultCategoryDataset ds = new DefaultCategoryDataset();
        ds.addValue(b[0][0], "  ", "    ");
        ds.addValue(b[0][1], "  ", "    ");
        ds.addValue(b[0][2], "  ", "    ");
        ds.addValue(b[0][3], "  ", "    ");
        ds.addValue(b[0][4], "   ", "    ");
        ds.addValue(b[1][0], "  ", "    ");
        ds.addValue(b[1][1], "  ", "    ");
        ds.addValue(b[1][2], "  ", "    ");
        ds.addValue(b[1][3], "  ", "    ");
        ds.addValue(b[1][4], "   ", "    ");
        ds.addValue(b[2][0], "  ", "    ");
        ds.addValue(b[2][1], "  ", "    ");
        ds.addValue(b[2][2], "  ", "    ");
        ds.addValue(b[2][3], "  ", "    ");
        ds.addValue(b[2][4], "   ", "    ");
        ds.addValue(b[3][0], "  ", "     ");
        ds.addValue(b[3][1], "  ", "     ");
        ds.addValue(b[3][2], "  ", "     ");
        ds.addValue(b[3][3], "  ", "     ");
        ds.addValue(b[3][4], "   ", "     ");
        ds.addValue(b[4][0], "  ", "    ");
        ds.addValue(b[4][1], "  ", "    ");
        ds.addValue(b[4][2], "  ", "    ");
        ds.addValue(b[4][3], "  ", "    ");
        ds.addValue(b[4][4], "   ", "    ");
        return ds;
    }
}

좋은 웹페이지 즐겨찾기