Formátování grafů v prezentacích pomocí Pythonu
Přehled
Tento článek vysvětluje, jak pomocí Aspose.Slides formátovat grafy v prezentacích PowerPoint. Ukazuje, jak přizpůsobit klíčové prvky grafu, jako jsou osy, mřížkové čáry, nadpisy, legendy, oblast vykreslení a výplně stěn, aby se zlepšila vzhled a čitelnost dat v grafu.
Dále demonstruje, jak nastavit vlastnosti písma pro text v grafu, použít předdefinované i vlastní číselné formáty pro data grafu a povolit zaoblené rohy pro oblast grafu. Tyto příklady ukazují, jak řídit jak vizuální styl, tak prezentaci dat v grafu v prezentaci.
Formátování prvků grafu
Aspose.Slides pro Python umožňuje vývojářům přidávat vlastní grafy do snímků od začátku. Tato sekce popisuje, jak formátovat různé prvky grafu, včetně kategorií a hodnotových os.
Aspose.Slides poskytuje jednoduché API pro správu prvků grafu a aplikaci vlastního formátování:
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte graf s výchozími daty požadovaného typu (v tomto příkladu
ChartType.LINE_WITH_MARKERS). - Přistupte k hodnotové ose grafu a nastavte následující:
- Nastavte formát čáry pro hlavní mřížkové čáry hodnotové osy.
- Nastavte formát čáry pro vedlejší mřížkové čáry hodnotové osy.
- Nastavte formát čísla pro hodnotovou osu.
- Nastavte min, max, hlavní a vedlejší jednotky pro hodnotovou osu.
- Nastavte vlastnosti textu pro popisky hodnotové osy.
- Nastavte název pro hodnotovou osu.
- Nastavte formát čáry pro hodnotovou osu.
- Přistupte k osy kategorií grafu a nastavte následující:
- Nastavte formát čáry pro hlavní mřížkové čáry osy kategorií.
- Nastavte formát čáry pro vedlejší mřížkové čáry osy kategorií.
- Nastavte vlastnosti textu pro popisky osy kategorií.
- Nastavte název pro osu kategorií.
- Nastavte umístění popisků pro osu kategorií.
- Nastavte úhel otočení pro popisky osy kategorií.
- Přistupte k legendě grafu a nastavte její vlastnosti textu.
- Zobrazte legendu grafu tak, aby nepřekrývala graf.
- Přistupte k sekundární hodnotové ose grafu a nastavte následující:
- Povolit sekundární hodnotovou osu.
- Nastavte formát čáry pro sekundární hodnotovou osu.
- Nastavte formát čísla pro sekundární hodnotovou osu.
- Nastavte min, max, hlavní a vedlejší jednotky pro sekundární hodnotovou osu.
- Vykreslete první sérii grafu na sekundární hodnotové ose.
- Nastavte barvu výplně zadní stěny grafu.
- Nastavte barvu výplně oblasti vykreslení grafu.
- Zapište upravenou prezentaci do souboru PPTX.
import aspose.slides.charts as charts
import aspose.slides as slides
import aspose.pydrawing as draw
# Vytvořte instanci třídy Presentation.
with slides.Presentation() as presentation:
# Získejte první snímek.
slide = presentation.slides[0]
# Přidejte ukázkový graf.
chart = slide.shapes.add_chart(charts.ChartType.LINE_WITH_MARKERS, 50, 50, 500, 400)
# Nastavte název grafu.
chart.has_title = True
chart.chart_title.add_text_frame_for_overriding("")
chart_title = chart.chart_title.text_frame_for_overriding.paragraphs[0].portions[0]
chart_title.text = "Sample Chart"
chart_title.portion_format.fill_format.fill_type = slides.FillType.SOLID
chart_title.portion_format.fill_format.solid_fill_color.color = draw.Color.gray
chart_title.portion_format.font_height = 20
chart_title.portion_format.font_bold = 1
chart_title.portion_format.font_italic = 1
# Nastavte formát hlavních mřížkových čar pro hodnotovou osu.
chart.axes.vertical_axis.major_grid_lines_format.line.fill_format.fill_type = slides.FillType.SOLID
chart.axes.vertical_axis.major_grid_lines_format.line.fill_format.solid_fill_color.color = draw.Color.blue
chart.axes.vertical_axis.major_grid_lines_format.line.width = 5
chart.axes.vertical_axis.major_grid_lines_format.line.dash_style = slides.LineDashStyle.DASH_DOT
# Nastavte formát vedlejších mřížkových čar pro hodnotovou osu.
chart.axes.vertical_axis.minor_grid_lines_format.line.fill_format.fill_type = slides.FillType.SOLID
chart.axes.vertical_axis.minor_grid_lines_format.line.fill_format.solid_fill_color.color = draw.Color.red
chart.axes.vertical_axis.minor_grid_lines_format.line.width = 3
# Nastavte číselný formát hodnotové osy.
chart.axes.vertical_axis.is_number_format_linked_to_source = False
chart.axes.vertical_axis.display_unit = charts.DisplayUnitType.THOUSANDS
chart.axes.vertical_axis.number_format = "0.0%"
# Nastavte maximum, minimum, hlavní a vedlejší jednotku hodnotové osy.
chart.axes.vertical_axis.is_automatic_major_unit = False
chart.axes.vertical_axis.is_automatic_max_value = False
chart.axes.vertical_axis.is_automatic_minor_unit = False
chart.axes.vertical_axis.is_automatic_min_value = False
chart.axes.vertical_axis.max_value = 15
chart.axes.vertical_axis.min_value = -2
chart.axes.vertical_axis.minor_unit = 0.5
chart.axes.vertical_axis.major_unit = 2.0
# Nastavte textové vlastnosti hodnotové osy.
vertical_axis_portion_format = chart.axes.vertical_axis.text_format.portion_format
vertical_axis_portion_format.font_bold = 1
vertical_axis_portion_format.font_height = 16
vertical_axis_portion_format.font_italic = 1
vertical_axis_portion_format.fill_format.fill_type = slides.FillType.SOLID
vertical_axis_portion_format.fill_format.solid_fill_color.color = draw.Color.dark_green
vertical_axis_portion_format.latin_font = slides.FontData("Times New Roman")
# Nastavte název hodnotové osy.
chart.axes.vertical_axis.has_title = True
chart.axes.vertical_axis.title.add_text_frame_for_overriding("")
vertical_axis_title = chart.axes.vertical_axis.title.text_frame_for_overriding.paragraphs[0].portions[0]
vertical_axis_title.text = "Primary Axis"
vertical_axis_title.portion_format.fill_format.fill_type = slides.FillType.SOLID
vertical_axis_title.portion_format.fill_format.solid_fill_color.color = draw.Color.gray
vertical_axis_title.portion_format.font_height = 20
vertical_axis_title.portion_format.font_bold = 1
vertical_axis_title.portion_format.font_italic = 1
# Nastavte formát hlavních mřížkových čar pro osu kategorií.
chart.axes.horizontal_axis.major_grid_lines_format.line.fill_format.fill_type = slides.FillType.SOLID
chart.axes.horizontal_axis.major_grid_lines_format.line.fill_format.solid_fill_color.color = draw.Color.green
chart.axes.horizontal_axis.major_grid_lines_format.line.width = 5
# Nastavte formát vedlejších mřížkových čar pro osu kategorií.
chart.axes.horizontal_axis.minor_grid_lines_format.line.fill_format.fill_type = slides.FillType.SOLID
chart.axes.horizontal_axis.minor_grid_lines_format.line.fill_format.solid_fill_color.color = draw.Color.yellow
chart.axes.horizontal_axis.minor_grid_lines_format.line.width = 3
# Nastavte textové vlastnosti osy kategorií.
horizontal_axis_portion_format = chart.axes.horizontal_axis.text_format.portion_format
horizontal_axis_portion_format.font_bold = 1
horizontal_axis_portion_format.font_height = 16
horizontal_axis_portion_format.font_italic = 1
horizontal_axis_portion_format.fill_format.fill_type = slides.FillType.SOLID
horizontal_axis_portion_format.fill_format.solid_fill_color.color = draw.Color.blue
horizontal_axis_portion_format.latin_font = slides.FontData("Arial")
# Nastavte název osy kategorií.
chart.axes.horizontal_axis.has_title = True
chart.axes.horizontal_axis.title.add_text_frame_for_overriding("")
horizontal_axis_title = chart.axes.horizontal_axis.title.text_frame_for_overriding.paragraphs[0].portions[0]
horizontal_axis_title.text = "Sample Category"
horizontal_axis_title.portion_format.fill_format.fill_type = slides.FillType.SOLID
horizontal_axis_title.portion_format.fill_format.solid_fill_color.color = draw.Color.gray
horizontal_axis_title.portion_format.font_height = 20
horizontal_axis_title.portion_format.font_bold = 1
horizontal_axis_title.portion_format.font_italic = 1
# Nastavte umístění popisků osy kategorií.
chart.axes.horizontal_axis.tick_label_position = charts.TickLabelPositionType.LOW
# Nastavte úhel otáčení popisků osy kategorií.
chart.axes.horizontal_axis.tick_label_rotation_angle = 45
# Nastavte textové vlastnosti legendy.
legend_portion_format = chart.legend.text_format.portion_format
legend_portion_format.font_bold = 1
legend_portion_format.font_height = 16
legend_portion_format.font_italic = 1
legend_portion_format.fill_format.fill_type = slides.FillType.SOLID
legend_portion_format.fill_format.solid_fill_color.color = draw.Color.dark_red
# Zobrazte legendu grafu překrývající graf.
chart.legend.overlay = True
# Nastavte barvu zadní stěny grafu.
chart.back_wall.thickness = 1
chart.back_wall.format.fill.fill_type = slides.FillType.SOLID
chart.back_wall.format.fill.solid_fill_color.color = draw.Color.orange
chart.floor.format.fill.fill_type = slides.FillType.SOLID
chart.floor.format.fill.solid_fill_color.color = draw.Color.red
# Nastavte barvu oblasti vykreslení.
chart.plot_area.format.fill.fill_type = slides.FillType.SOLID
chart.plot_area.format.fill.solid_fill_color.color = draw.Color.light_cyan
# Uložte prezentaci.
presentation.save("FormattedChart.pptx", slides.export.SaveFormat.PPTX)
Nastavení vlastností písma v grafu
Aspose.Slides pro Python podporuje nastavení vlastností souvisejících s písmem pro grafy. Postupujte podle následujících kroků pro konfiguraci vlastností písma v grafu:
- Vytvořte objekt Presentation.
- Přidejte graf do snímku.
- Nastavte výšku písma.
- Uložte upravenou prezentaci.
Níže je uveden ukázkový kód.
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 100, 100, 500, 400)
chart.text_format.portion_format.font_height = 20
chart.chart_data.series[0].labels.default_data_label_format.show_value = True
presentation.save("ChartFontProperties.pptx", slides.export.SaveFormat.PPTX)
Nastavení číselného formátu
Aspose.Slides pro Python poskytuje jednoduché API pro správu formátů dat v grafu:
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek podle jeho indexu.
- Přidejte graf s výchozími daty libovolného požadovaného typu.
- Nastavte předdefinovaný číselný formát z dostupných předdefinovaných hodnot.
- Procházejte buňky dat grafu v každé sérii a nastavte číselný formát.
- Uložte prezentaci.
- Nastavte vlastní číselný formát.
- Procházejte buňky dat grafu v každé sérii a nastavte jiný číselný formát.
- Uložte prezentaci.
import aspose.slides.charts as charts
import aspose.slides as slides
# Vytvořte instanci třídy Presentation.
with slides.Presentation() as presentation:
# Získejte první snímek.
slide = presentation.slides[0]
# Přidejte výchozí seskupený sloupcový graf.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 500, 400)
# Nastavte předdefinovaný číselný formát.
# Procházejte každou sérii grafu.
for series in chart.chart_data.series:
# Procházejte každou datovou položku v sérii.
for cell in series.data_points:
# Nastavte číselný formát.
cell.value.as_cell.preset_number_format = 10 # 0.00%
# Uložte prezentaci.
presentation.save("PresetNumberFormat.pptx", slides.export.SaveFormat.PPTX)
Dostupné předdefinované číselné formáty a jejich odpovídající indexy jsou uvedeny níže.
| 0 | General |
|---|---|
| 1 | 0 |
| 2 | 0.00 |
| 3 | #,##0 |
| 4 | #,##0.00 |
| 5 | $#,##0;$-#,##0 |
| 6 | $#,##0;Red$-#,##0 |
| 7 | $#,##0.00;$-#,##0.00 |
| 8 | $#,##0.00;Red$-#,##0.00 |
| 9 | 0% |
| 10 | 0.00% |
| 11 | 0.00E+00 |
| 12 | # ?/? |
| 13 | # / |
| 14 | m/d/yy |
| 15 | d-mmm-yy |
| 16 | d-mmm |
| 17 | mmm-yy |
| 18 | h:mm AM/PM |
| 19 | h:mm:ss AM/PM |
| 20 | h:mm |
| 21 | h:mm:ss |
| 22 | m/d/yy h:mm |
| 37 | #,##0;-#,##0 |
| 38 | #,##0;Red-#,##0 |
| 39 | #,##0.00;-#,##0.00 |
| 40 | #,##0.00;Red-#,##0.00 |
| 41 | _ * #,##0_ ;_ * “_ ;_ @_ |
| 42 | _ $* #,##0_ ;_ $* “_ ;_ @_ |
| 43 | _ * #,##0.00_ ;_ * “??_ ;_ @_ |
| 44 | _ $* #,##0.00_ ;_ $* “??_ ;_ @_ |
| 45 | mm:ss |
| 46 | h:mm:ss |
| 47 | mm:ss.0 |
| 48 | ##0.0E+00 |
| 49 | @ |
Nastavení zaoblených hran pro oblast grafu
Aspose.Slides pro Python podporuje konfiguraci oblasti grafu pomocí vlastnosti Chart.has_rounded_corners.
- Vytvořte objekt Presentation.
- Přidejte graf do snímku.
- Nastavte typ výplně a barvu výplně grafu.
- Nastavte vlastnost zaoblených rohů na
True. - Uložte upravenou prezentaci.
Ukázka je uvedena níže.
import aspose.slides.charts as charts
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 100, 600, 400)
chart.line_format.fill_format.fill_type = slides.FillType.SOLID
chart.line_format.style = slides.LineStyle.SINGLE
chart.has_rounded_corners = True
presentation.save("RoundedBorders.pptx", slides.export.SaveFormat.PPTX)
Často kladené otázky
Mohu nastavit poloprůhledné výplně pro sloupce/oblasti a přitom nechat okraj neprůhledný?
Ano. Průhlednost výplně a obrysu jsou konfigurovány odděleně. To je užitečné pro zlepšení čitelnosti mřížky a dat v hustých vizualizacích.
Jak mohu řešit popisky dat, když se překrývají?
Zmenšte velikost písma, zakažte nepodstatné součásti popisků (například kategorie), nastavte odsazení/umístění popisku, zobrazte popisky jen pro vybrané body, pokud je to nutné, nebo přepněte formát na „hodnota + legenda“.
Mohu aplikovat přechodové nebo vzorové výplně na série?
Ano. Obvykle jsou k dispozici jak plné, tak přechodové/vzorové výplně. V praxi používejte přechody střídmě a vyhněte se kombinacím, které snižují kontrast vůči mřížce a textu.