Java 在PPT中建立散點圖

iceblue發表於2021-11-04

本文將以Java程式碼示例展示如何在PPT幻燈片中建立散點圖表。

建立圖表前

需要在Java程式中匯入用於操作PPT的jar包 Free Spire.Presentation for Java。可參考如下兩種方法匯入:

方法1:手動匯入jar包。需下載jar包到本地,並解壓,找到lib資料夾下的jar檔案。然後按照如下步驟執行,匯入:

 

 

 

方法2:maven倉庫下載匯入。需在pom.xml檔案中配置maven倉庫路徑,並指定依賴。配置內容如下:

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
<dependencies>
    <dependency>
        <groupId> e-iceblue </groupId>
        <artifactId>spire.presentation.free</artifactId>
        <version>3.9.0</version>
    </dependency>
</dependencies>

 

建立圖表時

通過指定資料來源,並在幻燈片中的指定座標位置插入圖表。該Jar包提供了ShapeCollection.appendChart(ChartType type, Rectangle2D rectangle, boolean init)方法向幻燈片新增特定型別的圖表,ChartType列舉預定義了73種圖表型別,包括但不限於散點圖、柱圖、餅圖等。

本次建立散點圖,主要通過以下步驟完成:

  1. 建立 Presentation 類的例項。
  2. 使用 ShapeCollection.appendChart() 方法將散點圖附加到特定的幻燈片。
  3. 通過 ChartData.get().setValue() 方法設定圖表資料。
  4. 使用 IChart 介面提供的方法設定圖表標題、座標軸標題、系列標籤等。
  5. 設定網格線樣式和資料點線樣式。
  6. 使用 Presentation.saveToFile() 方法將文件儲存到指定路徑。

Java程式碼示例

import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
import com.spire.presentation.SlideSizeType;
import com.spire.presentation.TextLineStyle;
import com.spire.presentation.charts.ChartType;
import com.spire.presentation.charts.IChart;
import com.spire.presentation.charts.entity.ChartDataLabel;
import com.spire.presentation.drawing.FillFormatType;

import java.awt.*;
import java.awt.geom.Rectangle2D;

public class ScatterChart {
    public static void main(String[] args) throws Exception{
        //建立Presentation類的例項
        Presentation presentation = new Presentation();
        presentation.getSlideSize().setType(SlideSizeType.SCREEN_16_X_9);

        //新增散點圖表到第一張幻燈片
        IChart chart = presentation.getSlides().get(0).getShapes().appendChart(ChartType.SCATTER_MARKERS,new Rectangle2D.Float(180, 80, 550, 320),false);

        //設定圖表標題
        chart.getChartTitle().getTextProperties().setText("散點圖表");
        chart.getChartTitle().getTextProperties().isCentered(true);
        chart.getChartTitle().setHeight(20f);
        chart.hasTitle(true);

        //設定圖表資料來源
        Double[] xData = new Double[] { 1.0, 2.4, 5.0, 8.9 };
        Double[] yData = new Double[] { 5.3, 15.2, 6.7, 8.0 };
        chart.getChartData().get(0,0).setText("X-值");
        chart.getChartData().get(0,1).setText("Y-值");
        for (int i = 0; i < xData.length; i++) {
            chart.getChartData().get(i+1,0).setValue(xData[i]);
            chart.getChartData().get(i+1,1).setValue(yData[i]);
        }

        //設定系列標籤
        chart.getSeries().setSeriesLabel(chart.getChartData().get("B1","B1"));

        //設定X和Y軸值
        chart.getSeries().get(0).setXValues(chart.getChartData().get("A2","A5"));
        chart.getSeries().get(0).setYValues(chart.getChartData().get("B2","B5"));

        //新增資料標籤
        for (int i = 0; i < 4; i++)
        {
            ChartDataLabel dataLabel = chart.getSeries().get(0).getDataLabels().add();
            dataLabel.setLabelValueVisible(true);
        }

        //設定主軸標題和次軸標題
        chart.getPrimaryValueAxis().hasTitle(true);
        chart.getPrimaryValueAxis().getTitle().getTextProperties().setText("X-軸 標題");
        chart.getSecondaryValueAxis().hasTitle(true);
        chart.getSecondaryValueAxis().getTitle().getTextProperties().setText("Y-軸 標題");

        //設定網格線
        chart.getSecondaryValueAxis().getMajorGridTextLines().setFillType(FillFormatType.SOLID);
        chart.getSecondaryValueAxis().getMajorGridTextLines().setStyle(TextLineStyle.THIN_THIN);
        chart.getSecondaryValueAxis().getMajorGridTextLines().getSolidFillColor().setColor(Color.GRAY);
        chart.getPrimaryValueAxis().getMajorGridTextLines().setFillType(FillFormatType.NONE);

        //設定資料點線
        chart.getSeries().get(0).getLine().setFillType(FillFormatType.SOLID);
        chart.getSeries().get(0).getLine().setWidth(0.1f);
        chart.getSeries().get(0).getLine().getSolidFillColor().setColor(Color.BLUE);

        //儲存文件
        presentation.saveToFile("ScatterChart.pptx", FileFormat.PPTX_2013);
        presentation.dispose();
    }
}

圖表效果圖:

 

其他注意事項

本次程式碼中的PPT結果文件路徑為IDEA程式專案資料夾路徑,如F:\IDEAProject\Chart_PPT\ScatterChart.pptx ,路徑也可以自定義。

 

 

—End—

 

相關文章