Přizpůsobení os grafu v prezentacích pomocí PHP

Přehled

Tento článek vysvětluje, jak přizpůsobit osy grafu v Aspose.Slides. Ukazuje, jak získat skutečné hodnoty os, prohodit data mezi osami, skrýt vertikální nebo horizontální osu pro spojnicové grafy, změnit typ osy kategorií, nastavit formát data pro hodnoty osy kategorií, otočit název osy, nastavit polohu osy a zobrazit jednotkový štítek na hodnotové ose.

Získání maximálních hodnot na vertikální ose v grafech

Aspose.Slides for PHP via Java umožňuje získat minimální a maximální hodnoty na vertikální ose. Proveďte následující kroky:

  1. Vytvořte instance třídy Presentation.
  2. Získejte přístup k první snímku.
  3. Přidejte graf s výchozími daty.
  4. Získejte skutečnou maximální hodnotu na ose.
  5. Získejte skutečnou minimální hodnotu na ose.
  6. Získejte skutečnou hlavní jednotku osy.
  7. Získejte skutečnou vedlejší jednotku osy.
  8. Získejte skutečnou stupnici hlavní jednotky osy.
  9. Získejte skutečnou stupnici vedlejší jednotky osy.

Tento ukázkový kód – implementace výše uvedených kroků – ukazuje, jak získat požadované hodnoty :

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Area, 100, 100, 500, 350);
    $chart->validateChartLayout();
    $maxValue = $chart->getAxes()->getVerticalAxis()->getActualMaxValue();
    $minValue = $chart->getAxes()->getVerticalAxis()->getActualMinValue();
    $majorUnit = $chart->getAxes()->getHorizontalAxis()->getActualMajorUnit();
    $minorUnit = $chart->getAxes()->getHorizontalAxis()->getActualMinorUnit();
    # Uloží prezentaci
    $pres->save("MaxValuesVerticalAxis_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Prohození dat mezi osami

Aspose.Slides umožňuje rychle prohodit data mezi osami – data zobrazená na vertikální ose (y‑osa) se přesunou na horizontální osu (x‑osa) a naopak.

Tento PHP kód ukazuje, jak provést výměnu dat mezi osami v grafu:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 400, 300);
    # Přepíná řádky a sloupce
    $chart->getChartData()->switchRowColumn();
    # Uloží prezentaci
    $pres->save("SwitchChartRowColumns_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Zakázání vertikální osy pro spojnicové grafy

Tento PHP kód ukazuje, jak skrýt vertikální osu pro spojnicový graf:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Line, 100, 100, 400, 300);
    $chart->getAxes()->getVerticalAxis()->setVisible(false);
    $pres->save("chart.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Zakázání horizontální osy pro spojnicové grafy

Tento kód ukazuje, jak skrýt horizontální osu pro spojnicový graf:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Line, 100, 100, 400, 300);
    $chart->getAxes()->getHorizontalAxis()->setVisible(false);
    $pres->save("chart.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Změna osy kategorií

Pomocí vlastnosti CategoryAxisType můžete určit požadovaný typ osy kategorií (date nebo text). Tento kód demonstruje operaci:

  $presentation = new Presentation("ExistingChart.pptx");
  try {
    $chart = $presentation->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $chart->getAxes()->getHorizontalAxis()->setCategoryAxisType(CategoryAxisType::Date);
    $chart->getAxes()->getHorizontalAxis()->setAutomaticMajorUnit(false);
    $chart->getAxes()->getHorizontalAxis()->setMajorUnit(1);
    $chart->getAxes()->getHorizontalAxis()->setMajorUnitScale(TimeUnitType::Months);
    $presentation->save("ChangeChartCategoryAxis_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($presentation)) {
      $presentation->dispose();
    }
  }

Nastavení formátu data pro hodnoty osy kategorií

Aspose.Slides for PHP via Java umožňuje nastavit formát data pro hodnotu osy kategorií. Operace je demonstrována v tomto PHP kódu:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Area, 50, 50, 450, 300);
    $wb = $chart->getChartData()->getChartDataWorkbook();
    $wb->clear(0);
    $chart->getChartData()->getCategories()->clear();
    $chart->getChartData()->getSeries()->clear();
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A2", convertToOADate(new GregorianCalendar(2015, 1, 1))));
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A3", convertToOADate(new GregorianCalendar(2016, 1, 1))));
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A4", convertToOADate(new GregorianCalendar(2017, 1, 1))));
    $chart->getChartData()->getCategories()->add($wb->getCell(0, "A5", convertToOADate(new GregorianCalendar(2018, 1, 1))));
    $series = $chart->getChartData()->getSeries()->add(ChartType::Line);
    $series->getDataPoints()->addDataPointForLineSeries($wb->getCell(0, "B2", 1));
    $series->getDataPoints()->addDataPointForLineSeries($wb->getCell(0, "B3", 2));
    $series->getDataPoints()->addDataPointForLineSeries($wb->getCell(0, "B4", 3));
    $series->getDataPoints()->addDataPointForLineSeries($wb->getCell(0, "B5", 4));
    $chart->getAxes()->getHorizontalAxis()->setCategoryAxisType(CategoryAxisType::Date);
    $chart->getAxes()->getHorizontalAxis()->setNumberFormatLinkedToSource(false);
    $chart->getAxes()->getHorizontalAxis()->setNumberFormat("yyyy");
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Nastavení úhlu otáčení názvu osy grafu

Aspose.Slides for PHP via Java umožňuje nastavit úhel otáčení názvu osy grafu. Tento PHP kód demonstruje operaci:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 450, 300);
    $chart->getAxes()->getVerticalAxis()->setTitle(true);
    $chart->getAxes()->getVerticalAxis()->getTitle()->getTextFormat()->getTextBlockFormat()->setRotationAngle(90);
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Nastavení polohy osy na ose kategorií nebo hodnot

Aspose.Slides for PHP via Java umožňuje nastavit polohu osy v ose kategorií nebo hodnot. Tento PHP kód ukazuje, jak provést úkol:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 450, 300);
    $chart->getAxes()->getHorizontalAxis()->setAxisBetweenCategories(true);
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Povolení zobrazení jednotky na hodnotové ose grafu

Aspose.Slides for PHP via Java umožňuje nakonfigurovat graf tak, aby na své hodnotové ose zobrazoval štítek jednotky. Tento PHP kód demonstruje operaci:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 450, 300);
    $chart->getAxes()->getVerticalAxis()->setDisplayUnit(DisplayUnitType::Millions);
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Často kladené otázky

Jak nastavit hodnotu, ve které se jedna osa protíná s druhou (průsečík os)?

Osy poskytují nastavení průsečíku: můžete zvolit průsečík v nule, v maximální kategorii/hodnotě nebo na konkrétní číselné hodnotě. To je užitečné pro posunutí osy X nahoru nebo dolů nebo pro zvýraznění referenční linie.

Jak mohu umístit popisky značek vzhledem k ose (vedle, venku, uvnitř)?

Nastavte polohu štítku na „cross“, „outside“ nebo „inside“. Toto ovlivňuje čitelnost a pomáhá šetřit místo, zejména u malých grafů.