ツリーマップとサンバーストチャートのデータポイント

PowerPointチャートの他のタイプの中には、二つの「階層型」タイプ - ツリーマップサンバーストチャート(サンバーストグラフ、サンバースト図、放射状チャート、放射状グラフ、多層円グラフとも呼ばれます)があります。これらのチャートは、葉から枝のトップまでのツリーとして整理された階層データを表示します。葉は系列データポイントによって定義され、各後続のネストされたグルーピングレベルは対応するカテゴリによって定義されます。Aspose.Slides for PHPをJava経由で使用することで、サンバーストチャートとツリーマップのデータポイントをフォーマットできます。

ここにサンバーストチャートがあります。Series1列のデータが葉ノードを定義し、他の列が階層データポイントを定義します。

todo:image_alt_text

プレゼンテーションに新しいサンバーストチャートを追加することから始めましょう:

  $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クラス  および IChartDataPoint.getDataPointLevelsメソッド  は、ツリーマップとサンバーストチャートのデータポイントをフォーマットするためのアクセスを提供します。  IChartDataPointLevelsManager はマルチレベルカテゴリにアクセスするために使用されます - それは  IChartDataPointLevelオブジェクトのコンテナを表します。 基本的に、データポイント専用のプロパティが追加された  IChartCategoryLevelsManagerのラッパーです。  IChartDataPointLevelクラスには 二つのメソッドがあります: getFormat と  getDataLabel は 対応する設定へのアクセスを提供します。

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

「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