Android の Treemap および Sunburst チャートでデータポイントをカスタマイズ

PowerPoint の他のチャートタイプの中で、階層型のタイプが2つあります – TreemapSunburst チャート(Sunburst Graph、Sunburst Diagram、Radial Chart、Radial Graph、Multi Level Pie Chart とも呼ばれます)。これらのチャートは、葉から枝の先までツリー構造で整理された階層データを表示します。葉は系列のデータポイントで定義され、各次のネストされたグループレベルは対応するカテゴリで定義されます。Aspose.Slides for Android via Java は、Java で Sunburst Chart と Treemap のデータポイントの書式設定を可能にします。

以下は Sunburst Chart の例です。Series1 列のデータが葉ノードを定義し、他の列が階層データポイントを定義します:

todo:image_alt_text

プレゼンテーションに新しい 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();
}

チャートのデータポイントをフォーマットする必要がある場合は、以下を使用する必要があります:

IChartDataPointLevelsManagerIChartDataPointLevel クラス、および IChartDataPoint.getDataPointLevels メソッドは、Treemap と Sunburst チャートのデータポイントの書式設定へのアクセスを提供します。

IChartDataPointLevelsManager はマルチレベルカテゴリへのアクセスに使用され、IChartDataPointLevel オブジェクトのコンテナを表します。基本的にこれは、データポイント固有のプロパティが追加された IChartCategoryLevelsManager のラッパーです。IChartDataPointLevel クラスには、getFormatgetDataLabel の2つのメソッドがあり、対応する設定へのアクセスを提供します。

データポイントの値を表示

「Leaf 4」データポイントの値を表示します:

IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
dataPoints.get_Item(3).getDataPointLevels().get_Item(0).getLabel().getDataLabelFormat().setShowValue(true);

todo:image_alt_text

データポイントのラベルとカラーを設定

「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);

todo:image_alt_text

データポイントのブランチカラーを設定

「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();
}

todo:image_alt_text

FAQ

Sunburst/Treemap のセグメントの順序(ソート)を変更できますか?

いいえ。PowerPoint はセグメントを自動的にソートします(通常は降順で時計回り)。Aspose.Slides もこの動作をそのまま反映します。順序を直接変更することはできず、データを事前処理することで実現します。

プレゼンテーションのテーマはセグメントやラベルの色にどのように影響しますか?

チャートの色は、明示的に塗りつぶしやフォントを設定しない限り、プレゼンテーションのテーマ/パレットを継承します。一貫した結果を得るためには、必要なレベルで実線の塗りつぶしとテキスト書式を固定してください。

PDF/PNG へのエクスポートはカスタムブランチカラーやラベル設定を保持しますか?

はい。プレゼンテーションをエクスポートする際、チャートの設定(塗りつぶし、ラベル)は出力形式で保持されます。これは Aspose.Slides がチャートの書式設定を適用した状態でレンダリングするためです。

チャート上にカスタムオーバーレイを配置するために、ラベルや要素の実際の座標を計算できますか?

はい。チャートのレイアウトが検証された後、要素(例: DataLabel)に対して実際の x と実際の y が取得可能です。これにより、オーバーレイの正確な位置決めが容易になります。