Java を使用した Treemap と Sunburst チャートのデータ ポイントのカスタマイズ
PowerPoint の他の種類のチャートの中で、Treemap と Sunburst(Sunburst Graph、Sunburst Diagram、Radial Chart、Radial Graph、Multi Level Pie Chart とも呼ばれます)の 2 つの「階層」タイプがあります。これらのチャートは、葉から枝のトップまでツリー構造で階層データを表示します。葉は系列のデータ ポイントで定義され、各次のネストされたグループ化レベルは対応するカテゴリで定義されます。Aspose.Slides for Java を使用すると、Java で Sunburst Chart と Treemap のデータ ポイントをフォーマットできます。
以下は Sunburst Chart の例です。Series1 列のデータが葉ノードを定義し、他の列が階層データ ポイントを定義します:
プレゼンテーションに新しい Sunburst チャートを追加しましょう:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);
// (省略)
} finally {
if (pres != null) pres.dispose();
}
チャートのデータ ポイントをフォーマットする必要がある場合は、以下を使用します:
IChartDataPointLevelsManager、IChartDataPointLevel クラス と IChartDataPoint.getDataPointLevels メソッドが Treemap と Sunburst チャートのデータ ポイントのフォーマットへのアクセスを提供します。
IChartDataPointLevelsManager はマルチレベルカテゴリへのアクセスに使用され、IChartDataPointLevel オブジェクトのコンテナを表します。基本的にはデータ ポイント固有のプロパティが追加された IChartCategoryLevelsManager のラッパーです。
IChartDataPointLevel クラスは、getFormat と getDataLabel の 2 つのメソッドを持ち、対応する設定へのアクセスを提供します。
データポイントの値を表示
“Leaf 4” データ ポイントの値を表示します:
IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
dataPoints.get_Item(3).getDataPointLevels().get_Item(0).getLabel().getDataLabelFormat().setShowValue(true);
データポイントのラベルと色を設定
“Branch 1” データ ラベルをカテゴリ名ではなくシリーズ名 (“Series1”) を表示するように設定し、テキストの色を黄色に変更します:
IDataLabel branch1Label = dataPoints.get_Item(0).getDataPointLevels().get_Item(0).getLabel();
branch1Label.getDataLabelFormat().setShowCategoryName(false);
branch1Label.getDataLabelFormat().setShowSeriesName(true);
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.YELLOW);
データポイントの枝の色を設定
“Steam 4” 枝の色を変更します:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);
IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
IChartDataPointLevel stem4branch = dataPoints.get_Item(9).getDataPointLevels().get_Item(1);
stem4branch.getFormat().getFill().setFillType(FillType.Solid);
stem4branch.getFormat().getFill().getSolidFillColor().setColor(Color.RED);
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Sunburst/Treemap のセグメントの順序(並び替え)を変更できますか?
いいえ。PowerPoint はセグメントを自動的に(通常は降順で時計回りに)並び替えます。Aspose.Slides はこの動作をそのまま再現します。直接順序を変更することはできません。データを事前に加工して順序を調整してください。
プレゼンテーションのテーマはセグメントやラベルの色にどのように影響しますか?
チャートの色はプレゼンテーションの theme/palette を継承します。明示的に塗りつぶしやフォントを設定しない限り、テーマの配色が適用されます。一定の結果を得るには、必要なレベルで塗りつぶしやテキスト書式を固定してください。
PDF/PNG へのエクスポート時にカスタム枝の色やラベル設定は保持されますか?
保持されます。プレゼンテーションをエクスポートするとき、チャートの設定(塗りつぶし、ラベル)は出力形式にそのまま保存されます。Aspose.Slides はチャートの書式設定を適用した状態でレンダリングします。
チャート上にカスタムオーバーレイを配置するために、ラベルや要素の実際の座標を計算できますか?
できます。チャートのレイアウトが確定した後、要素(例: DataLabel)の実際の x と y が取得可能です。これにより、オーバーレイの正確な位置決めが可能になります。