Diagramok létrehozása vagy frissítése PowerPoint prezentációkban Python használatával
Áttekintés
Ez a cikk átfogó útmutatót nyújt arra vonatkozóan, hogyan hozhatók létre és testreszabhatók diagramok az Aspose.Slides használatával. Megtanulja, hogyan adhat hozzá programozottan diagramot egy diára, töltheti fel adatokal, és különféle formázási beállításokat alkalmazhat a specifikus tervezési igényeinek megfelelően. A cikk során részletes kódrészletek mutatják be az egyes lépéseket, a prezentáció és a diagramobjektum inicializálásától a sorok, tengelyek és jelmagyarázatok konfigurálásáig. Az útmutató követésével alaposan megértheti, hogyan integrálhat dinamikus diagramgenerálást alkalmazásaiba, egyszerűsítve az adatvezérelt prezentációk készítését.
Diagram létrehozása
A diagramok segítenek az embereknek gyorsan megjeleníteni az adatokat és olyan felismeréseket tenni, amelyek egy táblázatból vagy táblázatkezetből nem azonnal nyilvánvalóak.
Miért érdemes diagramokat készíteni?
Diagramok használatával:
- nagy mennyiségű adatot összegezhet, tömöríthet vagy összefoglalhat egyetlen dián egy prezentációban
- mintákat és trendeket tárhat fel az adatokban
- meghatározhatja az adatok irányát és lendületét időben vagy egy adott mérőegységhez viszonyítva
- felismerheti a kiugró értékeket, anomáliákat, eltéréseket, hibákat, értelmetlen adatokat stb.
- összetett adatokat kommunikálhat vagy bemutathat
A PowerPointban a Insert (Beszúrás) funkcióval hozhat létre diagramokat, amely számos sablont biztosít a különböző diagramtípusokhoz. Az Aspose.Slides segítségével mind szabályos diagramokat (népszerű diagramtípusokon alapuló) mind egyedi diagramokat hozhat létre.
Note
Diagramok létrehozásához használja a ChartType osztályt. Ennek az osztálynak a mezői a különböző diagramtípusoknak felelnek meg.Csoportosított oszlopdiagramok létrehozása
Ez a szakasz bemutatja, hogyan hozhatók létre csoportosított oszlopdiagramok az Aspose.Slides segítségével. Megtanulja, hogyan inicializáljon egy prezentációt, adjon hozzá egy diagramot, és testreszabja az elemeit, például a címet, adatokat, sorokat, kategóriákat és a stílust. Kövesse az alábbi lépéseket, hogy lássa, hogyan generálódik egy szabványos csoportosított oszlopdiagram:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot némi adattal, és adja meg a
ChartType.ClusteredColumntípust. - Adjon címet a diagramnak.
- Hozzon hozzáférést a diagram adatlapjához.
- Törölje az összes alapértelmezett sort és kategóriát.
- Adjon hozzá új sorokat és kategóriákat.
- Adjon hozzá új diagramadatokat a diagram soraihoz.
- Alkalmazzon kitöltőszínt a diagram soraira.
- Adjon címkéket a diagram soraihoz.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a C# kód bemutatja, hogyan hozható létre egy csoportosított oszlopdiagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, FillType, NullableBool, Presentation, SaveFormat
Color = jpype.JClass("java.awt.Color")
# PPTX fájlt reprezentáló prezentációs osztály példányosítása.
presentation = Presentation()
try:
# Eléri az első diát
slide = presentation.getSlides().get_Item(0)
# Diagram hozzáadása alapértelmezett adatokkal
chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 0, 0, 500, 500)
# Beállítja a diagram címét
chart.getChartTitle().addTextFrameForOverriding("Sample Title")
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True_)
chart.getChartTitle().setHeight(20)
chart.setTitle(True)
# Beállítja a diagram adatlap indexét
default_worksheet_index = 0
# Lekéri a diagram adatlapot
workbook = chart.getChartData().getChartDataWorkbook()
# Törli az alapértelmezett generált sorokat és kategóriákat
chart.getChartData().getSeries().clear()
chart.getChartData().getCategories().clear()
# Új sorok hozzáadása
cell = workbook.getCell(default_worksheet_index, 0, 1, "Series 1")
chart.getChartData().getSeries().add(cell,chart.getType())
cell = workbook.getCell(default_worksheet_index, 0, 2, "Series 2")
chart.getChartData().getSeries().add(cell,chart.getType())
# Új kategóriák hozzáadása
cell = workbook.getCell(default_worksheet_index, 1, 0, "Category 1")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(default_worksheet_index, 2, 0, "Category 2")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(default_worksheet_index, 3, 0, "Category 3")
chart.getChartData().getCategories().add(cell)
# Az első diagram sorának lekérése
series = chart.getChartData().getSeries().get_Item(0)
# Most feltölti a sor adatait
cell = workbook.getCell(default_worksheet_index, 1, 1, 20)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, 2, 1, 50)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, 3, 1, 30)
series.getDataPoints().addDataPointForBarSeries(cell)
# Beállítja a sor kitöltőszínét
series.getFormat().getFill().setFillType(FillType.Solid)
series.getFormat().getFill().getSolidFillColor().setColor(Color.RED)
# A második diagram sorának lekérése
series = chart.getChartData().getSeries().get_Item(1)
# Kitölti a sor adatait
cell = workbook.getCell(default_worksheet_index, 1, 2, 30)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, 2, 2, 10)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, 3, 2, 60)
series.getDataPoints().addDataPointForBarSeries(cell)
# Beállítja a sor kitöltőszínét
series.getFormat().getFill().setFillType(FillType.Solid)
series.getFormat().getFill().getSolidFillColor().setColor(Color.GREEN)
#Új egyéni címkék létrehozása minden kategóriához az új sorhoz
# Beállítja, hogy az első címke a kategória nevét mutassa
label = series.getDataPoints().get_Item(0).getLabel()
label.getDataLabelFormat().setShowCategoryName(True)
label = series.getDataPoints().get_Item(1).getLabel()
label.getDataLabelFormat().setShowSeriesName(True)
# Megjeleníti az értéket a harmadik címkén
label = series.getDataPoints().get_Item(2).getLabel()
label.getDataLabelFormat().setShowValue(True)
label.getDataLabelFormat().setShowSeriesName(True)
label.getDataLabelFormat().setSeparator("/")
# Saves the presentation with chart
presentation.save("output.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Szórádiagramok létrehozása
A szórádiagramok (más néven scatter plot vagy x‑y grafikon) gyakran használatosak minták keresésére vagy két változó közötti korrelációk bemutatására.
Használjon szórádiagramot, ha:
- párosított numerikus adatai vannak
- két változó jól párosítható egymással
- meg szeretné határozni, hogy a két változó összefügg-e
- van egy független változó, amelynek több értéke van egy függő változóhoz képest
- Kövesse a Create Clustered Column Charts lépéseit.
- A harmadik lépésben adjon hozzá egy diagramot némi adattal, és adja meg a diagramtípusát az alábbiak közül:
- ChartType.ScatterWithMarkers - Szórádiagramot ábrázol markerrel.
- ChartType.ScatterWithSmoothLinesAndMarkers - Szórádiagramot ábrázol sima vonalakkal és markerrel.
- ChartType.ScatterWithSmoothLines - Szórádiagramot ábrázol sima vonalakkal marker nélkül.
- ChartType.ScatterWithStraightLinesAndMarkers - Szórádiagramot ábrázol egyenes vonalakkal és markerrel.
- ChartType.ScatterWithStraightLines - Szórádiagramot ábrázol egyenes vonalakkal marker nélkül.
Ez a Python kód megmutatja, hogyan hozható létre szórádiagram különböző markerekkel minden sorhoz:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, MarkerStyleType, Presentation, SaveFormat
# PPTX fájlt reprezentáló prezentációs osztály példányosítása.
presentation = Presentation()
try:
# Eléri az első diát
slide = presentation.getSlides().get_Item(0)
# Létrehozza az alapértelmezett diagramot
chart = slide.getShapes().addChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400)
# Lekéri az alapértelmezett diagram adatlap indexét
default_worksheet_index = 0
# Lekéri a diagram adatlapot
workbook = chart.getChartData().getChartDataWorkbook()
# Törli a demo sorokat
chart.getChartData().getSeries().clear()
# Új sorok hozzáadása
cell = workbook.getCell(default_worksheet_index, 1, 1, "Series 1")
chart.getChartData().getSeries().add(cell, chart.getType())
cell = workbook.getCell(default_worksheet_index, 1, 3, "Series 2")
chart.getChartData().getSeries().add(cell, chart.getType())
# Az első diagram sorának lekérése
series = chart.getChartData().getSeries().get_Item(0)
# Új pont (1:3) hozzáadása a sorhoz
x_cell = workbook.getCell(default_worksheet_index, 2, 1, 1)
y_cell = workbook.getCell(default_worksheet_index, 2, 2, 3)
series.getDataPoints().addDataPointForScatterSeries(x_cell, y_cell)
# Új pont (2:10) hozzáadása
x_cell = workbook.getCell(default_worksheet_index, 3, 1, 2)
y_cell = workbook.getCell(default_worksheet_index, 3, 2, 10)
series.getDataPoints().addDataPointForScatterSeries(x_cell, y_cell)
# A sor típusának módosítása
series.setType(ChartType.ScatterWithStraightLinesAndMarkers)
# A diagram sor markerjének módosítása
series.getMarker().setSize(10)
series.getMarker().setSymbol(MarkerStyleType.Star)
# A második diagram sorának lekérése
series = chart.getChartData().getSeries().get_Item(1)
# Új pont (5:2) hozzáadása ott
x_cell = workbook.getCell(default_worksheet_index, 2, 3, 5)
y_cell = workbook.getCell(default_worksheet_index, 2, 4, 2)
series.getDataPoints().addDataPointForScatterSeries(x_cell, y_cell)
# Új pont (3:1) hozzáadása
x_cell = workbook.getCell(default_worksheet_index, 3, 3, 3)
y_cell = workbook.getCell(default_worksheet_index, 3, 4, 1)
series.getDataPoints().addDataPointForScatterSeries(x_cell, y_cell)
# Új pont (2:2) hozzáadása
x_cell = workbook.getCell(default_worksheet_index, 4, 3, 2)
y_cell = workbook.getCell(default_worksheet_index, 4, 4, 2)
series.getDataPoints().addDataPointForScatterSeries(x_cell, y_cell)
# Új pont (5:1) hozzáadása
x_cell = workbook.getCell(default_worksheet_index, 5, 3, 5)
y_cell = workbook.getCell(default_worksheet_index, 5, 4, 1)
series.getDataPoints().addDataPointForScatterSeries(x_cell, y_cell)
# A diagram sor markerjének módosítása
series.getMarker().setSize(10)
series.getMarker().setSymbol(MarkerStyleType.Circle)
presentation.save("AsposeChart_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Tortadiagramok létrehozása
A tortadiagramok leginkább a rész‑egész viszony bemutatására alkalmasak, különösen, ha a adatok kategóriákat és numerikus értékeket tartalmaznak. Ha azonban az adatok sok részt vagy címkét tartalmaznak, érdemes inkább oszlopdiagramot használni.
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Pie típust.
- Hozzon hozzáférést a diagram adatkönyvtárához: ChartDataWorkbook.
- Törölje az alapértelmezett sorokat és kategóriákat.
- Adjon hozzá új sorokat és kategóriákat.
- Adjon hozzá új diagramadatokat a diagram soraihoz.
- Adjon hozzá új pontokat a diagramhoz, és alkalmazzon egyedi színeket a torta szeletekhez.
- Állítson be címkéket a sorokhoz.
- Engedélyezze a vezetővonalakat a sorcímkékhez.
- Állítsa be a forgatás szögét a torta szeletekhez.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy tortadiagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, FillType, LineDashStyle, LineStyle, NullableBool, Presentation, SaveFormat
Color = jpype.JClass("java.awt.Color")
# PPTX fájlt reprezentáló prezentációs osztály példányosítása.
presentation = Presentation()
try:
# Eléri az első diát
slide = presentation.getSlides().get_Item(0)
# Diagram hozzáadása alapértelmezett adatokkal
chart = slide.getShapes().addChart(ChartType.Pie, 100, 100, 400, 400)
# Beállítja a diagram címét
chart.getChartTitle().addTextFrameForOverriding("Sample Title")
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True_)
chart.getChartTitle().setHeight(20)
chart.setTitle(True)
# Beállítja a diagram adatlap indexét
default_worksheet_index = 0
# Lekéri a diagram adatlapot
workbook = chart.getChartData().getChartDataWorkbook()
# Törli az alapértelmezett generált sorokat és kategóriákat
chart.getChartData().getSeries().clear()
chart.getChartData().getCategories().clear()
# Új kategóriák hozzáadása
cell = workbook.getCell(0, 1, 0, "First Qtr")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, 2, 0, "2nd Qtr")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, 3, 0, "3rd Qtr")
chart.getChartData().getCategories().add(cell)
# Új sorok hozzáadása
cell = workbook.getCell(0, 0, 1, "Series 1")
series = chart.getChartData().getSeries().add(cell, chart.getType())
#Sor adatok feltöltése
cell = workbook.getCell(default_worksheet_index, 1, 1, 20)
series.getDataPoints().addDataPointForPieSeries(cell)
cell = workbook.getCell(default_worksheet_index, 2, 1, 50)
series.getDataPoints().addDataPointForPieSeries(cell)
cell = workbook.getCell(default_worksheet_index, 3, 1, 30)
series.getDataPoints().addDataPointForPieSeries(cell)
# Új pontok hozzáadása és a szektor színének beállítása
chart.getChartData().getSeriesGroups().get_Item(0).setColorVaried(True)
point = series.getDataPoints().get_Item(0)
point.getFormat().getFill().setFillType(FillType.Solid)
point.getFormat().getFill().getSolidFillColor().setColor(Color.CYAN)
# Beállítja a szektor szegélyét
point.getFormat().getLine().getFillFormat().setFillType(FillType.Solid)
point.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.GRAY)
point.getFormat().getLine().setWidth(3.0)
point.getFormat().getLine().setStyle(LineStyle.ThinThick)
point.getFormat().getLine().setDashStyle(LineDashStyle.DashDot)
second_point = series.getDataPoints().get_Item(1)
second_point.getFormat().getFill().setFillType(FillType.Solid)
second_point.getFormat().getFill().getSolidFillColor().setColor(Color.ORANGE)
# Beállítja a szektor szegélyét
second_point.getFormat().getLine().getFillFormat().setFillType(FillType.Solid)
second_point.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.BLUE)
second_point.getFormat().getLine().setWidth(3.0)
second_point.getFormat().getLine().setStyle(LineStyle.Single)
second_point.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDot)
third_point = series.getDataPoints().get_Item(2)
third_point.getFormat().getFill().setFillType(FillType.Solid)
third_point.getFormat().getFill().getSolidFillColor().setColor(Color.YELLOW)
# Beállítja a szektor szegélyét
third_point.getFormat().getLine().getFillFormat().setFillType(FillType.Solid)
third_point.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.RED)
third_point.getFormat().getLine().setWidth(2.0)
third_point.getFormat().getLine().setStyle(LineStyle.ThinThin)
third_point.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDotDot)
# Egyéni címkék létrehozása minden kategóriához az új sorhoz
first_label = series.getDataPoints().get_Item(0).getLabel()
first_label.getDataLabelFormat().setShowValue(True)
second_label = series.getDataPoints().get_Item(1).getLabel()
second_label.getDataLabelFormat().setShowValue(True)
second_label.getDataLabelFormat().setShowLegendKey(True)
second_label.getDataLabelFormat().setShowPercentage(True)
third_label = series.getDataPoints().get_Item(2).getLabel()
third_label.getDataLabelFormat().setShowSeriesName(True)
third_label.getDataLabelFormat().setShowPercentage(True)
# Megjeleníti a vezetővonalakat a diagramon
series.getLabels().getDefaultDataLabelFormat().setShowLeaderLines(True)
# Beállítja a forgatási szöget a tortadiagram szeletekhez
chart.getChartData().getSeriesGroups().get_Item(0).setFirstSliceAngle(180)
# A prezentáció mentése diagrammal
presentation.save("PieChart_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Vonaldiagramok létrehozása
A vonaldiagramok (más néven vonalgrafikonok) leginkább olyan helyzetekben használatosak, ahol az érték változását az idő függvényében szeretné bemutatni. Vonaldiagram segítségével egyszerre nagy mennyiségű adatot hasonlíthat össze, nyomon követheti az időbeli változásokat és trendeket, kiemelhet anomáliákat az adatcsoportokban, és így tovább.
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Line típust.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy vonaldiagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
line_chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350)
presentation.save("line_chart.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Alapértelmezés szerint egy vonaldiagram pontjait egyenes, folytonos vonalak kötik össze. Ha szeretné, hogy a pontok kötővonala szaggatott legyen, adja meg a kívánt szaggatottsági típust az alábbiak szerint:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, LineDashStyle, Presentation, SaveFormat
presentation = Presentation()
try:
line_chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350)
for series in line_chart.getChartData().getSeries():
series.getFormat().getLine().setDashStyle(LineDashStyle.Dash)
presentation.save("line_chart.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Fa térkép diagramok létrehozása
A fa térkép diagramok leginkább értékesítési adatok esetén hasznosak, ha a kategóriák relatív méretét szeretné megjeleníteni, és gyorsan felhívni a figyelmet az egyes kategóriák nagy hozzájáruló elemeire.
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Treemap típust.
- Hozzon hozzáférést a diagram adatkönyvtárához: ChartDataWorkbook.
- Törölje az alapértelmezett sorokat és kategóriákat.
- Adjon hozzá új sorokat és kategóriákat.
- Adjon hozzá új diagramadatokat a diagram soraihoz.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy fa térkép diagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, ParentLabelLayoutType, Presentation, SaveFormat
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.Treemap, 50, 50, 500, 400)
chart.getChartData().getCategories().clear()
chart.getChartData().getSeries().clear()
workbook = chart.getChartData().getChartDataWorkbook()
workbook.clear(0)
#1. ág
cell = workbook.getCell(0, "C1", "Leaf1")
leaf = chart.getChartData().getCategories().add(cell)
leaf.getGroupingLevels().setGroupingItem(1, "Stem1")
leaf.getGroupingLevels().setGroupingItem(2, "Branch1")
cell = workbook.getCell(0, "C2", "Leaf2")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "C3", "Leaf3")
leaf = chart.getChartData().getCategories().add(cell)
leaf.getGroupingLevels().setGroupingItem(1, "Stem2")
cell = workbook.getCell(0, "C4", "Leaf4")
chart.getChartData().getCategories().add(cell)
#2. ág
cell = workbook.getCell(0, "C5", "Leaf5")
leaf = chart.getChartData().getCategories().add(cell)
leaf.getGroupingLevels().setGroupingItem(1, "Stem3")
leaf.getGroupingLevels().setGroupingItem(2, "Branch2")
cell = workbook.getCell(0, "C6", "Leaf6")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "C7", "Leaf7")
leaf = chart.getChartData().getCategories().add(cell)
leaf.getGroupingLevels().setGroupingItem(1, "Stem4")
cell = workbook.getCell(0, "C8", "Leaf8")
chart.getChartData().getCategories().add(cell)
series = chart.getChartData().getSeries().add(ChartType.Treemap)
series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(True)
cell = workbook.getCell(0, "D1", 4)
series.getDataPoints().addDataPointForTreemapSeries(cell)
cell = workbook.getCell(0, "D2", 5)
series.getDataPoints().addDataPointForTreemapSeries(cell)
cell = workbook.getCell(0, "D3", 3)
series.getDataPoints().addDataPointForTreemapSeries(cell)
cell = workbook.getCell(0, "D4", 6)
series.getDataPoints().addDataPointForTreemapSeries(cell)
cell = workbook.getCell(0, "D5", 9)
series.getDataPoints().addDataPointForTreemapSeries(cell)
cell = workbook.getCell(0, "D6", 9)
series.getDataPoints().addDataPointForTreemapSeries(cell)
cell = workbook.getCell(0, "D7", 4)
series.getDataPoints().addDataPointForTreemapSeries(cell)
cell = workbook.getCell(0, "D8", 3)
series.getDataPoints().addDataPointForTreemapSeries(cell)
series.setParentLabelLayout(ParentLabelLayoutType.Overlapping)
presentation.save("Treemap.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Részvénydiagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.OpenHighLowClose típust.
- Hozzon hozzáférést a diagram adatkönyvtárához: ChartDataWorkbook.
- Törölje az alapértelmezett sorokat és kategóriákat.
- Adjon hozzá új sorokat és kategóriákat.
- Adjon hozzá új diagramadatokat a diagram soraihoz.
- Adja meg a magas‑alacsony vonalak formátumát.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy részvénydiagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, FillType, Presentation, SaveFormat
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, False)
chart.getChartData().getSeries().clear()
chart.getChartData().getCategories().clear()
workbook = chart.getChartData().getChartDataWorkbook()
cell = workbook.getCell(0, 1, 0, "A")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, 2, 0, "B")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, 3, 0, "C")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, 0, 1, "Open")
chart.getChartData().getSeries().add(cell, chart.getType())
cell = workbook.getCell(0, 0, 2, "High")
chart.getChartData().getSeries().add(cell, chart.getType())
cell = workbook.getCell(0, 0, 3, "Low")
chart.getChartData().getSeries().add(cell, chart.getType())
cell = workbook.getCell(0, 0, 4, "Close")
chart.getChartData().getSeries().add(cell, chart.getType())
series = chart.getChartData().getSeries().get_Item(0)
cell = workbook.getCell(0, 1, 1, 72)
series.getDataPoints().addDataPointForStockSeries(cell)
cell = workbook.getCell(0, 2, 1, 25)
series.getDataPoints().addDataPointForStockSeries(cell)
cell = workbook.getCell(0, 3, 1, 38)
series.getDataPoints().addDataPointForStockSeries(cell)
series = chart.getChartData().getSeries().get_Item(1)
cell = workbook.getCell(0, 1, 2, 172)
series.getDataPoints().addDataPointForStockSeries(cell)
cell = workbook.getCell(0, 2, 2, 57)
series.getDataPoints().addDataPointForStockSeries(cell)
cell = workbook.getCell(0, 3, 2, 57)
series.getDataPoints().addDataPointForStockSeries(cell)
series = chart.getChartData().getSeries().get_Item(2)
cell = workbook.getCell(0, 1, 3, 12)
series.getDataPoints().addDataPointForStockSeries(cell)
cell = workbook.getCell(0, 2, 3, 12)
series.getDataPoints().addDataPointForStockSeries(cell)
cell = workbook.getCell(0, 3, 3, 13)
series.getDataPoints().addDataPointForStockSeries(cell)
series = chart.getChartData().getSeries().get_Item(3)
cell = workbook.getCell(0, 1, 4, 25)
series.getDataPoints().addDataPointForStockSeries(cell)
cell = workbook.getCell(0, 2, 4, 38)
series.getDataPoints().addDataPointForStockSeries(cell)
cell = workbook.getCell(0, 3, 4, 50)
series.getDataPoints().addDataPointForStockSeries(cell)
chart.getChartData().getSeriesGroups().get_Item(0).getUpDownBars().setUpDownBars(True)
chart.getChartData().getSeriesGroups().get_Item(0).getHiLowLinesFormat().getLine().getFillFormat().setFillType(FillType.Solid)
for series in chart.getChartData().getSeries():
series.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill)
presentation.save("output.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Doboz‑ és szárnydiagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.BoxAndWhisker típust.
- Hozzon hozzáférést a diagram adatkönyvtárához: ChartDataWorkbook.
- Törölje az alapértelmezett sorokat és kategóriákat.
- Adjon hozzá új sorokat és kategóriákat.
- Adjon hozzá új diagramadatokat a diagram soraihoz.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy doboz‑ és szárnydiagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, QuartileMethodType, SaveFormat
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.BoxAndWhisker, 50, 50, 500, 400)
chart.getChartData().getCategories().clear()
chart.getChartData().getSeries().clear()
workbook = chart.getChartData().getChartDataWorkbook()
workbook.clear(0)
cell = workbook.getCell(0, "A1", "Category 1")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A2", "Category 1")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A3", "Category 1")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A4", "Category 1")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A5", "Category 1")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A6", "Category 1")
chart.getChartData().getCategories().add(cell)
series = chart.getChartData().getSeries().add(ChartType.BoxAndWhisker)
series.setQuartileMethod(QuartileMethodType.Exclusive)
series.setShowMeanLine(True)
series.setShowMeanMarkers(True)
series.setShowInnerPoints(True)
series.setShowOutlierPoints(True)
cell = workbook.getCell(0, "B1", 15)
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(cell)
cell = workbook.getCell(0, "B2", 41)
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(cell)
cell = workbook.getCell(0, "B3", 16)
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(cell)
cell = workbook.getCell(0, "B4", 10)
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(cell)
cell = workbook.getCell(0, "B5", 23)
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(cell)
cell = workbook.getCell(0, "B6", 16)
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(cell)
presentation.save("BoxAndWhisker.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Csőcsökkenő diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Funnel típust.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy csőcsökkenő diagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.Funnel, 50, 50, 500, 400)
chart.getChartData().getCategories().clear()
chart.getChartData().getSeries().clear()
workbook = chart.getChartData().getChartDataWorkbook()
workbook.clear(0)
cell = workbook.getCell(0, "A1", "Category 1")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A2", "Category 2")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A3", "Category 3")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A4", "Category 4")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A5", "Category 5")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "A6", "Category 6")
chart.getChartData().getCategories().add(cell)
series = chart.getChartData().getSeries().add(ChartType.Funnel)
cell = workbook.getCell(0, "B1", 50)
series.getDataPoints().addDataPointForFunnelSeries(cell)
cell = workbook.getCell(0, "B2", 100)
series.getDataPoints().addDataPointForFunnelSeries(cell)
cell = workbook.getCell(0, "B3", 200)
series.getDataPoints().addDataPointForFunnelSeries(cell)
cell = workbook.getCell(0, "B4", 300)
series.getDataPoints().addDataPointForFunnelSeries(cell)
cell = workbook.getCell(0, "B5", 400)
series.getDataPoints().addDataPointForFunnelSeries(cell)
cell = workbook.getCell(0, "B6", 500)
series.getDataPoints().addDataPointForFunnelSeries(cell)
presentation.save("Funnel.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Napfénydiagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Sunburst típust.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy napfénydiagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 50, 50, 500, 400)
chart.getChartData().getCategories().clear()
chart.getChartData().getSeries().clear()
workbook = chart.getChartData().getChartDataWorkbook()
workbook.clear(0)
#ág 1
cell = workbook.getCell(0, "C1", "Leaf1")
leaf = chart.getChartData().getCategories().add(cell)
leaf.getGroupingLevels().setGroupingItem(1, "Stem1")
leaf.getGroupingLevels().setGroupingItem(2, "Branch1")
cell = workbook.getCell(0, "C2", "Leaf2")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "C3", "Leaf3")
leaf = chart.getChartData().getCategories().add(cell)
leaf.getGroupingLevels().setGroupingItem(1, "Stem2")
cell = workbook.getCell(0, "C4", "Leaf4")
chart.getChartData().getCategories().add(cell)
#ág 2
cell = workbook.getCell(0, "C5", "Leaf5")
leaf = chart.getChartData().getCategories().add(cell)
leaf.getGroupingLevels().setGroupingItem(1, "Stem3")
leaf.getGroupingLevels().setGroupingItem(2, "Branch2")
cell = workbook.getCell(0, "C6", "Leaf6")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "C7", "Leaf7")
leaf = chart.getChartData().getCategories().add(cell)
leaf.getGroupingLevels().setGroupingItem(1, "Stem4")
cell = workbook.getCell(0, "C8", "Leaf8")
chart.getChartData().getCategories().add(cell)
series = chart.getChartData().getSeries().add(ChartType.Sunburst)
series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(True)
cell = workbook.getCell(0, "D1", 4)
series.getDataPoints().addDataPointForSunburstSeries(cell)
cell = workbook.getCell(0, "D2", 5)
series.getDataPoints().addDataPointForSunburstSeries(cell)
cell = workbook.getCell(0, "D3", 3)
series.getDataPoints().addDataPointForSunburstSeries(cell)
cell = workbook.getCell(0, "D4", 6)
series.getDataPoints().addDataPointForSunburstSeries(cell)
cell = workbook.getCell(0, "D5", 9)
series.getDataPoints().addDataPointForSunburstSeries(cell)
cell = workbook.getCell(0, "D6", 9)
series.getDataPoints().addDataPointForSunburstSeries(cell)
cell = workbook.getCell(0, "D7", 4)
series.getDataPoints().addDataPointForSunburstSeries(cell)
cell = workbook.getCell(0, "D8", 3)
series.getDataPoints().addDataPointForSunburstSeries(cell)
presentation.save("Sunburst.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Hisztogram diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Histogram típust.
- Hozzon hozzáférést a diagram adatkönyvtárához: ChartDataWorkbook.
- Törölje az alapértelmezett sorokat és kategóriákat.
- Adjon hozzá új sorokat és kategóriákat.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy hisztogram diagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import AxisAggregationType, ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.Histogram, 50, 50, 500, 400)
chart.getChartData().getCategories().clear()
chart.getChartData().getSeries().clear()
workbook = chart.getChartData().getChartDataWorkbook()
workbook.clear(0)
series = chart.getChartData().getSeries().add(ChartType.Histogram)
cell = workbook.getCell(0, "A1", 15)
series.getDataPoints().addDataPointForHistogramSeries(cell)
cell = workbook.getCell(0, "A2", -41)
series.getDataPoints().addDataPointForHistogramSeries(cell)
cell = workbook.getCell(0, "A3", 16)
series.getDataPoints().addDataPointForHistogramSeries(cell)
cell = workbook.getCell(0, "A4", 10)
series.getDataPoints().addDataPointForHistogramSeries(cell)
cell = workbook.getCell(0, "A5", -23)
series.getDataPoints().addDataPointForHistogramSeries(cell)
cell = workbook.getCell(0, "A6", 16)
series.getDataPoints().addDataPointForHistogramSeries(cell)
chart.getAxes().getHorizontalAxis().setAggregationType(AxisAggregationType.Automatic)
presentation.save("Histogram.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Radar diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot némi adattal, és adja meg a kívánt diagramtípust (ChartType.Radar ebben az esetben).
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy radar diagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.Radar, 20, 20, 400, 300)
presentation.save("Radar-chart.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Többkategóriás diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen referenciát egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.ClusteredColumn típust.
- Hozzon hozzáférést a diagram adatkönyvtárához: ChartDataWorkbook.
- Törölje az alapértelmezett sorokat és kategóriákat.
- Adjon hozzá új sorokat és kategóriákat.
- Adjon hozzá új diagramadatokat a diagram soraihoz.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan hozható létre egy többkategóriás diagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 600, 450)
chart.getChartData().getSeries().clear()
chart.getChartData().getCategories().clear()
workbook = chart.getChartData().getChartDataWorkbook()
workbook.clear(0)
default_worksheet_index = 0
cell = workbook.getCell(0, "c2", "A")
category = chart.getChartData().getCategories().add(cell)
category.getGroupingLevels().setGroupingItem(1, "Group1")
cell = workbook.getCell(0, "c3", "B")
category = chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "c4", "C")
category = chart.getChartData().getCategories().add(cell)
category.getGroupingLevels().setGroupingItem(1, "Group2")
cell = workbook.getCell(0, "c5", "D")
category = chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "c6", "E")
category = chart.getChartData().getCategories().add(cell)
category.getGroupingLevels().setGroupingItem(1, "Group3")
cell = workbook.getCell(0, "c7", "F")
category = chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, "c8", "G")
category = chart.getChartData().getCategories().add(cell)
category.getGroupingLevels().setGroupingItem(1, "Group4")
cell = workbook.getCell(0, "c9", "H")
category = chart.getChartData().getCategories().add(cell)
# Sorok hozzáadása
cell = workbook.getCell(0, "D1", "Series 1")
series = chart.getChartData().getSeries().add(cell, ChartType.ClusteredColumn)
cell = workbook.getCell(default_worksheet_index, "D2", 10)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, "D3", 20)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, "D4", 30)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, "D5", 40)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, "D6", 50)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, "D7", 60)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, "D8", 70)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, "D9", 80)
series.getDataPoints().addDataPointForBarSeries(cell)
# Prezentáció mentése diagrammal
presentation.save("AsposeChart_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Térképi diagramok létrehozása
A térképi diagramok földrajzi adatokat vizualizálnak és segítenek összehasonlítani az értékeket különböző régiók között.
Ez a Python kód mutatja be, hogyan hozható létre egy térképi diagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.Map, 50, 50, 500, 400)
presentation.save("mapChart.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Kombinált diagramok létrehozása
A kombinált diagram (vagy combo diagram) két vagy több diagramtípust egyesít egyetlen grafikonban. Ez a diagram lehetővé teszi, hogy kiemelje, összehasonlítsa vagy vizsgálja a különböző adatkészletek közti eltéréseket, segítve ezzel a kapcsolatok felismerését.

Az alábbi Python kód bemutatja, hogyan hozható létre a fent látható kombinált diagram egy PowerPoint prezentációban:
import jpace
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import AxisPositionType, ChartType, CrossesType, FillType, LegendPositionType, NullableBool, Presentation, SaveFormat
Color = jpype.JClass("java.awt.Color")
def create_combo_chart():
presentation = Presentation()
slide = presentation.getSlides().get_Item(0)
try:
chart = create_chart_with_first_series(slide)
add_second_series_to_chart(chart)
add_third_series_to_chart(chart)
set_primary_axes_format(chart)
set_secondary_axes_format(chart)
presentation.save("combo-chart.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
def create_chart_with_first_series(slide):
chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
# A diagram címének beállítása.
chart.setTitle(True)
chart.getChartTitle().addTextFrameForOverriding("Chart Title")
chart.getChartTitle().setOverlay(False)
title_paragraph = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0)
title_format = title_paragraph.getParagraphFormat().getDefaultPortionFormat()
title_format.setFontBold(NullableBool.False_)
title_format.setFontHeight(18.0)
# A diagram jelmagyarázatának beállítása.
chart.getLegend().setPosition(LegendPositionType.Bottom)
chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(12.0)
# Az alapértelmezett generált sorok és kategóriák törlése.
chart.getChartData().getSeries().clear()
chart.getChartData().getCategories().clear()
worksheet_index = 0
workbook = chart.getChartData().getChartDataWorkbook()
# Új kategóriák hozzáadása.
cell = workbook.getCell(worksheet_index, 1, 0, "Category 1")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(worksheet_index, 2, 0, "Category 2")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(worksheet_index, 3, 0, "Category 3")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(worksheet_index, 4, 0, "Category 4")
chart.getChartData().getCategories().add(cell)
# Az első sor hozzáadása.
series_name_cell = workbook.getCell(worksheet_index, 0, 1, "Series 1")
series = chart.getChartData().getSeries().add(series_name_cell, chart.getType())
series.getParentSeriesGroup().setOverlap(jpype.JByte(-25))
series.getParentSeriesGroup().setGapWidth(220)
cell = workbook.getCell(worksheet_index, 1, 1, 4.3)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(worksheet_index, 2, 1, 2.5)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(worksheet_index, 3, 1, 3.5)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(worksheet_index, 4, 1, 4.5)
series.getDataPoints().addDataPointForBarSeries(cell)
return chart
def add_second_series_to_chart(chart):
workbook = chart.getChartData().getChartDataWorkbook()
worksheet_index = 0
series_name_cell = workbook.getCell(worksheet_index, 0, 2, "Series 2")
series = chart.getChartData().getSeries().add(series_name_cell, ChartType.ClusteredColumn)
series.getParentSeriesGroup().setOverlap(jpype.JByte(-25))
series.getParentSeriesGroup().setGapWidth(220)
cell = workbook.getCell(worksheet_index, 1, 2, 2.4)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(worksheet_index, 2, 2, 4.4)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(worksheet_index, 3, 2, 1.8)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(worksheet_index, 4, 2, 2.8)
series.getDataPoints().addDataPointForBarSeries(cell)
def add_third_series_to_chart(chart):
workbook = chart.getChartData().getChartDataWorkbook()
worksheet_index = 0
series_name_cell = workbook.getCell(worksheet_index, 0, 3, "Series 3")
series = chart.getChartData().getSeries().add(series_name_cell, ChartType.Line)
cell = workbook.getCell(worksheet_index, 1, 3, 2.0)
series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(worksheet_index, 2, 3, 2.0)
series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(worksheet_index, 3, 3, 3.0)
series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(worksheet_index, 4, 3, 5.0)
series.getDataPoints().addDataPointForLineSeries(cell)
series.setPlotOnSecondAxis(True)
def set_primary_axes_format(chart):
# A vízszintes tengely beállítása.
horizontal_axis = chart.getAxes().getHorizontalAxis()
horizontal_axis.getTextFormat().getPortionFormat().setFontHeight(12.0)
horizontal_axis.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill)
set_axis_title(horizontal_axis, "X Axis")
# A függőleges tengely beállítása.
vertical_axis = chart.getAxes().getVerticalAxis()
vertical_axis.getTextFormat().getPortionFormat().setFontHeight(12.0)
vertical_axis.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill)
set_axis_title(vertical_axis, "Y Axis 1")
# A függőleges fő rácsvonalak színének beállítása.
major_grid_lines_format = vertical_axis.getMajorGridLinesFormat().getLine().getFillFormat()
major_grid_lines_format.setFillType(FillType.Solid)
color = Color(217, 217, 217)
major_grid_lines_format.getSolidFillColor().setColor(color)
def set_secondary_axes_format(chart):
# A másodlagos vízszintes tengely beállítása.
secondary_horizontal_axis = chart.getAxes().getSecondaryHorizontalAxis()
secondary_horizontal_axis.setPosition(AxisPositionType.Bottom)
secondary_horizontal_axis.setCrossType(CrossesType.Maximum)
secondary_horizontal_axis.setVisible(False)
secondary_horizontal_axis.getMajorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill)
secondary_horizontal_axis.getMinorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill)
# A másodlagos függőleges tengely beállítása.
secondary_vertical_axis = chart.getAxes().getSecondaryVerticalAxis()
secondary_vertical_axis.setPosition(AxisPositionType.Right)
secondary_vertical_axis.getTextFormat().getPortionFormat().setFontHeight(12.0)
secondary_vertical_axis.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill)
secondary_vertical_axis.getMajorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill)
secondary_vertical_axis.getMinorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill)
set_axis_title(secondary_vertical_axis, "Y Axis 2")
def set_axis_title(axis, axis_title):
axis.setTitle(True)
axis.getTitle().setOverlay(False)
title_paragraph = axis.getTitle().addTextFrameForOverriding(axis_title).getParagraphs().get_Item(0)
title_format = title_paragraph.getParagraphFormat().getDefaultPortionFormat()
title_format.setFontBold(NullableBool.False_)
title_format.setFontHeight(12.0)
create_combo_chart()
Diagramok frissítése
- Hozzon létre egy példányt a Presentation osztályból, amely a frissíteni kívánt diagramot tartalmazó prezentációt reprezentálja.
- Szerezzen referenciát egy diára az indexe alapján.
- Böngéssze át az összes alakzatot, hogy megtalálja a kívánt diagramot.
- Hozzon hozzáférést a diagram adatlapjához.
- Módosítsa a diagram adat sorait a sorértékek megváltoztatásával.
- Adjon hozzá egy új sort, és töltse fel adataival.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan frissíthető egy diagram:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
# Megnyitja a prezentációt, amely a frissítendő diagramot tartalmazza
presentation = Presentation("ExistingChart.pptx")
try:
# Első dia elérése
slide = presentation.getSlides().get_Item(0)
# A diagram lekérése a diáról
chart = slide.getShapes().get_Item(0)
# A diagram adatlap indexének beállítása
default_worksheet_index = 0
# A diagram adatlap lekérése
workbook = chart.getChartData().getChartDataWorkbook()
# A diagram kategória nevének módosítása
workbook.getCell(default_worksheet_index, 1, 0, "Modified Category 1")
workbook.getCell(default_worksheet_index, 2, 0, "Modified Category 2")
# Az első diagram sorának lekérése
series = chart.getChartData().getSeries().get_Item(0)
# Sor adatainak frissítése
workbook.getCell(default_worksheet_index, 0, 1, "New_Series1")# Sorozat nevének módosítása
series.getDataPoints().get_Item(0).getValue().setData(90)
series.getDataPoints().get_Item(1).getValue().setData(123)
series.getDataPoints().get_Item(2).getValue().setData(44)
# A második diagram sorának lekérése
series = chart.getChartData().getSeries().get_Item(1)
# Sor adatainak frissítése
workbook.getCell(default_worksheet_index, 0, 2, "New_Series2")# Sorozat nevének módosítása
series.getDataPoints().get_Item(0).getValue().setData(23)
series.getDataPoints().get_Item(1).getValue().setData(67)
series.getDataPoints().get_Item(2).getValue().setData(99)
# Új sor hozzáadása
cell = workbook.getCell(default_worksheet_index, 0, 3, "Series 3")
chart.getChartData().getSeries().add(cell, chart.getType())
# A harmadik diagram sorának lekérése
series = chart.getChartData().getSeries().get_Item(2)
# Sor adatainak feltöltése
cell = workbook.getCell(default_worksheet_index, 1, 3, 20)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, 2, 3, 50)
series.getDataPoints().addDataPointForBarSeries(cell)
cell = workbook.getCell(default_worksheet_index, 3, 3, 30)
series.getDataPoints().addDataPointForBarSeries(cell)
chart.setType(ChartType.ClusteredCylinder)
# Prezentáció mentése diagrammal
presentation.save("AsposeChartModified_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Diagram adatintervallum beállítása
A diagram adatintervallumának beállításához tegye a következőket:
- Hozzon létre egy példányt a Presentation osztályból, amely a diagramot tartalmazó prezentációt képviseli.
- Szerezzen referenciát egy diára az indexe alapján.
- Böngéssze át az összes alakzatot, hogy megtalálja a kívánt diagramot.
- Hozzon hozzáférést a diagram adataihoz, és állítsa be az intervallumot.
- Mentse a módosított prezentációt PPTX fájlként.
Ez a Python kód megmutatja, hogyan állítható be egy diagram adatintervalluma:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
# Megnyitja a prezentációt, amely a diagramot tartalmazza
presentation = Presentation("ExistingChart.pptx")
try:
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().get_Item(0)
chart.getChartData().setRange("Sheet1!A1:B4")
presentation.save("SetDataRange_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Alapértelmezett markerek használata diagramokban
Alapértelmezett markerek használatakor minden diagram sor automatikusan más‑más markerjellel jelenik meg.
Ez a Python kód bemutatja, hogyan állítható be egy diagram sor markerje automatikusan:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().addChart(ChartType.LineWithMarkers, 10, 10, 400, 400)
chart.getChartData().getSeries().clear()
chart.getChartData().getCategories().clear()
workbook = chart.getChartData().getChartDataWorkbook()
cell = workbook.getCell(0, 0, 1, "Series 1")
chart.getChartData().getSeries().add(cell, chart.getType())
series = chart.getChartData().getSeries().get_Item(0)
cell = workbook.getCell(0, 1, 0, "C1")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, 1, 1, 24)
series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(0, 2, 0, "C2")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, 2, 1, 23)
series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(0, 3, 0, "C3")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, 3, 1, -10)
series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(0, 4, 0, "C4")
chart.getChartData().getCategories().add(cell)
cell = workbook.getCell(0, 4, 1, None)
series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(0, 0, 2, "Series 2")
chart.getChartData().getSeries().add(cell, chart.getType())
# A második diagram sorának lekérése
second_series = chart.getChartData().getSeries().get_Item(1)
# Most sor adatainak feltöltése
cell = workbook.getCell(0, 1, 2, 30)
second_series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(0, 2, 2, 10)
second_series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(0, 3, 2, 60)
second_series.getDataPoints().addDataPointForLineSeries(cell)
cell = workbook.getCell(0, 4, 2, 40)
second_series.getDataPoints().addDataPointForLineSeries(cell)
chart.setLegend(True)
chart.getLegend().setOverlay(False)
presentation.save("DefaultMarkersInChart.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
GYIK
Milyen diagramtípusokat támogat az Aspose.Slides?
Az Aspose.Slides széles körű diagramtípusokat támogat, beleértve az oszlop, vonal, torta, terület, szórás, hisztogram, radar és még sok mást. Ez a rugalmasság lehetővé teszi a legmegfelelőbb diagramtípus kiválasztását az adatvizualizációs igényekhez.
Hogyan adhatok új diagramot egy diához?
Diagram hozzáadásához először hozza létre a Presentation osztály egy példányát, szerezze meg a kívánt diát az indexe alapján, majd hívja meg a diagram hozzáadására szolgáló metódust, megadva a diagramtípust és a kezdeti adatokat. Ez a folyamat közvetlenül a prezentációba integrálja a diagramot.
Hogyan frissíthetem a diagramon megjelenített adatokat?
A diagram adatainak frissítéséhez lépjen hozzá a diagram adatkönyvtárához (ChartDataWorkbook), törölje az alapértelmezett sorokat és kategóriákat, majd adja hozzá saját egyedi adatait. Így a diagram a legújabb adatokkal frissül.
Lehet-e testreszabni a diagram megjelenését?
Igen, az Aspose.Slides kiterjedt testreszabási lehetőségeket kínál. Módosíthatja a színeket, betűtípusokat, címkéket, jelmagyarázatokat és egyéb formázási elemeket, hogy a diagram megjelenését a saját tervezési követelményeihez igazítsa.