Javaを使用してPowerPointで散布図を作成する方法

散布図は、名前の示すように、散布点で構成されるグラフであり、これらの点が配置される場所は、X値とY値によって決まります。ゆえにXY散布図とも呼ばれます。この記事では、Javaコードの例を使用してPowerPointスライドに散布図を作成する方法を示します。

##チャートを作成する前に
PowerPointを操作するためのjarパッケージ**[Free Spire.Presentation for Java](https://www.e-iceblue.com/Download/presentation-for-java-free.html)**をJavaプログラムにインポートする必要があります。インポートするには、次の方法を参照してください。

jarパッケージを手動でインポートします。jarパッケージをローカルにダウンロードして解凍し、libフォルダーでjarファイルを見つける必要があります。次に、以下の手順に従ってインポートします。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/d1a9a14a-e38b-84b5-70e3-58d216f2b1b0.png)
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/6c245a7c-c39b-b8aa-3bc9-b7daf41cb481.png)
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/71f6c833-47aa-f77b-005b-3a0bb78badbe.png)
##チャートを作成するとき

データソースを指定して、スライドの指定した座標にグラフを挿入します。Jarパッケージは、特定のタイプのグラフをスライドに追加するためのShapeCollection.appendChart(ChartType type、Rectangle2Drectangle、boolean init）メソッドを提供します。ChartType列挙は、散布図、縦棒グラフ、円グラフを含むがこれらに限定されない73のグラフタイプを事前定義します。チャートなど

今回は、散布図は主に次の手順で作成されます。

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, 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();
    }
}
```
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/26f1bf3a-6c4b-d7d3-d8bc-844ab69d26a1.png)
##結語
以上は今回のPowerPointで散布図を作成する方法でした、最後までお読みいただき、誠にありがとうございます。