4.1. 簡單折線圖
使用CategoryDataset為圖表提供數據。
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "Jan", "Spring Security");
dataset.addValue(150, "Jan", "jBPM 4");
dataset.addValue(300, "Jan", "Ext JS");
dataset.addValue(100, "Jan", "JFreeChart");
如果我們只畫一條折線時,確保第二個參數是一致的。
下一步使用createLineChart創建圖表。
JFreeChart chart = ChartFactory.createLineChart(
"chart", // 標題
"num", // 橫坐標
"type", // 縱坐標
dataset, // 數據
PlotOrientation.VERTICAL, // 豎直圖表
true, // 是否顯示legend
false, // 是否顯示tooltip
false // 是否使用url鏈接
);
最後通過ChartUtilities將報表導出成圖片。
圖 4.1. 簡單折線圖
4.2. 三維折線圖
把createLineChart換成createLineChart3D就可以實現三維折線圖。
圖 4.2. 三維折線圖
4.3. 多重折線圖
在CategoryDataset中設置多個分組即可顯示為多重折線圖。
dataset.addValue(100, "Jan", "Spring Security");
dataset.addValue(150, "Jan", "jBPM 4");
dataset.addValue(300, "Jan", "Ext JS");
dataset.addValue(100, "Jan", "JFreeChart");
dataset.addValue(200, "Fer", "Spring Security");
dataset.addValue(120, "Fer", "jBPM 4");
dataset.addValue(240, "Fer", "Ext JS");
dataset.addValue(40, "Fer", "JFreeChart");
圖 4.3. 多重折線圖
4.4. 設置折線樣式
設置節點的樣式。
renderer.setBaseShapesVisible(true);
renderer.setShape(new Ellipse2D.Double(-2, -2, 4, 4));
顯示數值
renderer.setItemLabelsVisible(true);
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
顯示虛線
renderer.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER, 10.0f, new float[] {10.0f}, 0.0f));
只要會用awt,想要什麼樣的圖形都可以畫出來。
圖 4.4. 設置折線樣式