Diagram jelmagyarázatának testreszabása prezentációkban Python használatával
Áttekintés
Az Aspose.Slides for Python via Java lehetőséget biztosít a diagram jelmagyarázatának testreszabására a PowerPoint‑prezentációkban. Ez a cikk bemutatja, hogyan lehet elhelyezni és méretezni egy jelmagyarázatot, beállítani a teljes jelmagyarázat betűméretét, egy adott jelmagyarázati bejegyzést formázni, valamint elrejteni vagy visszaállítani a kiválasztott bejegyzéseket.
Az FAQ kapcsolódó viselkedéseket fed le, beleértve a jelmagyarázat számára fenntartott helyet, a több soros címkék megjelenítését és a formázás öröklését a prezentáció témájától.
Jelmagyarázat pozicionálása
Használja a jelmagyarázat setX, setY, setWidth és setHeight metódusait a pozíció és a méret megadásához a diagram dimenzióinak tört részében.
Ez a példa létrehoz egy prezentációt, és az első diára egy csoportosított oszlopdiagramot ad hozzá alapértelmezett adatokkal. A kívánt jelmagyarázati eltolásokat és méreteket a diagram szélességével és magasságával osztva relatív értékekké konvertálja: a jelmagyarázat 50 ponttal van eltolva a diagram bal felső sarkától, és 100 × 100 pont méretű.
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.ClusteredColumn, 50, 50, 500, 500)
# A legend pozíciójának és méretének kifejezése a diagramhoz képest.
chart.getLegend().setX(50 / chart.getWidth())
chart.getLegend().setY(50 / chart.getHeight())
chart.getLegend().setWidth(100 / chart.getWidth())
chart.getLegend().setHeight(100 / chart.getHeight())
presentation.save("legend_position.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
A jelmagyarázat betűméretének beállítása
Használja a jelmagyarázat getTextFormat metódusát a szövegformázás eléréséhez, és a setFontHeight metódust a betűméret pontban történő beállításához.
Ez a példa létrehoz egy diagramot alapértelmezett adatokkal, és a jelmagyarázat szövegét 20 pontra állítja. Emellett letiltja a függőleges tengely automatikus határait, és a tartományt -5‑tól 10‑ig állítja be.
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.ClusteredColumn, 50, 50, 600, 400)
chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20)
chart.getAxes().getVerticalAxis().setAutomaticMinValue(False)
chart.getAxes().getVerticalAxis().setMinValue(-5)
chart.getAxes().getVerticalAxis().setAutomaticMaxValue(False)
chart.getAxes().getVerticalAxis().setMaxValue(10)
presentation.save("legend_font_size.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Egyéni jelmagyarázati bejegyzés betűméretének beállítása
Használja a jelmagyarázat getEntries metódusa által visszaadott gyűjteményt egy adott bejegyzés formázásához. A bejegyzés indexelése nullától indul, így az 1 index a második bejegyzést jelöli.
Ez a példa létrehoz egy csoportosított oszlopdiagramot, amelynek alapértelmezett adatai legalább két sorozatot tartalmaznak. Formázza a második jelmagyarázati bejegyzést félkövér, dőlt, 20 pontos kék szöveggel.
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")
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
text_format = chart.getLegend().getEntries().get_Item(1).getTextFormat()
text_format.getPortionFormat().setFontBold(NullableBool.True_)
text_format.getPortionFormat().setFontHeight(20)
text_format.getPortionFormat().setFontItalic(NullableBool.True_)
text_format.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
text_format.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)
presentation.save("legend_entry_format.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Egyéni jelmagyarázati bejegyzések elrejtése
Egy segédsorozat kizárásához a jelmagyarázatból, miközben az adatokat láthatóan megtartja, hívja meg a LegendEntryProperties.setHide metódust True értékkel a ChartSeries.getRelatedLegendEntry segítségével. Ez csak a kiválasztott jelmagyarázati bejegyzést rejti el; a sorozatot vagy az adatpontokat nem távolítja el. Ezzel szemben a Chart.setLegend False értékkel történő hívása az egész jelmagyarázatot elrejti.
Az alábbi példa egy csoportosított oszlopdiagramot hoz létre több sorozattal alapértelmezett adatokkal. Elrejti a második sorozat jelmagyarázati bejegyzését (index 1), majd elmenti a prezentációt. Ezután a setHide False értékkel való meghívásával visszaállítja a bejegyzést, és egy második másolatot ment el. Az oszlopok mindkét fájlban láthatóak maradnak.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpage.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
chart.setLegend(True)
legend_entry = chart.getChartData().getSeries().get_Item(1).getRelatedLegendEntry()
legend_entry.setHide(True)
presentation.save("hidden_legend_entry.pptx", SaveFormat.Pptx)
# A bejegyzés visszaállítása a diagram adatait módosítás nélkül.
legend_entry.setHide(False)
presentation.save("restored_legend_entry.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Az alábbi összehasonlítás ugyanazt a diagramot mutatja, egyszer az összes bejegyzés látható, egyszer a második bejegyzés rejtve. A második sorozat oszlopai változatlanok maradnak.

Oszlop-, sáv‑ és vonaldiagramok esetén a jelmagyarázati bejegyzések a sorozatokat azonosítják. Kördiagramoknál egyedi adatelempontokat (szeleteket) jelölnek, ezért a kiválasztott szeletre a ChartDataPoint.getRelatedLegendEntry metódust kell használni. Az API ezt a metódust dokumentálja a Pie, Pie3D, ExplodedPie, ExplodedPie3D, PieOfPie és BarOfPie diagramtípusoknál. Ne tételezze, hogy ez a fánkkör diagramokra is vonatkozik, amelyek nincsenek a listában.
FAQ
Készíthetek úgy a diagramot, hogy helyet foglaljon a jelmagyarázatnak a felülírás helyett?
Igen. Hívja meg a setOverlay metódust False értékkel, hogy a jelmagyarázat számára helyet foglaljon a felület átfedése helyett.
Készíthetek több soros jelmagyarázati címkéket?
Igen. A hosszú címkék megtörhetnek, ha a rendelkezésre álló szélesség nem elegendő. Új sor karaktereket is beilleszthet a sorozatnevekbe a sortörés kéréséhez.
Hogyan tehetem a jelmagyarázatot a prezentáció téma színsémájához igazítottá?
Hagyja a jelmagyarázat színeit, kitöltéseit és betűtípusait beállítatlanul, hogy örökölje a téma formázását. A kifejezett formázás felülbírálja a megfelelő téma beállításokat.