В диаграммах Powerpoint вы можете отформатировать единицы измерения осей в процентах, выбрав формат Число-> Процент.
Я пытаюсь добиться того же в диаграмме PHPPresentation с единицами оси Y в процентах (10%, 20% .. 100%), но он отображает их в виде значений (0,1, 0,2, …, 1,0) без их форматирования. Автор использовал Powerpoint 2007
$objWriter = IOFactory::createWriter($objPHPPowerPoint, 'PowerPoint2007');
Код приведен ниже:
$seriesAoC = array(
'01/07/2015' => 0.2,
'01/08/2015' => 0.5,
'01/09/2015' => 0.8,
'01/10/2015' => 1.0
); //supposed to display plots at 20%, 50%, 80% and 100% on axis Y ???
$oFill = new Fill();
$oFill->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FFFFFFFF'));
$lineChart = new Line();
$series = new Series('AoC', $seriesAoC);
$series->setShowSeriesName(false);
$series->setShowValue(false);
$series->setShowPercentage(true); //series axis label should be in percentage not decimals
$series->setShowLeaderLines(false);
$lineChart->addSeries($series);
$oGridLines = new Gridlines();
$oGridLines->getOutline()->setWidth(1);
$oGridLines->getOutline()->getFill()->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FFD9D9D9'));
$shape = $slide->createChartShape();
$shape->setName('Completion Percentage')->setResizeProportional(false)->setHeight(300)->setWidth(550)->setOffsetX(50)->setOffsetY(120);
$shape->getPlotArea()->getAxisY()->setMajorGridlines($oGridLines);
$shape->getPlotArea()->getAxisY()->setMajorUnit(0.1);
$shape->getPlotArea()->getAxisY()->setMaxBounds(1.0);
$shape->getPlotArea()->getAxisY()->setMinBounds(0.0);
$shape->getPlotArea()->getAxisY()->setFormatCode('0%');
$shape->getPlotArea()->getAxisY()->setTitle("");
$shape->getPlotArea()->getAxisX()->setTitle("");
$shape->setFill($oFill);
$shape->getBorder()->setLineStyle(Border::LINE_SINGLE)->setLineWidth(0.5);
$shape->getTitle()->setText('Sample Title');
$shape->getTitle()->getFont()->setSize(10);
$shape->getTitle()->getAlignment()->setIndent(180);
$shape->getPlotArea()->setType($lineChart);
$shape->getView3D()->setRotationX(30);
$shape->getView3D()->setPerspective(30);
$shape->getLegend()->getBorder()->setLineStyle(Border::LINE_NONE);
$shape->getLegend()->setPosition(Legend::POSITION_TOP);
$shape->getLegend()->getFont()->setSize(8);
Любая помощь высоко ценится.
Задача ещё не решена.
Других решений пока нет …