JavaでPowerPointプレゼンテーションチャートを作成または更新する
概要
この記事では、JavaでPowerPointプレゼンテーションチャートを作成する方法を説明します。また、Javaでチャートを更新する方法についても説明します。以下のトピックをカバーしています。
チャート: 通常
チャート: 散布
チャート: 円
チャート: ツリーマップ
チャート: 株式
チャート: ボックスプロット
チャート: ファネル
チャート: サンバースト
チャート: ヒストグラム
チャート: レーダー
チャート: 多カテゴリ
チャート: マップ
アクション: チャートの更新
チャートを作成
チャートは、人々がデータを迅速に視覚化し、テーブルやスプレッドシートから即座に明らかではない洞察を得るのに役立ちます。
なぜチャートを作成するのか?
チャートを使用することで、以下を実現できます。
- プレゼンテーションの単一スライドに大量のデータを集約、圧縮、または要約する
- データ内のパターンやトレンドを明らかにする
- 時間経過や特定の測定単位に関してデータの方向性と勢いを推測する
- 外れ値、異常、偏差、エラー、意味のないデータなどを特定する
- 複雑なデータをコミュニケートまたは提示する
PowerPointでは、挿入機能を通じてチャートを作成できます。これは、さまざまな種類のチャートを設計するために使用されるテンプレートを提供します。Aspose.Slidesを使用すると、一般的なチャートタイプに基づいた通常のチャートとカスタムチャートを作成できます。
通常のチャートを作成
ステップ: チャートを作成
- ステップ: JavaでPowerPointチャートを作成する
- ステップ: Javaでプレゼンテーションチャートを作成する
- ステップ: JavaでPowerPointプレゼンテーションチャートを作成する
コードの手順:
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- 一部のデータを含むチャートを追加し、好みのチャートタイプを指定します。
- チャートにタイトルを追加します。
- チャートデータワークシートにアクセスします。
- すべてのデフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- チャート系列のために新しいチャートデータを追加します。
- チャート系列にフィルカラーを追加します。
- チャート系列のためのラベルを追加します。
- 修正されたプレゼンテーションをPPTXファイルとして書き出します。
このJavaコードは、通常のチャートを作成する方法を示しています:
// PPTXファイルを表すプレゼンテーションクラスを初期化
Presentation pres = new Presentation();
try {
// 最初のスライドにアクセス
ISlide sld = pres.getSlides().get_Item(0);
// デフォルトデータでチャートを追加
IChart chart = sld.getShapes().addChart(ChartType.ClusteredColumn, 0, 0, 500, 500);
// チャートタイトルを設定
chart.getChartTitle().addTextFrameForOverriding("サンプルタイトル");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
chart.getChartTitle().setHeight(20);
chart.hasTitle();
// 最初の系列に値を表示するように設定
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();
int s = chart.getChartData().getSeries().size();
s = chart.getChartData().getCategories().size();
// 新しい系列を追加
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "シリーズ 1"),chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "シリーズ 2"),chart.getType());
// 新しいカテゴリを追加
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "カテゴリ 1"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "カテゴリ 2"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "カテゴリ 3"));
// 最初のチャート系列を取得
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// 現在、系列データをポピュレート
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
// 系列のフィルカラーを設定
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(Color.RED);
// 2番目のチャート系列を取得
series = chart.getChartData().getSeries().get_Item(1);
// 系列データをポピュレート
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60));
// 系列のフィルカラーを設定
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(Color.GREEN);
// 新しい系列の各カテゴリ用にカスタムラベルを作成
// 最初のラベルをカテゴリ名を表示するように設定
IDataLabel lbl = series.getDataPoints().get_Item(0).getLabel();
lbl.getDataLabelFormat().setShowCategoryName(true);
lbl = series.getDataPoints().get_Item(1).getLabel();
lbl.getDataLabelFormat().setShowSeriesName(true);
// 第三のラベルに値を表示
lbl = series.getDataPoints().get_Item(2).getLabel();
lbl.getDataLabelFormat().setShowValue(true);
lbl.getDataLabelFormat().setShowSeriesName(true);
lbl.getDataLabelFormat().setSeparator("/");
// チャートとともにプレゼンテーションを保存
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
散布図を作成
散布図(または散布プロット、x-yグラフ)は、パターンを確認したり、2つの変数の間の相関関係を示すためによく使用されます。
以下の場合に散布図を使用したいかもしれません。
- 数値データのペアがある場合
- 2つの変数がうまくペアになる場合
- 2つの変数が関連しているかどうかを判断したい場合
- 独立変数に依存変数に対して複数の値がある場合
ステップ: Javaで散布図を作成する | ステップ: JavaでPowerPoint散布チャートを作成する | ステップ: JavaでPowerPointプレゼンテーション散布チャートを作成する
- 上記の通常のチャートの作成に記載されている手順に従ってください。
- 第3のステップでは、チャートをデータとともに追加し、チャートタイプを以下のいずれかに指定します。
- ChartType.ScatterWithMarkers - 散布図を表します。
- ChartType.ScatterWithSmoothLinesAndMarkers - 曲線で接続された散布図データです。データマーカー付き。
- ChartType.ScatterWithSmoothLines - 曲線で接続された散布図データで、データマーカーなし。
- ChartType.ScatterWithStraightLinesAndMarkers - 直線で接続された散布図データで、データマーカー付き。
- ChartType.ScatterWithStraightLines - 直線で接続された散布図データで、データマーカーなし。
このJavaコードは、異なるマーカーの系列で散布図を作成する方法を示しています:
// PPTXファイルを表すプレゼンテーションクラスを初期化
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, "シリーズ 1"), chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 3, "シリーズ 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("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
円グラフを作成する
円グラフは、データ内の部分と全体の関係を表示するのに最適であり、特にデータがカテゴリーラベルと数値を含む場合に最適です。ただし、データに多くの部分やラベルが含まれている場合は、代わりに棒グラフの使用を検討するかもしれません。
ステップ: Javaで円グラフを作成する | ステップ: JavaでPowerPoint円グラフを作成する | ステップ: JavaでPowerPointプレゼンテーション円グラフを作成する
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- デフォルトデータと共に希望のタイプ(この場合はChartType.Pie)を持つチャートを追加します。
- チャートデータIChartDataWorkbookにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- チャートシリーズのために新しいデータを追加します。
- チャートのために新しいポイントを追加し、円グラフのセクターのカスタム色を追加します。
- 系列のラベルを設定します。
- 系列ラベルのリーダーラインを設定します。
- 円グラフスライドの回転角を設定します。
- 修正されたプレゼンテーションをPPTXファイルに書き出します。
このJavaコードは、円グラフを作成する方法を示しています:
// PPTXファイルを表すプレゼンテーションクラスを初期化
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("サンプルタイトル");
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, "第一四半期"));
chart.getChartData().getCategories().add(fact.getCell(0, 2, 0, "第二四半期"));
chart.getChartData().getCategories().add(fact.getCell(0, 3, 0, "第三四半期"));
// 新しい系列を追加
IChartSeries series = chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "シリーズ 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("PieChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
折れ線グラフを作成する
折れ線グラフ(または折れ線グラフ)は、時間の経過に伴う値の変化を示す場合に最適です。折れ線グラフを使用すると、一度に多くのデータを比較し、時間の経過に伴う変化やトレンドを追跡することができ、データ系列の異常を強調することができます。
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- デフォルトデータと希望のタイプ(この場合は
ChartType.Line
)を持つチャートを追加します。 - チャートデータIChartDataWorkbookにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- チャートシリーズのために新しいデータを追加します。
- 修正されたプレゼンテーションをPPTXファイルに書き出します。
このJavaコードは、折れ線グラフを作成する方法を示しています:
Presentation pres = new Presentation();
try {
IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);
pres.save("lineChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
デフォルトでは、折れ線グラフ上のポイントは直線で結ばれます。ポイントをダッシュで結ぶ場合は、次のように好みのダッシュタイプを指定できます:
IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);
for (IChartSeries series : lineChart.getChartData().getSeries())
{
series.getFormat().getLine().setDashStyle(LineDashStyle.Dash);
}
ツリーマップチャートを作成
ツリーマップチャートは、データカテゴリの相対的なサイズを示したいときや、各カテゴリに大きく寄与する項目に迅速に注意を引きつけるための売上データに最適です。
ステップ: Javaでツリーマップチャートを作成する | ステップ: JavaでPowerPointツリーマップチャートを作成する | ステップ: JavaでPowerPointプレゼンテーションツリーマップチャートを作成する
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- デフォルトデータと希望のタイプ(この場合はChartType.TreeMap)を持つチャートを追加します。
- チャートデータIChartDataWorkbookにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- チャートシリーズのために新しいデータを追加します。
- 修正されたプレゼンテーションをPPTXファイルに書き出します。
このJavaコードは、ツリーマップチャートを作成する方法を示しています:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Treemap, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
//ブランチ1
IChartCategory leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C1", "葉1"));
leaf.getGroupingLevels().setGroupingItem(1, "幹1");
leaf.getGroupingLevels().setGroupingItem(2, "ブランチ1");
chart.getChartData().getCategories().add(wb.getCell(0, "C2", "葉2"));
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C3", "葉3"));
leaf.getGroupingLevels().setGroupingItem(1, "幹2");
chart.getChartData().getCategories().add(wb.getCell(0, "C4", "葉4"));
//ブランチ2
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C5", "葉5"));
leaf.getGroupingLevels().setGroupingItem(1, "幹3");
leaf.getGroupingLevels().setGroupingItem(2, "ブランチ2");
chart.getChartData().getCategories().add(wb.getCell(0, "C6", "葉6"));
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C7", "葉7"));
leaf.getGroupingLevels().setGroupingItem(1, "幹4");
chart.getChartData().getCategories().add(wb.getCell(0, "C8", "葉8"));
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Treemap);
series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(true);
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D1", 4));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D2", 5));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D3", 3));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D4", 6));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D5", 9));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D6", 9));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D7", 4));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D8", 3));
series.setParentLabelLayout(ParentLabelLayoutType.Overlapping);
pres.save("Treemap.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
株式チャートを作成する
ステップ: Javaで株式チャートを作成する | ステップ: JavaでPowerPoint株式チャートを作成する | ステップ: JavaでPowerPointプレゼンテーション株式チャートを作成する
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- デフォルトデータを持つチャートを追加し、希望のタイプ(ChartType.OpenHighLowClose)を指定します。
- チャートデータIChartDataWorkbookにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- チャートシリーズのために新しいデータを追加します。
- HiLowLinesフォーマットを指定します。
- 修正されたプレゼンテーションをPPTXファイルに書き出します。
株式チャートを作成するためのサンプルJavaコード:
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, "オープン"), chart.getType());
chart.getChartData().getSeries().add(wb.getCell(0, 0, 2, "高"), chart.getType());
chart.getChartData().getSeries().add(wb.getCell(0, 0, 3, "安"), chart.getType());
chart.getChartData().getSeries().add(wb.getCell(0, 0, 4, "クローズ"), 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();
}
ボックスプロットを作成する
ステップ: Javaでボックスプロットを作成する | ステップ: JavaでPowerPointボックスプロットを作成する | ステップ: JavaでPowerPointプレゼンテーションボックスプロットを作成する
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- デフォルトデータを持つチャートを追加し、希望のタイプ(ChartType.BoxAndWhisker)を指定します。
- チャートデータIChartDataWorkbookにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- チャートシリーズのために新しいデータを追加します。
- 修正されたプレゼンテーションをPPTXファイルに書き出します。
このJavaコードは、ボックスプロットを作成する方法を示しています:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.BoxAndWhisker, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
chart.getChartData().getCategories().add(wb.getCell(0, "A1", "カテゴリ 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A2", "カテゴリ 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A3", "カテゴリ 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A4", "カテゴリ 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A5", "カテゴリ 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A6", "カテゴリ 1"));
IChartSeries series = chart.getChartData().getSeries().add(ChartType.BoxAndWhisker);
series.setQuartileMethod(QuartileMethodType.Exclusive);
series.setShowMeanLine(true);
series.setShowMeanMarkers(true);
series.setShowInnerPoints(true);
series.setShowOutlierPoints(true);
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B1", 15));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B2", 41));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B3", 16));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B4", 10));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B5", 23));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B6", 16));
pres.save("BoxAndWhisker.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
ファネルチャートを作成
ステップ: Javaでファネルチャートを作成する | ステップ: JavaでPowerPointファネルチャートを作成する | ステップ: JavaでPowerPointプレゼンテーションファネルチャートを作成する
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- デフォルトデータを持つチャートを追加し、希望のタイプ(ChartType.Funnel)を指定します。
- 修正されたプレゼンテーションをPPTXファイルに書き出します。
このJavaコードは、ファネルチャートを作成する方法を示しています:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Funnel, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
chart.getChartData().getCategories().add(wb.getCell(0, "A1", "カテゴリ 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A2", "カテゴリ 2"));
chart.getChartData().getCategories().add(wb.getCell(0, "A3", "カテゴリ 3"));
chart.getChartData().getCategories().add(wb.getCell(0, "A4", "カテゴリ 4"));
chart.getChartData().getCategories().add(wb.getCell(0, "A5", "カテゴリ 5"));
chart.getChartData().getCategories().add(wb.getCell(0, "A6", "カテゴリ 6"));
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Funnel);
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B1", 50));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B2", 100));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B3", 200));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B4", 300));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B5", 400));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B6", 500));
pres.save("Funnel.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
サンバーストチャートを作成
ステップ: Javaでサンバーストチャートを作成する | ステップ: JavaでPowerPointサンバーストチャートを作成する | ステップ: JavaでPowerPointプレゼンテーションサンバーストチャートを作成する
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- デフォルトデータを持つチャートを追加し、希望のタイプ(この場合、ChartType.sunburst)を指定します。
- 修正されたプレゼンテーションをPPTXファイルに書き出します。
このJavaコードは、サンバーストチャートを作成する方法を示しています:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
//ブランチ1
IChartCategory leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C1", "葉1"));
leaf.getGroupingLevels().setGroupingItem(1, "幹1");
leaf.getGroupingLevels().setGroupingItem(2, "ブランチ1");
chart.getChartData().getCategories().add(wb.getCell(0, "C2", "葉2"));
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C3", "葉3"));
leaf.getGroupingLevels().setGroupingItem(1, "幹2");
chart.getChartData().getCategories().add(wb.getCell(0, "C4", "葉4"));
//ブランチ2
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C5", "葉5"));
leaf.getGroupingLevels().setGroupingItem(1, "幹3");
leaf.getGroupingLevels().setGroupingItem(2, "ブランチ2");
chart.getChartData().getCategories().add(wb.getCell(0, "C6", "葉6"));
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C7", "葉7"));
leaf.getGroupingLevels().setGroupingItem(1, "幹4");
chart.getChartData().getCategories().add(wb.getCell(0, "C8", "葉8"));
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Sunburst);
series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(true);
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D1", 4));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D2", 5));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D3", 3));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D4", 6));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D5", 9));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D6", 9));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D7", 4));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D8", 3));
pres.save("Sunburst.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
ヒストグラムチャートを作成
ステップ: Javaでヒストグラムを作成する | ステップ: JavaでPowerPointヒストグラムを作成する | ステップ: JavaでPowerPointプレゼンテーションヒストグラムを作成する
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- デフォルトデータを持つチャートを追加し、希望のタイプ(ChartType.Histogram)を指定します。
- チャートデータIChartDataWorkbookにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- 修正されたプレゼンテーションをPPTXファイルに書き出します。
この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.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
レーダーチャートを作成
ステップ: Javaでレーダーチャートを作成する | ステップ: JavaでPowerPointレーダーチャートを作成する | ステップ: JavaでPowerPointプレゼンテーションレーダーチャートを作成する
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- データを含むチャートを追加し、希望のチャートタイプ(
ChartType.Radar
)を指定します。 - 修正されたプレゼンテーションをPPTXファイルに書き出します。
このJavaコードは、レーダーチャートを作成する方法を示しています:
Presentation pres = new Presentation();
try {
pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Radar, 20, 20, 400, 300);
pres.save("Radar-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
多カテゴリチャートを作成
ステップ: Javaで多カテゴリチャートを作成する | ステップ: JavaでPowerPoint多カテゴリチャートを作成する | ステップ: JavaでPowerPointプレゼンテーション多カテゴリチャートを作成する
- Presentationクラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- デフォルトデータを持つチャートを追加し、希望のタイプ(ChartType.ClusteredColumn)を指定します。
- チャートデータIChartDataWorkbookにアクセスします。
- デフォルトのシリーズとカテゴリをクリアします。
- 新しいシリーズとカテゴリを追加します。
- チャートシリーズのために新しいデータを追加します。
- 修正されたプレゼンテーションをPPTXファイルに書き出します。
このJavaコードは、多カテゴリチャートを作成する方法を示しています:
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, "グループ1");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c3", "B"));
category = ch.getChartData().getCategories().add(fact.getCell(0, "c4", "C"));
category.getGroupingLevels().setGroupingItem(1, "グループ2");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c5", "D"));
category = ch.getChartData().getCategories().add(fact.getCell(0, "c6", "E"));
category.getGroupingLevels().setGroupingItem(1, "グループ3");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c7", "F"));
category = ch.getChartData().getCategories().add(fact.getCell(0, "c8", "G"));
category.getGroupingLevels().setGroupingItem(1, "グループ4");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c9", "H"));
// シリーズを追加
IChartSeries series = ch.getChartData().getSeries().add(fact.getCell(0, "D1", "シリーズ 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("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
マップチャートを作成
マップチャートは、データを含む領域を可視化したものです。マップチャートは、地理的な地域間でデータまたは値を比較するのに最適です。
ステップ: Javaでマップチャートを作成する | ステップ: JavaでPowerPointマップチャートを作成する | ステップ: JavaでPowerPointプレゼンテーションマップチャートを作成する
このJavaコードは、マップチャートを作成する方法を示しています:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Map, 50, 50, 500, 400);
pres.save("mapChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
組み合わせチャートを作成
組み合わせチャート(またはコンボチャート)は、2つ以上のチャートを単一のグラフに組み合わせたものです。このようなチャートを使用すると、2つ(またはそれ以上)のデータセットの違いを強調、比較、または確認することができます。このようにして、データセット間の関連性(あれば)を確認できます。
このJavaコードは、PowerPointで組み合わせチャートを作成する方法を示しています:
private static void createComboChart()
{
Presentation pres = new Presentation();
{
IChart chart = createChart(pres.getSlides().get_Item(0));
addFirstSeriesToChart(chart);
addSecondSeriesToChart(chart);
pres.save("combo-chart.pptx", SaveFormat.Pptx);
}
}
private static IChart createChart(ISlide slide)
{
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 500, 400);
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
final int worksheetIndex = 0;
chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 1, "シリーズ 1"), chart.getType());
chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 2, "シリーズ 2"), chart.getType());
chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 1, 0, "カテゴリ 1"));
chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 2, 0, "カテゴリ 2"));
chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 3, 0, "カテゴリ 3"));
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 1, 1, 20));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 2, 1, 50));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 3, 1, 30));
// 2つ目のシリーズを追加
IChartSeries series2 = chart.getChartData().getSeries().add(workbook.getCell(worksheetIndex, 0, 3, "シリーズ 3"), ChartType.ScatterWithSmoothLines);
series2.getDataPoints().addDataPointForScatterSeries(
workbook.getCell(worksheetIndex, 0, 1, 3),
workbook.getCell(worksheetIndex, 0, 2, 5));
series2.getDataPoints().addDataPointForScatterSeries(
workbook.getCell(worksheetIndex, 1, 3, 10),
workbook.getCell(worksheetIndex, 1, 4, 13));
series2.getDataPoints().addDataPointForScatterSeries(
workbook.getCell(worksheetIndex, 2, 3, 20),
workbook.getCell(worksheetIndex, 2, 4, 15));
series2.setPlotOnSecondAxis(true);
// 3つ目のシリーズを追加
addSecondSeriesToChart(chart);
return chart;
}
private static void addFirstSeriesToChart(IChart chart)
{
// Pseudo code for adding the first series to the chart
}
private static void addSecondSeriesToChart(IChart chart)
{
// Pseudo code for adding the second series to the chart
}
チャートの更新
ステップ: JavaでPowerPointチャートを更新する | ステップ: Javaでプレゼンテーションチャートを更新する | ステップ: JavaでPowerPointプレゼンテーションチャートを更新する
- 更新したいチャートが含まれているプレゼンテーションを表すPresentationクラスをインスタンス化します。
- インデックスを使用してスライドの参照を取得します。
- オブジェクトをトラバーズして、対象のチャートを見つけます。
- チャートデータワークシートにアクセスします。
- シリーズ値を変更してチャートデータを修正します。
- 新しい系列を追加し、それにデータを追加します。
- 修正されたプレゼンテーションをPPTXファイルとして書き出します。
このJavaコードは、チャートを更新する方法を示しています:
Presentation pres = new Presentation();
try {
// 最初のスライドにアクセス
ISlide sld = pres.getSlides().get_Item(0);
// デフォルトデータのチャートを取得
IChart chart = (IChart)sld.getShapes().get_Item(0);
// チャートデータシートのインデックスを設定
int defaultWorksheetIndex = 0;
// チャートデータワークシートを取得
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// チャートカテゴリ名を変更
fact.getCell(defaultWorksheetIndex, 1, 0, "修正カテゴリ 1");
fact.getCell(defaultWorksheetIndex, 2, 0, "修正カテゴリ 2");
// 最初のチャート系列を取得
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// 現在、系列データを更新
fact.getCell(defaultWorksheetIndex, 0, 1, "新しいシリーズ1");// 系列名を修正
series.getDataPoints().get_Item(0).getValue().setData(90);
series.getDataPoints().get_Item(1).getValue().setData(123);
series.getDataPoints().get_Item(2).getValue().setData(44);
// 2番目のチャート系列を取得
series = chart.getChartData().getSeries().get_Item(1);
// 現在、系列データを更新
fact.getCell(defaultWorksheetIndex, 0, 2, "新しいシリーズ2");// 系列名を修正
series.getDataPoints().get_Item(0).getValue().setData(23);
series.getDataPoints().get_Item(1).getValue().setData(67);
series.getDataPoints().get_Item(2).getValue().setData(99);
// 新しい系列を追加
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 3, "シリーズ 3"), chart.getType());
// 3番目のチャート系列を取得
series = chart.getChartData().getSeries().get_Item(2);
// 現在、系列データをポピュレート
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 3, 20));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 50));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 30));
chart.setType(ChartType.ClusteredCylinder);
// チャートを持つプレゼンテーションを保存
pres.save("AsposeChartModified_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
チャートのデータ範囲を設定
チャートのデータ範囲を設定するには、次のようにします:
- チャートが含まれているプレゼンテーションを表す