Správa datových popisků v grafech v prezentacích pomocí Pythonu

Přehled

Datové popisky v grafu zobrazují podrobnosti o datových řadách grafu nebo jednotlivých bodech. Umožňují čtenářům rychle rozpoznat řady a také usnadňují pochopení grafů. V Aspose.Slides pro Python můžete povolit, přizpůsobit a formátovat datové popisky pro libovolný graf – vybrat, co zobrazit (hodnoty, procenta, názvy řad nebo kategorií), kde popisky umístit a jak budou vypadat (písmo, formát čísel, oddělovače, čáry vedoucí k popisku a další). Tento článek popisuje základní API a příklady, které potřebujete k přidání jasných, informativních popisků do vašich grafů.

Nastavení přesnosti datových popisků

Datové popisky v grafu často zobrazují číselné hodnoty, které vyžadují jednotnou přesnost. V této části se dozvíte, jak v Aspose.Slides ovládat počet desetinných míst pro datové popisky pomocí vhodného formátu čísla.

Následující příklad v Pythonu ukazuje, jak nastavit číselnou přesnost pro datové popisky grafu:

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.LINE, 50, 50, 500, 300)

    series = chart.chart_data.series[0]
    series.labels.default_data_label_format.show_value = True
    series.number_format_of_values = "#,##0.00"

    presentation.save("data_label_precision.pptx", slides.export.SaveFormat.PPTX)

Zobrazování procent jako popisků

S Aspose.Slides můžete na grafech zobrazovat procenta jako datové popisky. Níže uvedený příklad vypočítá podíl každého bodu v rámci jeho kategorie a naformátuje popisek tak, aby zobrazoval procenta.

import aspose.slides as slides
import aspose.slides.charts as charts

# Vytvořte instanci třídy Presentation.
with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    chart = slide.shapes.add_chart(charts.ChartType.STACKED_COLUMN, 20, 20, 600, 400)
    series = chart.chart_data.series[0]

    total_for_categories = [0]*len(chart.chart_data.categories)
    for k in range(len(chart.chart_data.categories)):
        for i in range(len(chart.chart_data.series)):
            total_for_categories[k] += chart.chart_data.series[i].data_points[k].value.data

    for i in range(len(chart.chart_data.series)):
        series = chart.chart_data.series[i]
        series.labels.default_data_label_format.show_legend_key = False

        for j in range(len(series.data_points)):
            data_point_percent = series.data_points[j].value.data / total_for_categories[j] * 100

            text_portion = slides.Portion()
            text_portion.text = "{0:.2f} %".format(data_point_percent)
            text_portion.portion_format.font_height = 8

            label = series.data_points[j].label
            label.text_frame_for_overriding.text = ""

            paragraph = label.text_frame_for_overriding.paragraphs[0]
            paragraph.portions.add(text_portion)

            label.data_label_format.show_series_name = False
            label.data_label_format.show_percentage = False
            label.data_label_format.show_legend_key = False
            label.data_label_format.show_category_name = False
            label.data_label_format.show_bubble_size = False

    # Uložte prezentaci obsahující graf.
    presentation.save("percentage_as_label.pptx", slides.export.SaveFormat.PPTX)

Zobrazení znaků procent v datových popiscích grafu

Tato část ukazuje, jak v datových popiscích grafu zobrazit procenta a přidat znak % pomocí Aspose.Slides. Naučíte se, jak povolit procentuální hodnoty pro celé řady nebo konkrétní body (ideální pro koláčové, prstencové a 100 % vrstvené grafy) a jak řídit formátování pomocí možností popisku nebo vlastního formátu čísla.

Následující příklad v Pythonu ukazuje, jak přidat znak procenta do datového popisku grafu:

import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.pydrawing as draw

