Optimalizace výpočtů grafů pro prezentace v Javě

Přehled

Aspose.Slides poskytuje rozhraní API pro práci s výpočty grafů a údaji o uspořádání v prezentacích. Tento článek ukazuje, jak získat skutečné hodnoty prvků grafu, včetně skutečné polohy a velikosti prvků, které implementují IActualLayout, a skutečné hodnoty os grafu. Také vysvětluje, že tyto hodnoty jsou vyplněny po ověření uspořádání grafu.

Vypočítat skutečné hodnoty prvků grafu

Aspose.Slides for Java poskytuje jednoduché API pro získání těchto vlastností. Vlastnosti rozhraní IAxis poskytují informace o skutečné pozici prvku osy grafu (IAxis.getActualMaxValue, IAxis.getActualMinValue, IAxis.getActualMajorUnit, IAxis.getActualMinorUnit, IAxis.getActualMajorUnitScale, IAxis.getActualMinorUnitScale). Je nutné předtím zavolat metodu IChart.validateChartLayout(), aby se vlastnosti naplnily skutečnými hodnotami.

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();
} finally {
    if (pres != null) pres.dispose();
}

Vypočítat skutečnou polohu nadřazených prvků grafu

Aspose.Slides for Java poskytuje jednoduché API pro získání těchto vlastností. Vlastnosti rozhraní IActualLayout poskytují informace o skutečné poloze nadřazeného prvku grafu (IActualLayout.getActualX, IActualLayout.getActualY, IActualLayout.getActualWidth, IActualLayout.getActualHeight). Je nutné předtím zavolat metodu IChart.validateChartLayout(), aby se vlastnosti naplnily skutečnými hodnotami.

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

    double x = chart.getPlotArea().getActualX();
    double y = chart.getPlotArea().getActualY();
    double w = chart.getPlotArea().getActualWidth();
    double h = chart.getPlotArea().getActualHeight();
} finally {
    if (pres != null) pres.dispose();
}

Skrýt prvky grafu

Tento článek vám pomůže pochopit, jak skrýt informace v grafu. Pomocí Aspose.Slides for 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.

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IChart chart = slide.getShapes().addChart(ChartType.LineWithMarkers, 140, 118, 320, 370);

    //Skrytí názvu grafu
    chart.setTitle(false);

    ///Skrytí osy hodnot
    chart.getAxes().getVerticalAxis().setVisible(false);

    //Viditelnost osy kategorií
    chart.getAxes().getHorizontalAxis().setVisible(false);

    //Skrytí legendy
    chart.setLegend(false);

    //Skrytí hlavních mřížkových čar
    chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill);

    for (int i = 0; i < chart.getChartData().getSeries().size(); i++)
    {
        chart.getChartData().getSeries().removeAt(i);
    }

    IChartSeries 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(Color.MAGENTA);
    series.getFormat().getLine().setDashStyle(LineDashStyle.Solid);

    pres.save("HideInformationFromChart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) 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ž připojíte nebo obnovíte externí zdroj, vzorce a hodnoty jsou převzaty z tohoto sešitu a graf odráží aktualizace během operací otevření/úpravy. API vám umožňuje specifikovat cestu k externímu sešitu a spravovat propojená data.

Mohu vypočítat a zobrazit čáry trendu bez implementace regrese sám?

Ano. Čáry trendu (lineární, exponenciální a další) jsou přidávány a aktualizovány pomocí Aspose.Slides; jejich parametry jsou automaticky přepočítány z dat série, takže nemusíte implementovat vlastní výpočty.

Pokud má prezentace více grafů s externími odkazy, mohu řídit, který sešit každý graf používá pro vypočítané hodnoty?

Ano. Každý graf může ukazovat na svůj vlastní externí sešit, nebo můžete pro každý graf nezávisle vytvořit/nahradit externí sešit.