Optimalizovat výpočty grafů pro prezentace v PHP
Přehled
Aspose.Slides poskytuje rozhraní API pro práci s výpočty grafů a daty rozvržení v prezentacích. Tento článek ukazuje, jak získat skutečné hodnoty prvků grafu, včetně skutečné polohy a velikosti prvků a skutečných hodnot os grafu. Také vysvětluje, že tyto hodnoty jsou vyplněny po ověření rozvržení grafu.
Dále článek ukazuje, jak získat skutečnou polohu nadřazených prvků grafu a jak skrýt komponenty grafu, jako jsou Název, svislá osa, vodorovná osa a mřížkové čáry. Tyto příklady vám pomáhají programově prozkoumat informace o rozvržení grafu a řídit viditelnost prvků grafu v prezentacích PowerPoint.
Vypočítat skutečné hodnoty prvků grafu
Aspose.Slides for PHP via Java poskytuje jednoduché API pro získání těchto vlastností. Metody třídy Axis poskytují informace o skutečné poloze prvku osy grafu (getActualMaxValue, getActualMinValue, getActualMajorUnit, getActualMinorUnit, getActualMajorUnitScale, getActualMinorUnitScale). Je nutné předtím zavolat metodu Chart.validateChartLayout, aby se vlastnosti naplnily skutečnými hodnotami.
$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();
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Vypočítat skutečnou polohu nadřazených prvků grafu
Aspose.Slides for PHP via Java poskytuje jednoduché API pro získání těchto vlastností. Metody třídy ActualLayout poskytují informace o skutečné poloze nadřazeného prvku grafu (getActualX, getActualY, getActualWidth, getActualHeight). Je nutné předtím zavolat metodu Chart.validateChartLayout, aby se vlastnosti naplnily skutečnými hodnotami.
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 500, 350);
$chart->validateChartLayout();
$x = $chart->getPlotArea()->getActualX();
$y = $chart->getPlotArea()->getActualY();
$w = $chart->getPlotArea()->getActualWidth();
$h = $chart->getPlotArea()->getActualHeight();
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Skrýt prvky grafu
Toto téma vám pomůže pochopit, jak skrýt informace v grafu. Pomocí Aspose.Slides for PHP via Java můžete skrýt Název, svislou osu, vodorovnou osu a mřížkové čáry v grafu. Níže uvedený příklad kódu ukazuje, jak tyto vlastnosti použít.
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$chart = $slide->getShapes()->addChart(ChartType::LineWithMarkers, 140, 118, 320, 370);
# Skrývání názvu grafu
$chart->setTitle(false);
# /Skrývání osy hodnot
$chart->getAxes()->getVerticalAxis()->setVisible(false);
# Viditelnost kategorie osy
$chart->getAxes()->getHorizontalAxis()->setVisible(false);
# Skrývání legendy
$chart->setLegend(false);
# Skrývání hlavních mřížkových čar
$chart->getAxes()->getHorizontalAxis()->getMajorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
for($i = 0; $i < java_values($chart->getChartData()->getSeries()->size()) ; $i++) {
$chart->getChartData()->getSeries()->removeAt($i);
}
$series = $chart->getChartData()->getSeries()->get_Item(0);
$series->getMarker()->setSymbol(MarkerStyleType::Circle);
$series->getLabels()->getDefaultDataLabelFormat()->setShowValue(true);
$series->getLabels()->getDefaultDataLabelFormat()->setPosition(LegendDataLabelPosition->Top);
$series->getMarker()->setSize(15);
# Nastavení barvy čáry řady
$series->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
$series->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->MAGENTA);
$series->getFormat()->getLine()->setDashStyle(LineDashStyle->Solid);
$pres->save("HideInformationFromChart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Často kladené otázky
Fungují externí sešity Excelu jako zdroj dat a jak to ovlivňuje přepočet?
Ano. Graf může odkazovat na externí sešit: když se připojíte nebo obnovíte externí zdroj, vzorce a hodnoty jsou převzaty z tohoto sešitu a graf během otevření/úprav zobrazuje aktualizace. API vám umožňuje upřesnit externí sešit a spravovat propojená data.
Mohu vypočítat a zobrazit trendové čáry, aniž bych implementoval regresi sám?
Ano. Trendline (lineární, exponenciální a další) jsou přidávány a aktualizovány Aspose.Slides; jejich parametry jsou automaticky přepočítány z dat řady, takže není nutné provádět vlastní výpočty.
Pokud má prezentace více grafů s externími odkazy, mohu řídit, který sešit používá pro výpočty hodnot v jednotlivých grafech?
Ano. Každý graf může odkazovat na svůj vlastní externí sešit, nebo můžete pro každý graf vytvořit/nahradit externí sešit nezávisle na ostatních.