# Vytvořte instanci třídy Presentation.
with slides.Presentation() as presentation:

    # Získejte referenci na snímek podle indexu.
    slide = presentation.slides[0]

    # Vytvořte graf PercentsStackedColumn na snímku.
    chart = slide.shapes.add_chart(charts.ChartType.PERCENTS_STACKED_COLUMN, 20, 20, 600, 400)

    chart.axes.vertical_axis.is_number_format_linked_to_source = False
    chart.axes.vertical_axis.number_format = "0.00%"

    chart.chart_data.series.clear()

    # Získejte sešit s daty grafu.
    workbook = chart.chart_data.chart_data_workbook
    worksheet_index = 0

    # Přidejte novou řadu.
    series = chart.chart_data.series.add(workbook.get_cell(worksheet_index, 0, 1, "Reds"), chart.type)
    series.data_points.add_data_point_for_bar_series(workbook.get_cell(worksheet_index, 1, 1, 0.30))
    series.data_points.add_data_point_for_bar_series(workbook.get_cell(worksheet_index, 2, 1, 0.50))
    series.data_points.add_data_point_for_bar_series(workbook.get_cell(worksheet_index, 3, 1, 0.80))
    series.data_points.add_data_point_for_bar_series(workbook.get_cell(worksheet_index, 4, 1, 0.65))

    # Nastavte barvu výplně řady.
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = draw.Color.red

    # Nastavte vlastnosti formátu popisku.
    series.labels.default_data_label_format.show_value = True
    series.labels.default_data_label_format.is_number_format_linked_to_source = False
    series.labels.default_data_label_format.number_format = "0.0%"
    series.labels.default_data_label_format.text_format.portion_format.font_height = 10
    series.labels.default_data_label_format.text_format.portion_format.fill_format.fill_type = slides.FillType.SOLID
    series.labels.default_data_label_format.text_format.portion_format.fill_format.solid_fill_color.color = draw.Color.white
    series.labels.default_data_label_format.show_value = True

    # Přidejte novou řadu.
    series2 = chart.chart_data.series.add(workbook.get_cell(worksheet_index, 0, 2, "Blues"), chart.type)
    series2.data_points.add_data_point_for_bar_series(workbook.get_cell(worksheet_index, 1, 2, 0.70))
    series2.data_points.add_data_point_for_bar_series(workbook.get_cell(worksheet_index, 2, 2, 0.50))
    series2.data_points.add_data_point_for_bar_series(workbook.get_cell(worksheet_index, 3, 2, 0.20))
    series2.data_points.add_data_point_for_bar_series(workbook.get_cell(worksheet_index, 4, 2, 0.35))

    # Nastavte typ výplně a barvu.
    series2.format.fill.fill_type = slides.FillType.SOLID
    series2.format.fill.solid_fill_color.color = draw.Color.blue
    series2.labels.default_data_label_format.show_value = True
    series2.labels.default_data_label_format.is_number_format_linked_to_source = False
    series2.labels.default_data_label_format.number_format = "0.0%"
    series2.labels.default_data_label_format.text_format.portion_format.font_height = 10
    series2.labels.default_data_label_format.text_format.portion_format.fill_format.fill_type = slides.FillType.SOLID
    series2.labels.default_data_label_format.text_format.portion_format.fill_format.solid_fill_color.color = draw.Color.white

    # Uložte prezentaci.
    presentation.save("percentage_sign.pptx", slides.export.SaveFormat.PPTX)

Nastavení vzdálenosti popisku od osy

Tato část ukazuje, jak v Aspose.Slides nastavit vzdálenost mezi datovými popisky a osou grafu. Úprava tohoto odsazení pomáhá předcházet překrývání a zlepšuje čitelnost u hustých vizualizací.

Následující kód v Pythonu ukazuje, jak nastavit vzdálenost popisku od osy kategorií při práci s grafem založeným na osách:

import aspose.slides as slides
import aspose.slides.charts as charts

# Vytvořte instanci třídy Presentation.
with slides.Presentation() as presentation:
    # Získejte referenci na snímek.
    slide = presentation.slides[0]

    # Vytvořte seskupený sloupcový graf na snímku.
    chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 300)

    # Nastavte vzdálenost popisku od kategorie (horizontální) osy.
    chart.axes.horizontal_axis.label_offset = 500

    # Uložte prezentaci.
    presentation.save("axis_label_distance.pptx", slides.export.SaveFormat.PPTX)

Úprava polohy popisku

Když vytváříte graf, který nepoužívá osy, například koláčový graf, mohou být datové popisky příliš blízko okraji. V takovém případě upravte polohu popisku, aby čáry vedoucí k popisku byly zřetelně viditelné.

Následující kód v Pythonu ukazuje, jak upravit polohu popisku v koláčovém grafu:

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.PIE, 50, 50, 600, 300)

    series = chart.chart_data.series[0]
    series.labels.default_data_label_format.show_value = True
    series.labels.default_data_label_format.show_leader_lines = True

    label = series.labels[0]
    label.data_label_format.position = charts.LegendDataLabelPosition.OUTSIDE_END

    label.x = 0.05
    label.y = 0.1

    presentation.save("presentation.pptx", slides.export.SaveFormat.PPTX)

Změněná poloha popisku

Často kladené otázky

Jak mohu zabránit překrývání datových popisků v hustých grafech?

Zkombinujte automatické umisťování popisků, čáry vedoucí k popiskům a zmenšení velikosti písma; v případě potřeby skryjte některé položky (například kategorii) nebo zobrazujte popisky jen pro extrémní/klíčové body.

Jak mohu zakázat popisky pouze pro nulové, záporné nebo prázdné hodnoty?

Filtrováním datových bodů před povolením popisků vypněte zobrazení pro hodnoty 0, záporné hodnoty nebo chybějící hodnoty podle definovaného pravidla.

Jak mohu zajistit jednotný styl popisků při exportu do PDF/obrázků?

Explicitně nastavte písma (rodinu, velikost) a ověřte, že písmo je k dispozici na straně vykreslování, aby nedocházelo k náhradě.