Diagram számítások optimalizálása prezentációkhoz Pythonon keresztül Java-val
Áttekintés
Aspose.Slides API-kat biztosít diagramok számításaihoz és elrendezési adataihoz prezentációkban. Ez a cikk bemutatja, hogyan lehet lekérni a diagramelemek tényleges értékeit, beleértve a diagramelemek valós pozícióját és méretét, valamint a tengelyek tényleges értékeit. Továbbá elmagyarázza, hogy ezek az értékek a diagramelrendezés ellenőrzése után kerülnek feltöltésre.
Továbbá a cikk bemutatja, hogyan lehet lekérni a szülő diagramelemek tényleges pozícióját, és hogyan lehet elrejteni a diagram komponenseit, mint a cím, tengelyek, jelmagyarázat és rácsvonalak. Ezek a példák segítenek a diagramelrendezés információinak vizsgálatában és a diagramelemek láthatóságának programozott vezérlésében PowerPoint prezentációkban.
Diagramelemek tényleges értékeinek kiszámítása
Az Aspose.Slides for Python via Java egyszerű API-t biztosít ezen tulajdonságok lekéréséhez. Az Axis osztály metódusai információt adnak a diagramtengelyek tényleges értékeiről (getActualMaxValue,getActualMinValue,getActualMajorUnit,getActualMinorUnit,getActualMajorUnitScale,getActualMinorUnitScale). Először hívd meg a Chart.validateChartLayout metódust, hogy ezek a tulajdonságok tényleges értékekkel legyenek feltöltve.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.Area, 100, 100, 500, 350)
chart.validateChartLayout()
max_value = chart.getAxes().getVerticalAxis().getActualMaxValue()
min_value = chart.getAxes().getVerticalAxis().getActualMinValue()
major_unit = chart.getAxes().getHorizontalAxis().getActualMajorUnit()
minor_unit = chart.getAxes().getHorizontalAxis().getActualMinorUnit()
finally:
presentation.dispose()
Szülő diagramelemek tényleges pozíciójának kiszámítása
Az Aspose.Slides for Python via Java egyszerű API-t biztosít ezen tulajdonságok lekéréséhez. A ChartPlotArea osztály metódusai információt adnak a diagramrajzterület tényleges pozíciójáról és méretéről (getActualX,getActualY,getActualWidth,getActualHeight). Először hívd meg a Chart.validateChartLayout metódust, hogy ezek a tulajdonságok tényleges értékekkel legyenek feltöltve.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 500, 350)
chart.validateChartLayout()
x = chart.getPlotArea().getActualX()
y = chart.getPlotArea().getActualY()
width = chart.getPlotArea().getActualWidth()
height = chart.getPlotArea().getActualHeight()
finally:
presentation.dispose()
Diagramelemek elrejtése
Ez a szakasz elmagyarázza, hogyan lehet információt elrejteni egy diagramról. Az Aspose.Slides for Python via Java használatával elrejtheted a Címet, a vertikális tengelyt, a horizontális tengelyt és a rácsvonalakat. Az alábbi kódrészlet bemutatja, hogyan használhatók ezek a tulajdonságok.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, FillType, LegendDataLabelPosition, LineDashStyle, MarkerStyleType, Presentation, SaveFormat
from java.awt import Color
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().addChart(ChartType.LineWithMarkers, 140, 118, 320, 370)
# A diagram címének elrejtése.
chart.setTitle(False)
# Az értéktengely elrejtése.
chart.getAxes().getVerticalAxis().setVisible(False)
# A kategóriatengely elrejtése.
chart.getAxes().getHorizontalAxis().setVisible(False)
# A jelmagyarázat elrejtése.
chart.setLegend(False)
# A fő rácsvonalak elrejtése.
chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill)
# Csak az első sorozat megtartása. A sorozatok eltávolítása a végéről biztosítja, hogy a fennmaradó indexek érvényesek maradjanak.
series_collection = chart.getChartData().getSeries()
while series_collection.size() > 1:
series_collection.removeAt(series_collection.size() - 1)
series = series_collection.get_Item(0)
series.getMarker().setSymbol(MarkerStyleType.Circle)
series.getLabels().getDefaultDataLabelFormat().setShowValue(True)
series.getLabels().getDefaultDataLabelFormat().setPosition(LegendDataLabelPosition.Top)
series.getMarker().setSize(15)
# A sorozat vonalszínének beállítása.
series.getFormat().getLine().getFillFormat().setFillType(FillType.Solid)
series.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.MAGENTA)
series.getFormat().getLine().setDashStyle(LineDashStyle.Solid)
presentation.save("HideInformationFromChart.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
GYIK
Működnek-e külső Excel munkafüzetek adatforrásként, és hogyan befolyásolja ez az újraszámítást?
Igen. A diagram hivatkozhat egy külső munkafüzetre: amikor csatlakozol vagy frissíted a külső forrást, a képletek és értékek az adott munkafüzettől származnak, és a diagram a nyitás/szerkesztés során a változásokat tükrözi. Az API lehetővé teszi, hogy megadd a külső munkafüzet útvonalát, és kezeld a kapcsolt adatokat.
Számíthatok és megjeleníthetek trendvonalakat anélkül, hogy saját regressziót implementálnék?
Igen. A Trendvonalak (lineáris, exponenciális és egyebek) hozzáadódnak és frissülnek az Aspose.Slides által; paramétereik automatikusan újraszámításra kerülnek a sorozat adataiból, így nem szükséges saját számításokat implementálni.
Ha egy prezentáció több diagrammal rendelkezik, amelyek külső hivatkozásokat tartalmaznak, szabályozhatom-e, mely munkafüzetet használja az egyes diagram a számított értékekhez?
Igen. Minden diagram saját külső munkafüzetre mutathat, vagy létrehozhatsz/cserélhetsz egy külső munkafüzetet diagramonként függetlenül a többitől.