Ось графика

Получение максимальных значений по вертикальной оси на графиках

Aspose.Slides для Android на Java позволяет получить минимальные и максимальные значения на вертикальной оси. Следуйте этим шагам:

  1. Создайте экземпляр класса Presentation.
  2. Получите первый слайд.
  3. Добавьте график с данными по умолчанию.
  4. Получите фактическое максимальное значение по оси.
  5. Получите фактическое минимальное значение по оси.
  6. Получите фактическую основную единицу по оси.
  7. Получите фактическую вспомогательную единицу по оси.
  8. Получите фактический масштаб основной единицы по оси.
  9. Получите фактический масштаб вспомогательной единицы по оси.

Этот пример кода — реализация вышеуказанных шагов — показывает, как получить необходимые значения на Java:

Presentation pres = new Presentation();
try {
    Chart chart = (Chart)pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Area, 100, 100, 500, 350);
    chart.validateChartLayout();

    double maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue();
    double minValue = chart.getAxes().getVerticalAxis().getActualMinValue();

    double majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit();
    double minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit();

    // Сохраняет презентацию
    pres.save("MaxValuesVerticalAxis_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Обмен данными между осями

Aspose.Slides позволяет быстро обменивать данные между осями — данные, представленные на вертикальной оси (оси y), перемещаются на горизонтальную ось (оси x) и наоборот.

Этот код на Java показывает, как выполнить задачу обмена данными между осями на графике:

Presentation pres = new Presentation();
try {
    IChart 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 (pres != null) pres.dispose();
}

Отключение вертикальной оси для линейных графиков

Этот код на Java показывает, как скрыть вертикальную ось для линейного графика:

Presentation pres = new Presentation();
try {
    IChart 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 (pres != null) pres.dispose();
}

Отключение горизонтальной оси для линейных графиков

Этот код показывает, как скрыть горизонтальную ось для линейного графика:

Presentation pres = new Presentation();
try {
    IChart 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 (pres != null) pres.dispose();
}

Изменение оси категорий

С помощью свойства CategoryAxisType вы можете указать предпочитаемый тип оси категорий (date или text). Этот код на Java демонстрирует операцию:

Presentation presentation = new Presentation("ExistingChart.pptx");
try {
    IChart chart = (IChart)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 (presentation != null) presentation.dispose();
}

Установка формата даты для значения оси категорий

Aspose.Slides для Android на Java позволяет вам установить формат даты для значения оси категорий. Операция демонстрируется в этом коде на Java:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Area, 50, 50, 450, 300);

    IChartDataWorkbook 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))));

    IChartSeries 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 (pres != null) pres.dispose();
}
public static String convertToOADate(GregorianCalendar date) throws ParseException
{
    double oaDate;
    SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
    java.util.Date baseDate = myFormat.parse("30 12 1899");
    Long days = TimeUnit.DAYS.convert(date.getTimeInMillis() - baseDate.getTime(), TimeUnit.MILLISECONDS);
    oaDate = (double) days + ((double) date.get(Calendar.HOUR_OF_DAY) / 24) + ((double) date.get(Calendar.MINUTE) / (60 * 24)) + ((double) date.get(Calendar.SECOND) / (60 * 24 * 60));
    return String.valueOf(oaDate);
}

Установка угла поворота для заголовка оси графика

Aspose.Slides для Android на Java позволяет установить угол поворота для заголовка оси графика. Этот код на Java демонстрирует операцию:

Presentation pres = new Presentation();
try {
    IChart 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 (pres != null) pres.dispose();
}

Установка оси позиции в категории или значении оси

Aspose.Slides для Android на Java позволяет установить ось позиции в категории или оси значений. Этот код на Java показывает, как выполнить задачу:

Presentation pres = new Presentation();
try {
    IChart 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 (pres != null) pres.dispose();
}

Включение метки единицы отображения на оси значений графика

Aspose.Slides для Android на Java позволяет настроить график для отображения метки единицы на его оси значений графика. Этот код на Java демонстрирует операцию:

Presentation pres = new Presentation();
try {
    IChart 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 (pres != null) pres.dispose();
}