مدیریت حاشیه‌نویسی‌ها در نمودارهای ارائه با پایتون

بررسی کلی

این مقاله توضیح می‌دهد که چگونه با حاشیه‌نویسی‌ها برای برچسب‌های دادهٔ نمودار در Aspose.Slides کار کنید. نشان می‌دهد چگونه از خصوصیت show_label_as_data_callout برای نمایش برچسب‌ها به‌صورت حاشیه‌نویسی استفاده شود، چگونه تنظیمات مربوط به حاشیه‌نویسی برچسب‌ها برای نمودار دونات پیکربندی شود، و اشاره می‌کند که حاشیه‌نویسی‌ها و ظاهر آن‌ها هنگام صادرات ارائه‌ها به فرمت‌های PDF، HTML5، SVG و تصاویر رستری حفظ می‌شوند.

استفاده از حاشیه‌نویسی‌ها

ویژگی جدید show_label_as_data_callout به کلاس DataLabelFormat افزوده شده است که تعیین می‌کند برچسب دادهٔ نمودار مشخص شده به‌صورت حاشیه‌نویسی یا به‌صورت برچسب داده نمایش داده شود. در مثال زیر، حاشیه‌نویسی‌ها تنظیم شده‌اند.

import aspose.slides as slides

with slides.Presentation() as presentation:
    chart = presentation.slides[0].shapes.add_chart(slides.charts.ChartType.PIE, 50, 50, 500, 400)
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True
    chart.chart_data.series[0].labels.default_data_label_format.show_label_as_data_callout = True
    chart.chart_data.series[0].labels[2].data_label_format.show_label_as_data_callout = False
    presentation.save("DisplayChartLabels_out.pptx", slides.export.SaveFormat.PPTX)

تنظیم حاشیه‌نویسی برای نمودار دونات

Aspose.Slides برای Python از طریق .NET امکان تنظیم شکل حاشیه‌نویسی برچسب دادهٔ سری برای نمودار دونات را فراهم می‌کند. نمونه کد زیر ارائه شده است.

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

with slides.Presentation() as pres:
    slide = pres.slides[0]
    chart = slide.shapes.add_chart(charts.ChartType.DOUGHNUT, 10, 10, 500, 500, False)
    workBook = chart.chart_data.chart_data_workbook
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()
    chart.has_legend = False
    seriesIndex = 0
    while seriesIndex < 15:
        series = chart.chart_data.series.add(workBook.get_cell(0, 0, seriesIndex + 1, "SERIES " + str(seriesIndex)), chart.type)
        series.explosion = 0
        series.parent_series_group.doughnut_hole_size = 20
        series.parent_series_group.first_slice_angle = 351
        seriesIndex += 1
    categoryIndex = 0
    while categoryIndex < 15:
        chart.chart_data.categories.add(workBook.get_cell(0, categoryIndex + 1, 0, "CATEGORY " + str(categoryIndex)))
        i = 0
        while i < len(chart.chart_data.series):
            iCS = chart.chart_data.series[i]
            dataPoint = iCS.data_points.add_data_point_for_doughnut_series(workBook.get_cell(0, categoryIndex + 1, i + 1, 1))
            dataPoint.format.fill.fill_type = slides.FillType.SOLID
            dataPoint.format.line.fill_format.fill_type = slides.FillType.SOLID
            dataPoint.format.line.fill_format.solid_fill_color.color = draw.Color.white
            dataPoint.format.line.width = 1
            dataPoint.format.line.style = slides.LineStyle.SINGLE
            dataPoint.format.line.dash_style = slides.LineDashStyle.SOLID
            if i == len(chart.chart_data.series) - 1:
                lbl = dataPoint.label
                lbl.text_format.text_block_format.autofit_type = slides.TextAutofitType.SHAPE
                lbl.data_label_format.text_format.portion_format.font_bold = 1
                lbl.data_label_format.text_format.portion_format.latin_font = slides.FontData("DINPro-Bold")
                lbl.data_label_format.text_format.portion_format.font_height = 12
                lbl.data_label_format.text_format.portion_format.fill_format.fill_type = slides.FillType.SOLID
                lbl.data_label_format.text_format.portion_format.fill_format.solid_fill_color.color = draw.Color.light_gray
                lbl.data_label_format.format.line.fill_format.solid_fill_color.color = draw.Color.white
                lbl.data_label_format.show_value = False
                lbl.data_label_format.show_category_name = True
                lbl.data_label_format.show_series_name = False
                lbl.data_label_format.show_leader_lines = True
                lbl.data_label_format.show_label_as_data_callout = False
                chart.validate_chart_layout()
                lbl.as_i_layoutable.x += 0.5
                lbl.as_i_layoutable.y += 0.5
            i += 1
        categoryIndex +=1 
    pres.save("chart.pptx", slides.export.SaveFormat.PPTX)

سوالات متداول

آیا حاشیه‌نویسی‌ها هنگام تبدیل یک ارائه به PDF، HTML5، SVG یا تصاویر حفظ می‌شوند؟

بله. حاشیه‌نویسی‌ها بخشی از رندر نمودار هستند، بنابراین هنگام صادرات به PDF، HTML5، SVG یا raster images، آن‌ها همراه با قالب‌بندی اسلاید حفظ می‌شوند.

آیا قلم‌های سفارشی در حاشیه‌نویسی‌ها کار می‌کنند و آیا می‌توان ظاهر آن‌ها را هنگام صادرات حفظ کرد؟

بله. Aspose.Slides از embedding fonts به ارائه پشتیبانی می‌کند و فرآیند وارد کردن قلم‌ها را در صادرات‌ها مانند PDF کنترل می‌نماید، به‌طوری‌که حاشیه‌نویسی‌ها در سیستم‌های مختلف ظاهر یکسانی داشته باشند.