Testreszabott kördiagramok készítése bemutatókhoz Python via Java segítségével

Áttekintés

Ez a cikk ismerteti, hogyan dolgozhatunk kördiagramokkal az Aspose.Slides-ban. Bemutatja, hogyan állíthatók be a másodlagos ábrázolási beállítások a Pie of Pie és Bar of Pie diagramokhoz, valamint hogyan lehet automatikus szelet színezést engedélyezni egy standard kördiagramnál.

A példák a diagram testreszabási feladataira összpontosítanak, például diagram hozzáadására egy diára, sorozat- és címkebeállítások módosítására, az alapértelmezett diagramadatok egyéni kategóriákkal és értékekkel való helyettesítésére, valamint a módosított bemutató mentésére.

Másodlagos ábrázolási beállítások a Pie of Pie és Bar of Pie diagramokhoz

Az Aspose.Slides for Python via Java támogatja a másodlagos ábrázolási beállításokat a Pie of Pie és Bar of Pie diagramokhoz. Ezek a beállítások szabályozzák a másodlagos ábra méretét és azt, hogy az adatpontok hogyan oszlanak meg a két ábra között.

A következő példa létrehoz egy Pie of Pie diagramot egy új bemutatóban, és adatpont értékeket jelenít meg címkeként. A setSecondPieSize metódus a másodlagos ábra méretét a fő ábra 149%-ára állítja. A setPieSplitBy százalékos alapú felosztást választ, és a setPieSplitPosition a küszöböt 53%-ra állítja.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, PieSplitType, Presentation, SaveFormat

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)

    chart = slide.getShapes().addChart(ChartType.PieOfPie, 50, 50, 500, 400)
    series = chart.getChartData().getSeries().get_Item(0)

    # Értékek megjelenítése és a másodlagos ábra konfigurálása.
    series.getLabels().getDefaultDataLabelFormat().setShowValue(True)
    series_group = series.getParentSeriesGroup()
    series_group.setSecondPieSize(149)
    series_group.setPieSplitBy(PieSplitType.ByPercentage)
    series_group.setPieSplitPosition(53)

    presentation.save("pie_of_pie.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Kategóriák kiválasztása a másodlagos ábrához

Használjon egyedi felosztást, ha szeretné egyes kategóriákat csoportosítani a másodlagos ábrában anélkül, hogy figyelembe venné azok százalékos értékeit. Például egy értékesítési jelentés megjelenítheti az Online és Events kategóriákat együtt, hogy az olvasók összehasonlíthassák ezt a két csatornát, még akkor is, ha azok a teljes eladások 35%-át és 10%-át teszik ki.

Az setPieSplitBy metódust PieSplitType.Custom értékkel hívja meg, és a pontokat a getPieSplitCustomPoints segítségével válassza ki. A gyűjtemény add metódusa egy nulla-alapú indexet fogad a sorozatban; használja az addItem metódust egy adatpont objektum hozzáadásához. Ebben a példában az 1-es index az Online kategóriát választja, a 3-as index pedig az Events-et. A Partners kategória is ideiglenesen hozzáadásra kerül, majd a removeItem segítségével kizárásra.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, PieSplitType, Presentation, SaveFormat

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)

    chart = slide.getShapes().addChart(ChartType.PieOfPie, 50, 50, 600, 200)

    # Cserélje le az alapértelmezett adatokat a csatornánkénti eladásokra.
    workbook = chart.getChartData().getChartDataWorkbook()
    chart.getChartData().getSeries().clear()
    chart.getChartData().getCategories().clear()
    category_names = ["Retail", "Online", "Partners", "Events"]
    values = [40, 35, 15, 10]
    series_name_cell = workbook.getCell(0, 0, 1, "Sales")
    series = chart.getChartData().getSeries().add(series_name_cell, chart.getType())

    for i in range(len(category_names)):
        category_cell = workbook.getCell(0, i + 1, 0, category_names[i])
        chart.getChartData().getCategories().add(category_cell)

        value_cell = workbook.getCell(0, i + 1, 1, jpype.JInt(values[i]))
        series.getDataPoints().addDataPointForPieSeries(value_cell)

    series.getLabels().getDefaultDataLabelFormat().setShowValue(True)
    series_group = series.getParentSeriesGroup()
    series_group.setPieSplitBy(PieSplitType.Custom)
    series_group.setColorVaried(True)

    # Válassza ki az Online-t a nulla-alapú indexe alapján, és az Events-et az adatpont objektuma alapján.
    series_group.getPieSplitCustomPoints().add(1)
    series_group.getPieSplitCustomPoints().addItem(series.getDataPoints().get_Item(3))

    # Zárja ki a Partners-t a kiválasztásból anélkül, hogy törölné a forrásadatát.
    series_group.getPieSplitCustomPoints().add(2)
    series_group.getPieSplitCustomPoints().removeItem(series.getDataPoints().get_Item(2))

    presentation.save("pie_of_pie_custom.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Az Online (35) és Events (10) külön szeletekként jelennek meg a másodlagos ábrában. Az elsődleges ábrában egy kombinált szeletként, 45 értékkel jelennek meg, a Retail (40) és Partners (15) mellett. A Partners eltávolítása az egyedi kiválasztásból az elsődleges ábrában marad; nem távolítja el a kategóriát vagy az értékét a diagram forrásadataiból.

Az alábbi kép mutatja a mentett bemutatót PowerPointban:

Pie of Pie diagram Online és Events kategóriákkal a másodlagos ábrában és a kombinált 45 értékkel az elsődleges ábrában

Automatikus kördiagram szelet színek beállítása

Az Aspose.Slides for Python via Java automatikusan különböző színeket rendelhet a kördiagram szeleteihez. A következő példa létrehoz egy kördiagramot középre igazított címmel, és a három negyedéves kategóriát és értéküket helyettesíti az alapértelmezett adatokkal. A setShowValue metódus megjeleníti a 20, 50 és 30 értékeket címkeként, míg a setColorVaried engedélyezi, hogy minden szelet más színt kapjon.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, NullableBool, Presentation, SaveFormat

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)

    chart = slide.getShapes().addChart(ChartType.Pie, 100, 100, 400, 400)

    # Középre igazított diagramcím hozzáadása.
    chart.getChartTitle().addTextFrameForOverriding("Sample Title")
    chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True_)
    chart.getChartTitle().setHeight(20)
    chart.setTitle(True)

    # Cserélje le az alapértelmezett adatokat az első munkalap használatával.
    workbook = chart.getChartData().getChartDataWorkbook()
    worksheet_index = 0
    chart.getChartData().getSeries().clear()
    chart.getChartData().getCategories().clear()
    category_names = ["First Qtr", "2nd Qtr", "3rd Qtr"]
    values = [20, 50, 30]
    series_name_cell = workbook.getCell(worksheet_index, 0, 1, "Series 1")
    series = chart.getChartData().getSeries().add(series_name_cell, chart.getType())

    for i in range(len(category_names)):
        category_cell = workbook.getCell(worksheet_index, i + 1, 0, category_names[i])
        chart.getChartData().getCategories().add(category_cell)

        value_cell = workbook.getCell(worksheet_index, i + 1, 1, jpype.JInt(values[i]))
        series.getDataPoints().addDataPointForPieSeries(value_cell)

    # Értékek megjelenítése és különböző színek hozzárendelése a szeletekhez.
    series.getLabels().getDefaultDataLabelFormat().setShowValue(True)
    series.getParentSeriesGroup().setColorVaried(True)

    presentation.save("pie.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

FAQ

Támogatottak a Pie of Pie és Bar of Pie változatok?

Igen, a könyvtár supports másodlagos ábrát biztosít kördiagramokhoz, beleértve a Pie of Pie és Bar of Pie típusokat.

Exportálhatom csak a diagramot képként (például PNG)?

Igen, a export the chart itself as an image (például PNG) exportálható anélkül, hogy a teljes bemutatót exportálná.