Grafieklegenda's aanpassen in presentaties met Python
Overzicht
Aspose.Slides for Python via .NET biedt opties om de legenda’s van diagrammen in PowerPoint‑presentaties aan te passen. Dit artikel laat zien hoe u een legenda kunt positioneren en de grootte kunt instellen, de lettergrootte voor de hele legenda kunt bepalen, een individuele legenda‑vermelding kunt opmaken en geselecteerde vermeldingen kunt verbergen of herstellen.
De FAQ behandelt gerelateerde functionaliteiten, waaronder het reserveren van ruimte voor de legenda, het weergeven van meerregelige labels en het overnemen van opmaak van het presentatiethema.
Legenda positionering
Gebruik de eigenschappen x, y, width, en height van de legenda om de positie en grootte als breuken van de afmetingen van het diagram op te geven.
Dit voorbeeld maakt een presentatie aan en voegt een gegroepeerde kolomgrafiek met standaardgegevens toe aan de eerste dia. Door de gewenste offset en afmetingen van de legenda te delen door de breedte en hoogte van het diagram, worden ze naar relatieve waarden omgezet: de legenda wordt 50 punten verschoven vanaf de linkerbovenhoek van het diagram en heeft een grootte van 100 bij 100 punten.
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)
# Druk de positie en grootte van de legenda uit relatief ten opzichte van het diagram.
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)
Stel de lettergrootte van een legenda in
Gebruik de text_format van de legenda om de tekstopmaak te benaderen en stel font_height in punten in.
Dit voorbeeld maakt een diagram met standaardgegevens en stelt de legendartekst in op 20 punten. Het schakelt ook de automatische grenzen voor de verticale as uit en stelt het bereik in op -5 tot en met 10.
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)
Stel de lettergrootte van een individuele legendarvermelding in
Gebruik de entries collectie van de legenda om de opmaak van een specifieke vermelding te benaderen. Vermeldingsindexen beginnen bij nul, dus index 1 verwijst naar de tweede vermelding.
Dit voorbeeld maakt een gegroepeerde kolomgrafiek waarvan de standaardgegevens minstens twee series bevatten. Het formatteert de tweede legendarvermelding met vet, cursief en blauwe tekst van 20 punten.
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)
Individuele legendarvermeldingen verbergen
Om een extra serie uit de legenda te halen terwijl de gegevens zichtbaar blijven, stelt u ILegendEntryProperties.hide in op True via IChartSeries.related_legend_entry. Dit verbergt alleen de geselecteerde legendarvermelding; het verwijdert de serie of haar gegevenspunten niet. Het instellen van IChart.has_legend op False verbergt daarentegen de volledige legenda.
Het onderstaande voorbeeld maakt een gegroepeerde kolomgrafiek met meerdere series aan op basis van standaardgegevens. Het verbergt de legendarvermelding van de tweede serie (index 1) en slaat de presentatie op. Vervolgens wordt de vermelding hersteld door hide op False te zetten en wordt een tweede kopie opgeslagen. De kolommen blijven in beide bestanden zichtbaar.
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)
# Herstel dezelfde entry zonder de diagramgegevens te wijzigen.
legend_entry.hide = False
presentation.save("restored_legend_entry.pptx", slides.export.SaveFormat.PPTX)
De vergelijking hieronder toont hetzelfde diagram met alle vermeldingen zichtbaar en met de tweede vermelding verborgen. De kolommen van de tweede serie blijven ongewijzigd.

In kolom-, staaf- en lijndiagrammen geven legendarvermeldingen de series aan. Bij taartdiagrammen geven ze individuele datapunten (segmenten) aan, dus gebruik IChartDataPoint.related_legend_entry op het geselecteerde segment. De API documenteert deze datapunt‑eigenschap voor de diagramtypes PIE, PIE3D, EXPLODED_PIE, EXPLODED_PIE3D, PIE_OF_PIE en BAR_OF_PIE. Ga er niet van uit dat dit geldt voor ringdiagrammen, die niet in die lijst staan.
FAQ
Kan ik het diagram ruimte laten reserveren voor de legenda in plaats van deze te overlappen?
Ja. Stel overlay in op False om ruimte voor de legenda te reserveren in plaats van deze te laten overlappen met het plotgebied.
Kan ik meerregelige legendarlabels maken?
Ja. Lange labels kunnen worden afgebroken wanneer de beschikbare breedte onvoldoende is. U kunt ook regeleinde‑tekens in serienamen gebruiken om een nieuwe regel af te dwingen.
Hoe laat ik de legenda het kleurenschema van het presentatiethema volgen?
Laat de kleuren, vullingen en lettertypen van de legenda onaangewezen zodat deze de thematische opmaak kan overnemen. Expliciete opmaak overschrijft de overeenkomstige themainstellingen.