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

JFreeChart 實戰教程 (四):折線圖完整指南——從基礎到樣式客製化

     編輯:Java 相關知識

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");

addValue(value, rowKey, columnKey):單序列時保持 rowKey 一致。

建立圖表

JFreeChart chart = ChartFactory.createLineChart(
    "chart",       // 標題
    "num",         // 域軸 (橫軸) 標籤
    "type",        // 數值軸 (縱軸) 標籤
    dataset,       // 資料集
    PlotOrientation.VERTICAL, // 垂直佈局
    true,          // 顯示圖例
    false,         // 顯示工具提示
    false          // URL 連結
);

輸出圖片

ChartUtilities.writeChartAsPNG(outputStream, chart, width, height);

簡單折線圖

4.2 三維折線圖

僅需將工廠方法換為 createLineChart3D(),其餘參數相同。

三維折線圖

4.3 多重折線圖 (多序列)

資料集加入多個 rowKey (序列)

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, "Feb", "Spring Security");
dataset.addValue(120, "Feb", "jBPM 4");
dataset.addValue(240, "Feb", "Ext JS");
dataset.addValue(40,  "Feb", "JFreeChart");

每個 rowKey (Jan/Feb) 自動形成一條折線。

多重折線圖

4.4 折線樣式深度客製化

取得渲染器

CategoryPlot plot = chart.getCategoryPlot();
LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();

節點形狀與可見性

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},     // 虛線模式:畫 10px、空 10px
    0.0f                     // 相位偏移
));

善用 Java2D BasicStroke 可繪製任意線型。

客製化折線圖

關鍵類別關係圖譜

  • ChartFactory → JFreeChart → CategoryPlot → LineAndShapeRenderer
  • 資料集:CategoryDataset (介面) ← DefaultCategoryDataset
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved