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