小試験JFreeChart柱状図と餅状図
3936 ワード
暇な時、レポート技術を勉強して、現在オープンソースのJFreeChartを見つけて、最もよく使われる柱状図と餅状図を書いて記録します.
jarパッケージをインポートするには:
1、jfreechart-1.0.14.jar
2、jcommon-1.0.17.jar
他は説明せずにコードを直接見る
package jfreechart;
import java.awt.Font;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
public class TestJfreeChart {
public static void main(String[] args) throws Exception {
//
showBarChart();
//
showPieChart();
}
private static void showBarChart() throws IOException,
FileNotFoundException {
CategoryDataset dataset = getDataSet2();
JFreeChart barChart = ChartFactory.createBarChart3D(" ", " ", " ",
dataset,PlotOrientation.VERTICAL, true, true, true);
CategoryPlot plot = (CategoryPlot) barChart.getPlot();
CategoryAxis domainAxis = plot.getDomainAxis();
ValueAxis rangeAxis = plot.getRangeAxis();
Font font = new Font(" ", Font.BOLD, 12);
barChart.getTitle().setFont(font );
barChart.getLegend().setItemFont(font);
domainAxis.setLabelFont(font);
domainAxis.setTickLabelFont(font);
rangeAxis.setLabelFont(font);
rangeAxis.setTickLabelFont(font);
ChartUtilities.writeChartAsJPEG(new FileOutputStream("C:/bar.jpg"),
barChart, 1000, 700);
ChartFrame frame = new ChartFrame(" ", barChart);
frame.pack();
frame.setVisible(true);
}
private static CategoryDataset getDataSet2() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(78, "", "C++ ");
dataset.addValue(120, "", "JAVA ");
dataset.addValue(65, "", "JS ");
dataset.addValue(20, "", " ");
dataset.addValue(5, "", " ");
return dataset;
}
private static void showPieChart() throws Exception {
DefaultPieDataset dataset = getDataSet();
JFreeChart pieChart = ChartFactory.createPieChart(" ", dataset, true, true, true);
PiePlot plot = (PiePlot) pieChart.getPlot();
Font font = new Font(" ", Font.BOLD, 12);
plot.setLabelFont(font);
pieChart.getLegend().setItemFont(font);
pieChart.getTitle().setFont(font);
ChartUtilities.writeChartAsJPEG(new FileOutputStream("C:/pie.jpg"),
pieChart, 1000, 700);
ChartFrame frame = new ChartFrame(" ", pieChart);
frame.pack();
frame.setVisible(true);
}
private static DefaultPieDataset getDataSet() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("C++ ", 78);
dataset.setValue("JAVA ", 120);
dataset.setValue("JS ", 65);
dataset.setValue(" ", 20);
dataset.setValue(" ", 5);
return dataset;
}
}
生成された効果図:
もういい、写真は見せない.本当にiteyeのアップロードのスピードに耐えられなくて、まるで穴のお父さん......