Java:如何在PowerPoint幻燈片中建立散點圖

2023-03-31 12:00:25

散點圖是通過兩組資料構成多個座標點,考察座標點的分佈,判斷兩變數之間是否存在某種關聯或總結座標點的分佈模式。散點圖將序列顯示為一組點,值由點在圖表中的位置表示,類別由圖表中的不同標記表示,通常用於比較跨類別的聚合資料。本文將為您介如何通過Java程式碼在PowerPoint幻燈片中建立散點圖。以下是我整理的具體方法及思路,並附上Java程式碼供大家參考。

程式碼編譯環境:

IntelliJ IDEA 2018(jdk 1.8.0)

Presentation Jar包:Free Spire.Presentation for Java 5.1.0

引入jar

匯入方法1:

手動引入。將Free Spire. Presentation for Java下載到本地,解壓,找到lib資料夾下的Spire. Presentation.jar檔案。在IDEA中開啟如下介面,將本地路徑中的jar檔案引入Java程式:

 

匯入方法2:如果您想通過 Maven安裝,則可以在 pom.xml 檔案中新增以下程式碼匯入 JAR 檔案。

<repositories>

    <repository>

        <id>com.e-iceblue</id>

        <name>e-iceblue</name>

        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

    </repository>

</repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.presentation.free</artifactId>

        <version>5.1.0</version>

    </dependency>

</dependencies>

建立散點圖

下面是建立散點圖的具體方法和步驟:

  • 建立 Presentation 類的範例。
  • 使用 ShapeCollection.appendChart() 方法將散點圖附加到特定的幻燈片。
  • 通過 ChartData.get().setValue() 方法設定圖表資料。
  • 使用 IChart 介面提供的方法設定圖表標題、座標軸標題、系列標籤等。
  • 設定格線樣式和資料點線樣式。
  • 使用 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, 3.4, 5.0, 7.9 };
        Double[] yData = new Double[] { 4.3, 13.2, 7.7, 6.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.GREEN);

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

效果圖

—本文完—