チャートは、プレゼンテーション内のデータを要約して視覚的に表すために使用されます。データを視覚化するために、MSPowerPointはさまざまな種類のグラフを提供しています。中でも、最も一般的に使用されるグラフの種類には、円グラフ、折れ線グラフ、棒グラフ、ヒストグラム、株価グラフなどがあります。この記事では、Javaを使用してPowerPointプレゼンテーションでグラフを作成する方法を学習します。
- PowerPointでグラフを作成するためのAPI
- Javaを使用してPowerPointで縦棒グラフを作成する
- Javaを使用してPowerPointで散布図を作成する
- Javaを使用してPowerPointに円グラフを追加する
- Javaを使用してPowerPointにヒストグラムチャートを追加する
- Javaを使用してPowerPointで株価チャートを作成する
PowerPointでグラフを作成するためのJavaAPI
プレゼンテーションでさまざまな種類のグラフを作成するために、Aspose.Slides for Javaを使用します。上記のAPIを使用すると、Javaアプリケーション内からPowerPointプレゼンテーションを作成および操作できます。さらに、チャートを作成してプレゼンテーションにシームレスに追加することができます。 APIをダウンロードするか、次のMaven構成を使用してインストールできます。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-slides</artifactId>
<version>21.7</version>
<classifier>jdk16</classifier>
</dependency>
Javaを使用してPowerPointPPTで縦棒グラフを作成する
以下は、Javaを使用してPowerPointプレゼンテーションで縦棒グラフを作成する手順です。
- まず、Presentationクラスのインスタンスを作成します(既存のプレゼンテーションをロードする場合は、コンストラクターでファイルのパスを指定します)。
- スライドのインデックスを指定して、スライドの参照を取得します。
- タイプChartType.ClusteredColumnとともにデフォルトデータを含むグラフを追加します。
- デフォルトのシリーズとカテゴリをクリアします。
- IChartDataWorkbookオブジェクトのチャートデータワークブックにアクセスします。
- チャートの新しいシリーズとカテゴリをワークブックに追加します。
- チャートシリーズに新しいチャートデータを追加します。
- 最後に、Presentation.save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。
デモンストレーションとして、次のコードサンプルは、Javaを使用してPowerPointプレゼンテーションで縦棒グラフを作成する方法を示しています。
// 新しいプレゼンテーションを作成する
Presentation pres = new Presentation();
try {
// 新しい縦棒グラフを追加し、デフォルトのカテゴリとシリーズをクリアします
IChart ch = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 600, 450);
ch.getChartData().getSeries().clear();
ch.getChartData().getCategories().clear();
// チャートデータにアクセスする
IChartDataWorkbook fact = ch.getChartData().getChartDataWorkbook();
fact.clear(0);
int defaultWorksheetIndex = 0;
// カテゴリを追加
IChartCategory category = ch.getChartData().getCategories().add(fact.getCell(0, "c2", "A"));
category.getGroupingLevels().setGroupingItem(1, "Group1");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c3", "B"));
category = ch.getChartData().getCategories().add(fact.getCell(0, "c4", "C"));
category.getGroupingLevels().setGroupingItem(1, "Group2");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c5", "D"));
category = ch.getChartData().getCategories().add(fact.getCell(0, "c6", "E"));
category.getGroupingLevels().setGroupingItem(1, "Group3");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c7", "F"));
category = ch.getChartData().getCategories().add(fact.getCell(0, "c8", "G"));
category.getGroupingLevels().setGroupingItem(1, "Group4");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c9", "H"));
// シリーズを追加
IChartSeries series = ch.getChartData().getSeries().add(fact.getCell(0, "D1", "Series 1"),
ChartType.ClusteredColumn);
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D2", 10));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D3", 20));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D4", 30));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D5", 40));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D6", 50));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D7", 60));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D8", 70));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D9", 80));
// チャートでプレゼンテーションを保存
pres.save("column-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
以下は、結果の縦棒グラフのスクリーンショットです。
Javaを使用してPowerPointPPTで散布図を作成する
以下は、Javaを使用してPowerPointプレゼンテーションで分散グラフを作成する手順です。
- Presentationクラスを使用して、新しいプレゼンテーションを作成するか、既存のプレゼンテーションをロードします。
- ISlideオブジェクトでスライドの参照を取得します。
- デフォルトデータを使用してScatterWithSmoothLinesチャートタイプを追加し、IChartオブジェクトでその参照を取得します。
- チャートデータワークブックにアクセスしてIChartDataWorkbookオブジェクトにアクセスし、デフォルトのシリーズをクリアします。
- チャートデータに新しいシリーズを追加します。
- 各シリーズにアクセスしてIChartSeriesオブジェクトにアクセスし、データポイントをシリーズに追加します。
- IChartSeries.getMarker()を使用してシリーズのマーカーにアクセスし、そのプロパティを設定します。
- Presentation.save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。
次のコードサンプルは、Javaを使用してPowerPointプレゼンテーションで分散グラフを作成する方法を示しています。
// PPTXファイルを表すPresentationクラスをインスタンス化します
Presentation pres = new Presentation();
try {
// 最初のスライドにアクセスする
ISlide slide = pres.getSlides().get_Item(0);
// デフォルトのチャートを作成する
IChart chart = slide.getShapes().addChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);
// デフォルトのチャートデータワークシートインデックスを取得する
int defaultWorksheetIndex = 0;
// グラフデータワークシートを取得する
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// デモシリーズを削除
chart.getChartData().getSeries().clear();
// 新しいシリーズを追加
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.getType());
// 最初のチャートシリーズを取る
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// そこに新しいポイント(1:3)を追加します。
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 1), fact.getCell(defaultWorksheetIndex, 2, 2, 3));
// 新しいポイントを追加(2:10)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 2), fact.getCell(defaultWorksheetIndex, 3, 2, 10));
// シリーズの種類を編集する
series.setType(ChartType.ScatterWithStraightLinesAndMarkers);
// チャートシリーズマーカーを変更する
series.getMarker().setSize(10);
series.getMarker().setSymbol(MarkerStyleType.Star);
// 2番目のチャートシリーズを取る
series = chart.getChartData().getSeries().get_Item(1);
// そこに新しいポイント(5:2)を追加します。
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 5), fact.getCell(defaultWorksheetIndex, 2, 4, 2));
// 新しいポイントを追加(3:1)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 3), fact.getCell(defaultWorksheetIndex, 3, 4, 1));
// 新しいポイントを追加(2:2)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 4, 3, 2), fact.getCell(defaultWorksheetIndex, 4, 4, 2));
// 新しいポイントを追加(5:1)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 5, 3, 5), fact.getCell(defaultWorksheetIndex, 5, 4, 1));
// チャートシリーズマーカーを変更する
series.getMarker().setSize(10);
series.getMarker().setSymbol(MarkerStyleType.Circle);
// プレゼンテーションを保存する
pres.save("scatter-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
次のスクリーンショットは、結果の分散チャートを示しています。
Javaを使用してPowerPointPPTで円グラフを作成する
以下は、Javaを使用してPowerPointプレゼンテーションで円グラフを作成する手順です。
- Presentationクラスを使用して、新しいプレゼンテーションを作成するか、既存のプレゼンテーションをロードします。
- インデックスを提供して、スライドの参照を取得します。
- タイプChartType.Pieとともにデフォルトデータを含むグラフを追加します。
- IChartDataWorkbookオブジェクトのグラフデータにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを作成します。
- チャートシリーズの新しいチャートデータを追加します。
- グラフに新しいポイントを追加し、円グラフのセクターにカスタム色を追加します。
- シリーズのラベルとラベルの引出線を設定します。
- 円グラフスライドの回転角度を設定します。
- Presentation.save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。
次のコードサンプルは、Javaを使用してPowerPointプレゼンテーションで円グラフを作成する方法を示しています。
// PPTXファイルを表すPresentationクラスをインスタンス化します
Presentation pres = new Presentation();
try {
// 最初のスライドにアクセスする
ISlide slides = pres.getSlides().get_Item(0);
// デフォルトデータでチャートを追加
IChart chart = slides.getShapes().addChart(ChartType.Pie, 100, 100, 400, 400);
// チャートタイトルの設定
chart.getChartTitle().addTextFrameForOverriding("Sample Title");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
chart.getChartTitle().setHeight(20);
chart.setTitle(true);
// 最初のシリーズを値を表示するように設定します
chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
// チャートデータシートのインデックスを設定する
int defaultWorksheetIndex = 0;
// グラフデータワークシートを取得する
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// デフォルトで生成されたシリーズとカテゴリを削除する
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
// 新しいカテゴリを追加する
chart.getChartData().getCategories().add(fact.getCell(0, 1, 0, "First Qtr"));
chart.getChartData().getCategories().add(fact.getCell(0, 2, 0, "2nd Qtr"));
chart.getChartData().getCategories().add(fact.getCell(0, 3, 0, "3rd Qtr"));
// 新しいシリーズを追加
IChartSeries series = chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Series 1"), chart.getType());
// 系列データを入力しています
series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
// 新しいバージョンでは機能しません
// 新しいポイントの追加とセクターの色の設定
// series.IsColorVaried = true;
chart.getChartData().getSeriesGroups().get_Item(0).setColorVaried(true);
IChartDataPoint point = series.getDataPoints().get_Item(0);
point.getFormat().getFill().setFillType(FillType.Solid);
point.getFormat().getFill().getSolidFillColor().setColor(Color.CYAN);
// セクター境界を設定する
point.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
point.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.GRAY);
point.getFormat().getLine().setWidth(3.0);
//point.getFormat().getLine().setStyle(LineStyle.ThinThick);
//point.getFormat().getLine().setDashStyle(LineDashStyle.DashDot);
IChartDataPoint point1 = series.getDataPoints().get_Item(1);
point1.getFormat().getFill().setFillType(FillType.Solid);
point1.getFormat().getFill().getSolidFillColor().setColor(Color.ORANGE);
// セクター境界を設定する
point1.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
point1.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
point1.getFormat().getLine().setWidth(3.0);
//point1.getFormat().getLine().setStyle(LineStyle.Single);
//point1.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDot);
IChartDataPoint point2 = series.getDataPoints().get_Item(2);
point2.getFormat().getFill().setFillType(FillType.Solid);
point2.getFormat().getFill().getSolidFillColor().setColor(Color.YELLOW);
// セクター境界を設定する
point2.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
point2.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.RED);
point2.getFormat().getLine().setWidth(2.0);
//point2.getFormat().getLine().setStyle(LineStyle.ThinThin);
//point2.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDotDot);
// 新しいシリーズのカテゴリごとにカスタムラベルを作成する
IDataLabel lbl1 = series.getDataPoints().get_Item(0).getLabel();
// lbl.ShowCategoryName = true;
lbl1.getDataLabelFormat().setShowValue(true);
IDataLabel lbl2 = series.getDataPoints().get_Item(1).getLabel();
lbl2.getDataLabelFormat().setShowValue(true);
lbl2.getDataLabelFormat().setShowLegendKey(true);
lbl2.getDataLabelFormat().setShowPercentage(true);
IDataLabel lbl3 = series.getDataPoints().get_Item(2).getLabel();
lbl3.getDataLabelFormat().setShowSeriesName(true);
lbl3.getDataLabelFormat().setShowPercentage(true);
// チャートの引出線を表示する
series.getLabels().getDefaultDataLabelFormat().setShowLeaderLines(true);
// 円グラフセクターの回転角を設定する
chart.getChartData().getSeriesGroups().get_Item(0).setFirstSliceAngle(180);
// チャートでプレゼンテーションを保存
pres.save("pie-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
以下は、生成された円グラフのスクリーンショットです。
Javaを使用してPowerPoint PPTXにヒストグラムチャートを追加する
以下は、Javaを使用してPowerPointプレゼンテーションでヒストグラムチャートを作成する手順です。
- Presentationクラスを使用して、新しいプレゼンテーションを作成するか、既存のプレゼンテーションをロードします。
- スライドのインデックスを提供して、スライドの参照を取得します。
- タイプChartType.Histogramとともにデフォルトデータを含むグラフを追加します。
- IChartDataWorkbookオブジェクトのチャートデータにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- Presentation.save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。
次のコードサンプルは、Javaを使用してヒストグラムチャートを作成する方法を示しています。
// 新しいプレゼンテーションを作成する
Presentation pres = new Presentation();
try {
// 新しいヒストグラムチャートを追加し、そのカテゴリとシリーズをクリアします
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Histogram, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
// チャートデータへのアクセス
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
// シリーズを追加
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Histogram);
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A1", 15));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A2", -41));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A3", 16));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A4", 10));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A5", -23));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A6", 16));
chart.getAxes().getHorizontalAxis().setAggregationType(AxisAggregationType.Automatic);
// プレゼンテーションを保存する
pres.save("histogram-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
以下は、作成されたヒストグラムチャートのスクリーンショットです。
Javaを使用してPowerPointで株価チャートを作成する
株価チャートは、PowerPointプレゼンテーションで一般的に使用されるチャートタイプの1つでもあります。以下は、Javaで株価チャートを作成する手順です。
- Presentationクラスのインスタンスを作成します。
- スライドのインデックスを提供して、スライドの参照を取得します。
- タイプChartType.OpenHighLowCloseとともにデフォルトデータを含むグラフを追加します。
- IChartDataWorkbookオブジェクトのチャートデータにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- チャートシリーズの新しいチャートデータを追加します。
- HiLowLines形式を指定します。
- Presentation.save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。
次のコードサンプルは、C#を使用してPowerPointプレゼンテーションに株価チャートを追加する方法を示しています。
// 新しいプレゼンテーションを作成する
Presentation pres = new Presentation();
try {
// チャートを追加
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);
// 明確なカテゴリとシリーズ
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
// チャートデータへのアクセス
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
// カテゴリを追加
chart.getChartData().getCategories().add(wb.getCell(0, 1, 0, "A"));
chart.getChartData().getCategories().add(wb.getCell(0, 2, 0, "B"));
chart.getChartData().getCategories().add(wb.getCell(0, 3, 0, "C"));
chart.getChartData().getSeries().add(wb.getCell(0, 0, 1, "Open"), chart.getType());
chart.getChartData().getSeries().add(wb.getCell(0, 0, 2, "High"), chart.getType());
chart.getChartData().getSeries().add(wb.getCell(0, 0, 3, "Low"), chart.getType());
chart.getChartData().getSeries().add(wb.getCell(0, 0, 4, "Close"), chart.getType());
// シリーズデータを追加する
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 1, 72));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 1, 25));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 1, 38));
series = chart.getChartData().getSeries().get_Item(1);
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 2, 172));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 2, 57));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 2, 57));
series = chart.getChartData().getSeries().get_Item(2);
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 3, 12));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 3, 12));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 3, 13));
series = chart.getChartData().getSeries().get_Item(3);
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 4, 25));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 4, 38));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 4, 50));
chart.getChartData().getSeriesGroups().get_Item(0).getUpDownBars().setUpDownBars(true);
chart.getChartData().getSeriesGroups().get_Item(0).getHiLowLinesFormat().getLine().getFillFormat().setFillType(FillType.Solid);
for (IChartSeries ser : chart.getChartData().getSeries())
{
ser.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
}
// プレゼンテーションを保存する
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
以下は、作成された株価チャートのスクリーンショットです。
その他のチャートタイプ
上記のグラフに加えて、PowerPointプレゼンテーションに追加できる他の種類のグラフもあります。サポートされているグラフの種類の詳細については、thisのドキュメント記事をご覧ください。
無料のAPIライセンスを取得する
評価の制限なしにAPIを使用するために、無料の一時ライセンスを取得できます。
オンラインでお試しください
Aspose.Slidesに基づくPowerPointプレゼンテーションでグラフを作成するための無料のオンラインツールを試すこともできます。
結論
この記事では、Javaを使用してPowerPointプレゼンテーションでグラフを作成する方法を学習しました。ステップバイステップガイドとコードサンプルは、縦棒グラフ、散布図、円グラフ、ヒストグラム、および株価グラフを追加する方法を示しています。 ドキュメントを使用して、Aspose.Slides for Javaの詳細を調べることができます。ご不明な点がございましたら、フォーラムからお知らせください。