PHPでプレゼンテーションのチャートにトレンドラインを追加

トレンドラインの追加

Aspose.Slides for PHP via Java は、さまざまなチャートのトレンドラインを管理するシンプルな API を提供します:

  1. Presentation クラスのインスタンスを作成します。
  2. インデックスでスライドの参照を取得します。
  3. デフォルトデータでチャートを追加し、任意のタイプを指定します(この例では ChartType::ClusteredColumn を使用)。
  4. チャート系列 1 に指数トレンドラインを追加します。
  5. チャート系列 1 に線形トレンドラインを追加します。
  6. チャート系列 2 に対数トレンドラインを追加します。
  7. チャート系列 2 に移動平均トレンドラインを追加します。
  8. チャート系列 3 に多項式トレンドラインを追加します。
  9. チャート系列 3 にべきトレンドラインを追加します。
  10. 修正したプレゼンテーションを PPTX ファイルに書き込みます。

以下のコードは、トレンドライン付きのチャートを作成するために使用されます。

  # Presentation クラスのインスタンスを作成
  $pres = new Presentation();
  try {
    # クラスタードカラム チャートを作成
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 20, 20, 500, 400);
    # チャート系列 1 に指数トレンドラインを追加
    $tredLinep = $chart->getChartData()->getSeries()->get_Item(0)->getTrendLines()->add(TrendlineType::Exponential);
    $tredLinep->setDisplayEquation(false);
    $tredLinep->setDisplayRSquaredValue(false);
    # チャート系列 1 に線形トレンドラインを追加
    $tredLineLin = $chart->getChartData()->getSeries()->get_Item(0)->getTrendLines()->add(TrendlineType::Linear);
    $tredLineLin->setTrendlineType(TrendlineType::Linear);
    $tredLineLin->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
    $tredLineLin->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
    # チャート系列 2 に対数トレンドラインを追加
    $tredLineLog = $chart->getChartData()->getSeries()->get_Item(1)->getTrendLines()->add(TrendlineType::Logarithmic);
    $tredLineLog->setTrendlineType(TrendlineType::Logarithmic);
    $tredLineLog->addTextFrameForOverriding("New log trend line");
    # チャート系列 2 に移動平均トレンドラインを追加
    $tredLineMovAvg = $chart->getChartData()->getSeries()->get_Item(1)->getTrendLines()->add(TrendlineType::MovingAverage);
    $tredLineMovAvg->setTrendlineType(TrendlineType::MovingAverage);
    $tredLineMovAvg->setPeriod(3);
    $tredLineMovAvg->setTrendlineName("New TrendLine Name");
    # チャート系列 3 に多項式トレンドラインを追加
    $tredLinePol = $chart->getChartData()->getSeries()->get_Item(2)->getTrendLines()->add(TrendlineType::Polynomial);
    $tredLinePol->setTrendlineType(TrendlineType::Polynomial);
    $tredLinePol->setForward(1);
    $tredLinePol->setOrder(3);
    # チャート系列 3 にべきトレンドラインを追加
    $tredLinePower = $chart->getChartData()->getSeries()->get_Item(1)->getTrendLines()->add(TrendlineType::Power);
    $tredLinePower->setTrendlineType(TrendlineType::Power);
    $tredLinePower->setBackward(1);
    # プレゼンテーションを保存
    $pres->save("ChartTrendLines_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

カスタムラインの追加

Aspose.Slides for PHP via Java は、チャートにカスタムラインを追加するシンプルな API を提供します。プレゼンテーションの選択したスライドにシンプルな直線を追加するには、以下の手順に従ってください:

  • Presentation クラスのインスタンスを作成します
  • インデックスを使用してスライドの参照を取得します
  • Shapes オブジェクトが提供する AddChart メソッドを使用して新しいチャートを作成します
  • Shapes オブジェクトが提供する AddAutoShape メソッドを使用して、ラインタイプの AutoShape を追加します
  • シェイプの線の色を設定します
  • 修正したプレゼンテーションを PPTX ファイルとして書き込みます

以下のコードは、カスタムライン付きのチャートを作成するために使用されます。

  # Presentation クラスのインスタンスを作成
  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 500, 400);
    $shape = $chart->getUserShapes()->getShapes()->addAutoShape(ShapeType::Line, 0, $chart->getHeight() / 2, $chart->getWidth(), 0);
    $shape->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
    $shape->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
    $pres->save("Presentation.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

よくある質問

トレンドラインの「forward」と「backward」の意味は何ですか?

それらはトレンドラインを前方/後方に延長した長さです。散布図(XY)チャートの場合は軸の単位で、散布図以外の場合はカテゴリ数で表されます。負の値は使用できません。

プレゼンテーションを PDF や SVG にエクスポートしたり、スライドを画像にレンダリングしたりした場合、トレンドラインは保持されますか?

はい。Aspose.Slides はプレゼンテーションを PDF/SVG に変換し、チャートを画像としてレンダリングします。トレンドラインはチャートの一部としてこれらの操作中に保持されます。また、チャート自体の画像を エクスポートするメソッドも利用可能です。