Настройка осей диаграмм в презентациях с помощью PHP
Получить максимальные значения на вертикальной оси диаграмм
Aspose.Slides for PHP via Java позволяет получать минимальные и максимальные значения на вертикальной оси. Выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите первый слайд.
- Добавьте диаграмму с данными по умолчанию.
- Получите фактическое максимальное значение на оси.
- Получите фактическое минимальное значение на оси.
- Получите фактическую основную единицу измерения оси.
- Получите фактическую вспомогательную единицу измерения оси.
- Получите фактический масштаб основной единицы измерения оси.
- Получите фактический масштаб вспомогательной единицы измерения оси.
Этот пример кода — реализация вышеуказанных шагов — показывает, как получить требуемые значения :
$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();
# Сохраняет презентацию
$pres->save("MaxValuesVerticalAxis_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Переставить данные между осями
Aspose.Slides позволяет быстро переставлять данные между осями — данные, представленные на вертикальной оси (y‑ось), перемещаются на горизонтальную ось (x‑ось) и наоборот.
Этот PHP‑код показывает, как выполнить задачу перестановки данных между осями на диаграмме:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 400, 300);
# Переключает строки и столбцы
$chart->getChartData()->switchRowColumn();
# Сохраняет презентацию
$pres->save("SwitchChartRowColumns_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Отключить вертикальную ось для линейных диаграмм
Этот PHP‑код показывает, как скрыть вертикальную ось для линейной диаграммы:
$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();
}
}
Отключить горизонтальную ось для линейных диаграмм
Этот код показывает, как скрыть горизонтальную ось для линейной диаграммы:
$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();
}
}
Изменить категориальную ось
С помощью свойства CategoryAxisType вы можете указать желаемый тип категориальной оси (date или text). Этот код демонстрирует операцию:
$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();
}
}
Установить формат даты для значений категориальной оси
Aspose.Slides for PHP via Java позволяет установить формат даты для значения категориальной оси. Операция продемонстрирована в этом PHP‑коде:
$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();
}
}
Установить угол поворота заголовка оси диаграммы
Aspose.Slides for PHP via Java позволяет установить угол поворота заголовка оси диаграммы. Этот PHP‑код демонстрирует операцию:
$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();
}
}
Установить положение оси на категориальной или оси значений
Aspose.Slides for PHP via Java позволяет установить позицию оси в категориальной или оси значений. Этот PHP‑код показывает, как выполнить задачу:
$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();
}
}
Включить отображение подписи единицы измерения на оси значений диаграммы
Aspose.Slides for PHP via Java позволяет настроить диаграмму для отображения подписи единицы измерения на оси значений. Этот PHP‑код демонстрирует операцию:
$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();
}
}
Часто задаваемые вопросы
Как задать значение, где одна ось пересекает другую (пересечение осей)?
Оси предоставляют crossing setting: вы можете выбрать пересечение в нуле, в максимальной категории/значении или в конкретном числовом значении. Это полезно для смещения оси X вверх или вниз или для выделения базовой линии.
Как позиционировать метки делений относительно оси (рядом, снаружи, внутри)?
Установите label position в значение “cross”, “outside” или “inside”. Это влияет на читаемость и помогает экономить место, особенно на маленьких диаграммах.