سفارشیسازی نمودارهای 3D در ارائهها با استفاده از Python
نمای کلی
این مقاله توضیح میدهد چگونه یک نمودار 3D را در Aspose.Slides با پیکربندی تنظیمات Rotation3D مانند setRotationX، setRotationY، setDepthPercents و setRightAngleAxes سفارشیسازی کنیم. این مقاله مراحلی از ایجاد یک ارائه، افزودن یک نمودار 3D با دادههای پیشفرض، اعمال تنظیمات نمای 3D مورد نیاز و ذخیره ارائه اصلاحشده بهصورت فایل PPTX را شرح میدهد.
تنظیم چرخش X، چرخش Y و عمق یک نمودار 3D
Aspose.Slides برای Python از طریق Java یک API ساده برای تنظیم این ویژگیها فراهم میکند. مثال زیر نشان میدهد چگونه چرخش X، چرخش Y و عمق یک نمودار 3D را تنظیم کنیم.
- یک نمونه از کلاس Presentation ایجاد کنید.
- به اولین اسلاید دسترسی پیدا کنید.
- یک نمودار با دادههای پیشفرض اضافه کنید.
- ویژگیهای چرخش 3D را تنظیم کنید.
- ارائه اصلاحشده را به یک فایل PPTX بنویسید.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ChartType, Presentation, SaveFormat
presentation = Presentation()
try:
# دسترسی به اولین اسلاید.
slide = presentation.getSlides().get_Item(0)
# افزودن یک نمودار با دادههای پیشفرض.
chart = slide.getShapes().addChart(ChartType.StackedColumn3D, 0, 0, 500, 500)
# تنظیم شاخص برگه کاری دادههای نمودار.
default_worksheet_index = 0
# دریافت دفتر کار دادههای نمودار.
workbook = chart.getChartData().getChartDataWorkbook()
# افزودن سریها.
series_cell = workbook.getCell(default_worksheet_index, 0, 1, "Series 1")
chart.getChartData().getSeries().add(series_cell, chart.getType())
series_cell = workbook.getCell(default_worksheet_index, 0, 2, "Series 2")
chart.getChartData().getSeries().add(series_cell, chart.getType())
# افزودن دستهها.
category_cell = workbook.getCell(default_worksheet_index, 1, 0, "Category 1")
chart.getChartData().getCategories().add(category_cell)
category_cell = workbook.getCell(default_worksheet_index, 2, 0, "Category 2")
chart.getChartData().getCategories().add(category_cell)
category_cell = workbook.getCell(default_worksheet_index, 3, 0, "Category 3")
chart.getChartData().getCategories().add(category_cell)
# تنظیم ویژگیهای چرخش 3D.
chart.getRotation3D().setRightAngleAxes(True)
chart.getRotation3D().setRotationX(jpype.JByte(40))
chart.getRotation3D().setRotationY(270)
chart.getRotation3D().setDepthPercents(150)
# دسترسی به سری دوم نمودار.
series = chart.getChartData().getSeries().get_Item(1)
# تکمیل دادههای سری.
data_cell = workbook.getCell(default_worksheet_index, 1, 1, jpype.JInt(20))
series.getDataPoints().addDataPointForBarSeries(data_cell)
data_cell = workbook.getCell(default_worksheet_index, 2, 1, jpype.JInt(50))
series.getDataPoints().addDataPointForBarSeries(data_cell)
data_cell = workbook.getCell(default_worksheet_index, 3, 1, jpype.JInt(30))
series.getDataPoints().addDataPointForBarSeries(data_cell)
data_cell = workbook.getCell(default_worksheet_index, 1, 2, jpype.JInt(30))
series.getDataPoints().addDataPointForBarSeries(data_cell)
data_cell = workbook.getCell(default_worksheet_index, 2, 2, jpype.JInt(10))
series.getDataPoints().addDataPointForBarSeries(data_cell)
data_cell = workbook.getCell(default_worksheet_index, 3, 2, jpype.JInt(60))
series.getDataPoints().addDataPointForBarSeries(data_cell)
# ذخیره ارائه.
presentation.save("Rotation3D_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
پرسشهای متداول
کدام نوع نمودارها از حالت 3D در Aspose.Slides پشتیبانی میکنند؟
Aspose.Slides انواع 3D نمودارهای ستونی را پشتیبانی میکند، از جمله Column 3D، Clustered Column 3D، Stacked Column 3D و 100% Stacked Column 3D، بههمراه انواع 3D مرتبط که از طریق کلاس ChartType در دسترس هستند. برای دریافت فهرست دقیق و بهروز، اعضای ChartType را در مرجع API نسخه نصبشده خود بررسی کنید.
آیا میتوانم تصویر رستر یک نمودار 3D برای گزارش یا وب دریافت کنم؟
بله. میتوانید یک نمودار را از طریق chart API به تصویر صادر کنید یا کل اسلاید را رندر کنید به فرمتهایی مانند PNG یا JPEG. این کار زمانی مفید است که نیاز به پیشنمایش دقیق پیکسلبهپیکسل دارید یا میخواهید نمودار را بدون نیاز به PowerPoint در اسناد، داشبوردها یا صفحات وب جاسازی کنید.
عملکرد ساخت و رندر نمودارهای 3D بزرگ چقدر است؟
عملکرد بستگی به حجم دادهها و پیچیدگی بصری دارد. برای بهترین نتایج، اثرات 3D را به حداقل برسانید، از بافتهای سنگین در دیوارها و نواحی نمودار پرهیز کنید، در صورت امکان تعداد نقاط داده در هر سری را محدود کنید و رندر را به خروجی با ابعاد و وضوح مناسب برای نمایش یا چاپ هدف انجام دهید.