PHP を使用したツリーマップおよびサンバースト チャートのデータポイントのカスタマイズ

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

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

todo:image_alt_text

プレゼンテーションに新しい 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 つのメソッドがあります: getFormatgetDataLabel。これらは対応する設定にアクセスするために使用されます。

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

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

  $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”) に設定し、テキスト色を黄色に変更します:

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

todo:image_alt_text

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

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

todo:image_alt_text

FAQ

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

いいえ。PowerPoint はセグメントを自動的に並べ替えます(通常は値の降順、時計回り)。Aspose.Slides も同様に動作し、直接順序を変更することはできません。データを前処理して順序を調整してください。

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

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

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

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

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

はい。チャートのレイアウトが検証された後、要素(例として DataLabel)の実際の xy が取得可能となり、オーバーレイの正確な位置決めに役立ちます。