首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JFreeChart 實戰教程 (三):餅狀圖全攻略——基礎、炸開、空值處理、三維與多重圖

     編輯:Java 相關知識

3.1 簡單餅圖

專用資料集:DefaultPieDataset

DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Spring Security", 100);
dataset.setValue("jBPM 4", 200);
dataset.setValue("Ext JS", 300);
dataset.setValue("JFreeChart", 100);

注意:餅圖專用 setValue(key, value),與 CategoryDataset 不通用,API 設計不夠一致。

建立圖表

JFreeChart chart = ChartFactory.createPieChart(
    "chart", dataset, true, false, false);

簡單餅圖

3.2 炸開效果 (Exploded Pie)

強制轉型 Plot 後設定

PiePlot plot = (PiePlot) chart.getPlot();
plot.setExplodePercent("JFreeChart", 0.3); // 30% 炸開距離

再次暴露 API 痛點:需知具體 Plot 類型並強制轉型。

炸開餅圖

3.3 空值與零值處理

dataset.setValue("null", null);
dataset.setValue("zero", 0);

預設:標籤顯示但無數值區塊。

空值零值

隱藏空值/零值區塊

plot.setIgnoreNullValues(true);
plot.setIgnoreZeroValues(true);

負值 JFreeChart 自動忽略不繪製。

3.4 三維餅圖

工廠方法換為 createPieChart3D()。

三維餅圖

3.5 多重餅圖 (多組別)

必須改用 CategoryDataset

DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "Spring Security", "Jan");
dataset.addValue(200, "jBPM 4", "Jan");
dataset.addValue(300, "Ext JS", "Jan");
dataset.addValue(100, "JFreeChart", "Jan");

dataset.addValue(60,  "Spring Security", "Feb");
dataset.addValue(100, "jBPM 4", "Feb");
dataset.addValue(340, "Ext JS", "Feb");
dataset.addValue(130, "JFreeChart", "Feb");

第三參數為分組鍵 (Jan/Feb),每組生成一個餅圖。

建立多重圖表

JFreeChart chart = ChartFactory.createMultiplePieChart(
    "chart", dataset, TableOrder.BY_COLUMN, true, false, false);

多重餅圖

待補充主題 (TODO)

  • 顏色客製化
  • 輪廓線設定
  • 標籤格式化
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved