Diagrammdatenbeschriftungen in Präsentationen mit Python verwalten
Übersicht
Datumsbeschriftungen auf einem Diagramm zeigen Details zur Diagrammdatenreihe oder zu einzelnen Datenpunkten an. Sie ermöglichen es dem Leser, Datenreihen schnell zu identifizieren, und machen Diagramme leichter verständlich. In Aspose.Slides für Python können Sie Datenbeschriftungen für beliebige Diagramme aktivieren, anpassen und formatieren – wobei Sie auswählen können, was angezeigt wird (Werte, Prozentsätze, Reihen‑ oder Kategorienamen), wo die Beschriftungen positioniert werden und wie sie aussehen (Schriftart, Zahlenformat, Trennzeichen, Hilfslinien und mehr). Dieser Artikel beschreibt die wichtigsten APIs und Beispiele, die Sie benötigen, um klare, informative Beschriftungen zu Ihren Diagrammen hinzuzufügen.
Datenbeschriftungsgenauigkeit festlegen
Diagrammdatenbeschriftungen zeigen häufig numerische Werte, die eine konsistente Genauigkeit erfordern. Dieser Abschnitt zeigt, wie Sie die Anzahl der Dezimalstellen für Datenbeschriftungen in Aspose.Slides durch Anwendung eines geeigneten Zahlenformats steuern können.
Das folgende Python‑Beispiel zeigt, wie Sie die numerische Genauigkeit für Diagrammdatenbeschriftungen festlegen:
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)
Prozentsätze als Beschriftungen anzeigen
Mit Aspose.Slides können Sie Prozentsätze als Datenbeschriftungen in Diagrammen anzeigen. Das nachstehende Beispiel berechnet den Anteil jedes Punktes innerhalb seiner Kategorie und formatiert die Beschriftung, um den Prozentsatz anzuzeigen.
import aspose.slides as slides
import aspose.slides.charts as charts
# Erstelle eine Instanz der Presentation-Klasse.
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
# Speichere die Präsentation mit dem Diagramm.
presentation.save("percentage_as_label.pptx", slides.export.SaveFormat.PPTX)
Prozentzeichen mit Diagrammdatenbeschriftungen anzeigen
Dieser Abschnitt zeigt, wie Sie Prozentsätze in Diagrammdatenbeschriftungen anzeigen und das Prozentzeichen mit Aspose.Slides einfügen. Sie erfahren, wie Sie Prozentwerte für ganze Reihen oder einzelne Punkte aktivieren (ideal für Kreis‑, Donut‑ und 100 %‑gestapelte Diagramme) und wie Sie die Formatierung über Beschriftungsoptionen oder ein benutzerdefiniertes Zahlenformat steuern.
Das folgende Python‑Beispiel zeigt, wie Sie einer Diagrammdatenbeschriftung ein Prozentzeichen hinzufügen:
import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.pydrawing as draw
# Erstelle eine Instanz der Presentation-Klasse.
with slides.Presentation() as presentation:
# Hole eine Folienreferenz nach Index.
slide = presentation.slides[0]
# Erstelle ein PercentsStackedColumn-Diagramm auf der Folie.
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()
# Hole die Diagrammdaten-Arbeitsmappe.
workbook = chart.chart_data.chart_data_workbook
worksheet_index = 0
# Füge eine neue Serie hinzu.
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))
# Setze die Füllfarbe der Serie.
series.format.fill.fill_type = slides.FillType.SOLID
series.format.fill.solid_fill_color.color = draw.Color.red
# Setze die Eigenschaften des Beschriftungsformats.
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
# Füge eine neue Serie hinzu.
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))
# Setze den Fülltyp und die Farbe.
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
# Speichere die Präsentation.
presentation.save("percentage_sign.pptx", slides.export.SaveFormat.PPTX)
Beschriftungsabstand zur Achse festlegen
Dieser Abschnitt zeigt, wie Sie den Abstand zwischen Datenbeschriftungen und der Diagrammachse in Aspose.Slides steuern. Das Anpassen dieses Versatzes hilft, Überlappungen zu vermeiden und die Lesbarkeit bei dichten Darstellungen zu verbessern.
Der folgende Python‑Code zeigt, wie Sie den Beschriftungsabstand von der Kategorienachse bei einem achsbasierten Diagramm festlegen:
import aspose.slides as slides
import aspose.slides.charts as charts
# Erstelle eine Instanz der Presentation-Klasse.
with slides.Presentation() as presentation:
# Hole eine Folienreferenz.
slide = presentation.slides[0]
# Erstelle ein gruppiertes Säulendiagramm auf der Folie.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 300)
# Setze den Beschriftungsabstand von der Kategorien-(horizontalen) Achse.
chart.axes.horizontal_axis.label_offset = 500
# Speichere die Präsentation.
presentation.save("axis_label_distance.pptx", slides.export.SaveFormat.PPTX)
Beschriftungsposition anpassen
Wenn Sie ein Diagramm erstellen, das keine Achsen verwendet, wie z. B. ein Kreisdiagramm, können die Datenbeschriftungen zu nahe am Rand liegen. In diesem Fall passen Sie die Beschriftungsposition an, damit Hilfslinien deutlich angezeigt werden.
Der folgende Python‑Code zeigt, wie Sie die Beschriftungsposition in einem Kreisdiagramm anpassen:
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)

FAQ
Wie kann ich verhindern, dass Datenbeschriftungen bei dichten Diagrammen überlappen?
Kombinieren Sie automatische Beschriftungsplatzierung, Hilfslinien und reduzierte Schriftgröße; bei Bedarf können Sie einige Felder (z. B. die Kategorie) ausblenden oder Beschriftungen nur für extreme/Schlüsselpunkte anzeigen.
Wie kann ich Beschriftungen nur für null, negative oder leere Werte deaktivieren?
Filtern Sie die Datenpunkte, bevor Sie Beschriftungen aktivieren, und deaktivieren Sie die Anzeige für Werte von 0, negative Werte oder fehlende Werte gemäß einer definierten Regel.
Wie kann ich einen konsistenten Beschriftungsstil beim Exportieren in PDF/Bilder sicherstellen?
Legen Sie Schriftarten (Familie, Größe) explizit fest und prüfen Sie, dass die Schrift auf der Rendering‑Seite verfügbar ist, um ein Zurückgreifen auf Ersatzschriften zu vermeiden.