Přizpůsobení legend grafů v prezentacích pomocí Pythonu
Přehled
Aspose.Slides for Python via .NET poskytuje možnosti přizpůsobení legendy grafu v prezentacích PowerPoint. Tento článek ukazuje, jak umístit a změnit velikost legendy, nastavit velikost písma pro celou legendu, formátovat jednotlivý záznam legendy a skrýt nebo obnovit vybrané záznamy.
Často kladené otázky (FAQ) pokrývají související chování, včetně rezervování místa pro legendu, zobrazování víceřádkových popisků a dědění formátování z motivu prezentace.
Umístění legendy
Použijte vlastnosti legendy x, y, width, a height k určení její polohy a velikosti jako zlomků rozměrů grafu.
V tomto příkladu se vytvoří prezentace a na první snímek se přidá seskupený sloupcový graf s výchozími daty. Rozdělením požadovaných posunů a rozměrů legendy šířkou a výškou grafu je převede na relativní hodnoty: legenda je posunuta o 50 bodů od levého horního rohu grafu a má rozměry 100 × 100 bodů.
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)
# Vyjádřete polohu a velikost legendy vzhledem k grafu.
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)
Nastavení velikosti písma legendy
Použijte vlastnost legendy text_format k získání přístupu k jejímu formátování textu a nastavte font_height v bodech.
V tomto příkladu se vytvoří graf s výchozími daty a nastaví se text legendy na 20 bodů. Také se zakáže automatické ohraničení pro vertikální osu a nastaví se její rozsah od -5 do 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)
Nastavení velikosti písma jednotlivého záznamu legendy
Použijte kolekci legendy entries k získání formátování konkrétního záznamu. Indexy záznamů jsou nulově založené, takže index 1 odkazuje na druhý záznam.
V tomto příkladu se vytvoří seskupený sloupcový graf, jehož výchozí data obsahují alespoň dvě řady. Druhý záznam legendy se formátuje tučným, kurzívou a modrým textem o velikosti 20 bodů.
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)
Skrytí jednotlivých záznamů legendy
Aby se vyloučila pomocná řada z legendy a přitom zůstala její data viditelná, nastavte ILegendEntryProperties.hide na True pomocí IChartSeries.related_legend_entry. Tím se skryje pouze vybraný záznam legendy; řada ani její datové body nejsou odstraněny. Nastavením IChart.has_legend na False se naproti tomu skryje celá legenda.
Následující příklad vytvoří seskupený sloupcový graf s více řadami pomocí výchozích dat. Skryje záznam legendy druhé řady (index 1) a uloží prezentaci. Poté záznam obnoví nastavením hide na False a uloží druhou kopii. Sloupce zůstávají v obou souborech viditelné.
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)
# Obnovte stejný záznam bez změny dat grafu.
legend_entry.hide = False
presentation.save("restored_legend_entry.pptx", slides.export.SaveFormat.PPTX)
Porovnání níže zobrazuje stejný graf se všemi viditelnými záznamy legendy a s legendou, kde je řada 2 skryta; všechny sloupce zůstávají viditelné. 
U sloupcových, pruhových a čarových grafů záznamy legendy identifikují řady. U koláčových grafů identifikují jednotlivé datové body (segmenty), takže místo toho použijte IChartDataPoint.related_legend_entry na vybraný segment. API tuto vlastnost datového bodu dokumentuje pro typy grafů PIE, PIE3D, EXPLODED_PIE, EXPLODED_PIE3D, PIE_OF_PIE a BAR_OF_PIE. Nepředpokládejte, že se vztahuje i na prstencové grafy, které v tomto seznamu nejsou uvedeny.
Často kladené otázky
Mohu nechat graf vyhradit místo pro legendu místo jejího překrývání?
Ano. Nastavte overlay na False, aby legenda vyhradila místo místo toho, aby překrývala oblast vykreslování.
Mohu vytvořit víceřádkové popisky legendy?
Ano. Dlouhé popisky se mohou zalamovat, pokud není k dispozici dostatečná šířka. Můžete také použít znaky nového řádku v názvech řad k požádání o zalomení řádku.
Jak zajistit, aby legenda používala barevné schéma motivu prezentace?
Nechte barvy, výplně a písma legendy nenastavené, aby mohla dědit formátování motivu. Explicitní formátování přepíše odpovídající nastavení motivu.