使用 PHP 定制演示文稿图表中的误差线

添加误差线

Aspose.Slides for PHP via Java 提供了一个用于管理误差线值的简易 API。 当使用自定义值类型时,此示例代码适用。 要指定值,请使用系列的 DataPoints 集合中某个数据点的 ErrorBarCustomValues 属性:

  1. 创建 Presentation 类的实例。
  2. 在所需的幻灯片上添加气泡图。
  3. 访问第一个图表系列并设置误差线 X 方向的格式。
  4. 访问第一个图表系列并设置误差线 Y 方向的格式。
  5. 设置误差线的数值和格式。
  6. 将修改后的演示文稿写入 PPTX 文件。
  # 创建 Presentation 类的实例
  $pres = new Presentation();
  try {
    # 创建气泡图表
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Bubble, 50, 50, 400, 300, true);
    # 添加误差线并设置其格式
    $errBarX = $chart->getChartData()->getSeries()->get_Item(0)->getErrorBarsXFormat();
    $errBarY = $chart->getChartData()->getSeries()->get_Item(0)->getErrorBarsYFormat();
    $errBarX->isVisible();
    $errBarY->isVisible();
    $errBarX->setValueType(ErrorBarValueType::Fixed);
    $errBarX->setValue(0.1);
    $errBarY->setValueType(ErrorBarValueType::Percentage);
    $errBarY->setValue(5);
    $errBarX->setType(ErrorBarType::Plus);
    $errBarY->getFormat()->getLine()->setWidth(2.0);
    $errBarX->hasEndCap();
    # 保存演示文稿
    $pres->save("ErrorBars.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

添加自定义误差线值

Aspose.Slides for PHP via Java 提供了一个用于管理自定义误差线值的简易 API。 当 IErrorBarsFormat.ValueType 属性等于 Custom 时,此示例代码适用。 要指定值,请使用系列的 DataPoints 集合中某个数据点的 ErrorBarCustomValues 属性:

  1. 创建 Presentation 类的实例。
  2. 在所需的幻灯片上添加气泡图。
  3. 访问第一个图表系列并设置误差线 X 方向的格式。
  4. 访问第一个图表系列并设置误差线 Y 方向的格式。
  5. 访问图表系列的各个数据点,并为单个系列数据点设置误差线值。
  6. 设置误差线的数值和格式。
  7. 将修改后的演示文稿写入 PPTX 文件。
  # 创建 Presentation 类的实例
  $pres = new Presentation();
  try {
    # 创建气泡图表
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Bubble, 50, 50, 400, 300, true);
    # 添加自定义误差线并设置其格式
    $series = $chart->getChartData()->getSeries()->get_Item(0);
    $errBarX = $series->getErrorBarsXFormat();
    $errBarY = $series->getErrorBarsYFormat();
    $errBarX->isVisible();
    $errBarY->isVisible();
    $errBarX->setValueType(ErrorBarValueType::Custom);
    $errBarY->setValueType(ErrorBarValueType::Custom);
    # 访问图表系列数据点并为其设置误差线值
    # 单个点
    $points = $series->getDataPoints();
    $points->getDataSourceTypeForErrorBarsCustomValues()->setDataSourceTypeForXPlusValues(DataSourceType::DoubleLiterals);
    $points->getDataSourceTypeForErrorBarsCustomValues()->setDataSourceTypeForXMinusValues(DataSourceType::DoubleLiterals);
    $points->getDataSourceTypeForErrorBarsCustomValues()->setDataSourceTypeForYPlusValues(DataSourceType::DoubleLiterals);
    $points->getDataSourceTypeForErrorBarsCustomValues()->setDataSourceTypeForYMinusValues(DataSourceType::DoubleLiterals);
    # 为图表系列点设置误差线
    for($i = 0; $i < java_values($points->size()) ; $i++) {
      $points->get_Item($i)->getErrorBarsCustomValues()->getXMinus()->setAsLiteralDouble($i + 1);
      $points->get_Item($i)->getErrorBarsCustomValues()->getXPlus()->setAsLiteralDouble($i + 1);
      $points->get_Item($i)->getErrorBarsCustomValues()->getYMinus()->setAsLiteralDouble($i + 1);
      $points->get_Item($i)->getErrorBarsCustomValues()->getYPlus()->setAsLiteralDouble($i + 1);
    }
    # 保存演示文稿
    $pres->save("ErrorBarsCustomValues.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

将演示文稿导出为 PDF 或图像时,误差线会怎样?

它们作为图表的一部分进行渲染,并在转换过程中与图表的其他格式一起保留,前提是使用兼容的版本或渲染器。

误差线可以与标记和数据标签组合使用吗?

可以。误差线是独立的元素,且与标记和数据标签兼容;如果元素重叠,可能需要调整格式。

在哪里可以找到 API 中用于处理误差线的属性和类列表?

在 API 参考中:ErrorBarsFormat 类以及相关的 ErrorBarTypeErrorBarValueType 类。