Diagrammlegenden in Präsentationen mit Python anpassen
Übersicht
Aspose.Slides für Python via .NET bietet Optionen zum Anpassen von Diagrammlegenden in PowerPoint‑Präsentationen. Dieser Artikel zeigt, wie man eine Legende positioniert und ihre Größe festlegt, die Schriftgröße für die gesamte Legende einstellt, einen einzelnen Legendeeintrag formatiert und ausgewählte Einträge ausblendet oder wiederherstellt.
Das FAQ behandelt verwandte Verhaltensweisen, einschließlich der Reservierung von Platz für die Legende, der Anzeige mehrzeiliger Beschriftungen und der Vererbung von Formatierungen aus dem Präsentationsthema.
Legendenpositionierung
Verwenden Sie die Eigenschaften x, y, width und height der Legende, um deren Position und Größe als Bruchteile der Diagrammdimensionen festzulegen.
Dieses Beispiel erstellt eine Präsentation und fügt der ersten Folie ein gruppiertes Säulendiagramm mit Standarddaten hinzu. Durch Teilen der gewünschten Legenden‑Offsets und -Abmessungen durch die Breite und Höhe des Diagramms werden relative Werte erhalten: Die Legende wird um 50 Punkt vom linken oberen Diagrammrand versetzt und hat die Größe 100 × 100 Punkt.
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 500, 500)
# Position und Größe der Legende relativ zum Diagramm angeben.
chart.legend.x = 50 / chart.width
chart.legend.y = 50 / chart.height
chart.legend.width = 100 / chart.width
chart.legend.height = 100 / chart.height
presentation.save("legend_position.pptx", slides.export.SaveFormat.PPTX)
Schriftgröße einer Legende festlegen
Verwenden Sie die text_format der Legende, um deren Textformatierung zuzugreifen und font_height in Punkten festzulegen.
Dieses Beispiel erstellt ein Diagramm mit Standarddaten und setzt den Legendentext auf 20 Punkt. Außerdem werden die automatischen Grenzen der vertikalen Achse deaktiviert und ihr Wertebereich auf –5 bis 10 festgelegt.
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 600, 400)
chart.legend.text_format.portion_format.font_height = 20
chart.axes.vertical_axis.is_automatic_min_value = False
chart.axes.vertical_axis.min_value = -5
chart.axes.vertical_axis.is_automatic_max_value = False
chart.axes.vertical_axis.max_value = 10
presentation.save("legend_font_size.pptx", slides.export.SaveFormat.PPTX)
Schriftgröße eines einzelnen Legendeeintrags festlegen
Verwenden Sie die entries‑Sammlung der Legende, um die Formatierung eines bestimmten Eintrags zu erhalten. Eintragsindizes beginnen bei null, sodass Index 1 den zweiten Eintrag bezeichnet.
Dieses Beispiel erstellt ein gruppiertes Säulendiagramm, dessen Standarddaten mindestens zwei Reihen enthalten. Es formatiert den zweiten Legendeeintrag fett, kursiv und mit blauem Text in 20 Punkt.
import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.pydrawing as draw
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 600, 400)
text_format = chart.legend.entries[1].text_format
text_format.portion_format.font_bold = slides.NullableBool.TRUE
text_format.portion_format.font_height = 20
text_format.portion_format.font_italic = slides.NullableBool.TRUE
text_format.portion_format.fill_format.fill_type = slides.FillType.SOLID
text_format.portion_format.fill_format.solid_fill_color.color = draw.Color.blue
presentation.save("legend_entry_format.pptx", slides.export.SaveFormat.PPTX)
Einzelne Legendeeinträge ausblenden
Um eine Hilfsreihe aus der Legende zu entfernen, während ihre Daten sichtbar bleiben, setzen Sie ILegendEntryProperties.hide über IChartSeries.related_legend_entry auf True. Dadurch wird nur der ausgewählte Legendeeintrag ausgeblendet; die Reihe oder ihre Datenpunkte werden nicht entfernt. Das Setzen von IChart.has_legend auf False blendet dagegen die gesamte Legende aus.
Das nachstehende Beispiel erstellt ein gruppiertes Säulendiagramm mit mehreren Reihen anhand der Standarddaten. Es blendet den Legendeeintrag der zweiten Reihe (Index 1) aus und speichert die Präsentation. Anschließend wird der Eintrag wiederhergestellt, indem hide auf False gesetzt wird, und eine zweite Kopie gespeichert. Die Säulen bleiben in beiden Dateien sichtbar.
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 600, 400)
chart.has_legend = True
legend_entry = chart.chart_data.series[1].related_legend_entry
legend_entry.hide = True
presentation.save("hidden_legend_entry.pptx", slides.export.SaveFormat.PPTX)
# Stellen Sie denselben Eintrag wieder her, ohne die Diagrammdaten zu ändern.
legend_entry.hide = False
presentation.save("restored_legend_entry.pptx", slides.export.SaveFormat.PPTX)
Der Vergleich unten zeigt dasselbe Diagramm mit allen sichtbaren Einträgen und mit dem zweiten Eintrag ausgeblendet. Die Säulen der zweiten Reihe bleiben unverändert.

In Säulen‑, Balken‑ und Liniendiagrammen identifizieren Legendeeinträge Reihen. Bei Kreisdiagrammen identifizieren sie einzelne Datenpunkte (Scheiben), sodass stattdessen IChartDataPoint.related_legend_entry für die ausgewählte Scheibe verwendet wird. Die API dokumentiert diese Datenpunkt‑Eigenschaft für die Diagrammtypen PIE, PIE3D, EXPLODED_PIE, EXPLODED_PIE3D, PIE_OF_PIE und BAR_OF_PIE. Gehen Sie nicht davon aus, dass sie für Donut‑Diagramme gilt, da diese nicht in der Liste enthalten sind.
FAQ
Kann ich das Diagramm veranlassen, Platz für die Legende zu reservieren, anstatt sie zu überlagern?
Ja. Setzen Sie overlay auf False, um Platz für die Legende zu reservieren, anstatt zuzulassen, dass sie den Diagrammbereich überlappt.
Kann ich mehrzeilige Legendenbeschriftungen erstellen?
Ja. Lange Beschriftungen können umbrechen, wenn die verfügbare Breite nicht ausreicht. Sie können auch Zeilenumbrüche in Reihennamen einfügen, um Zeilenumbrüche zu erzwingen.
Wie bringe ich die Legende dazu, dem Farbschema des Präsentationsthemas zu folgen?
Lassen Sie die Farben, Füllungen und Schriftarten der Legende ungesetzt, damit sie die Themenformatierung erben kann. Explizite Formatierungen überschreiben die entsprechenden Themeeinstellungen.