PHP を使用したツリーマップおよびサンバースト チャートのデータポイントのカスタマイズ
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();
}
}
チャートのデータポイントの書式設定が必要な場合は、次のものを使用します:
IChartDataPointLevelsManager, IChartDataPointLevel classes and IChartDataPoint.getDataPointLevels method provide access to format data points of Treemap and Sunburst charts.
IChartDataPointLevelsManager はマルチレベルカテゴリへアクセスするために使用され、IChartDataPointLevel オブジェクトのコンテナを表します。
基本的には IChartCategoryLevelsManager のラッパーで、データポイント固有のプロパティが追加されています。
IChartDataPointLevel クラスには 2 つのメソッドがあります: getFormat と getDataLabel。これらは対応する設定にアクセスするために使用されます。
データポイントの値を表示
「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 が取得可能となり、オーバーレイの正確な位置決めに役立ちます。