سفارشیسازی محورهای نمودار در ارائهها با استفاده از C++
نمای کلی
این مقاله توضیح میدهد که چگونه محورهای نمودار را در Aspose.Slides سفارشی کنید. نشان میدهد چگونه مقادیر واقعی محور را به دست آورید، دادهها را بین محورها جابهجا کنید، محور عمودی یا افقی را برای نمودارهای خطی مخفی کنید، نوع محور دستهای را تغییر دهید، قالب تاریخ برای مقادیر محور دستهای را تنظیم کنید، عنوان یک محور را بچرخانید، موقعیت محور را تعیین کنید و برچسب واحد را بر روی محور مقدار نمایش دهید.
دریافت مقادیر حداکثری در محور عمودی
Aspose.Slides for C++ به شما اجازه میدهد که مقادیر حداقل و حداکثر را در یک محور عمودی به دست آورید. این مراحل را دنبال کنید:
- یک نمونه از کلاس Presentation ایجاد کنید.
- به اولین اسلاید دسترسی پیدا کنید.
- یک نمودار با دادههای پیشفرض اضافه کنید.
- مقدار حداکثری واقعی محور را دریافت کنید.
- مقدار حداقل واقعی محور را دریافت کنید.
- واحد اصلی واقعی محور را دریافت کنید.
- واحد فرعی واقعی محور را دریافت کنید.
- مقیاس واحد اصلی واقعی محور را دریافت کنید.
- مقیاس واحد فرعی واقعی محور را دریافت کنید.
این کد نمونه—یک پیادهسازی از مراحل بالا—نشان میدهد چگونه مقادیر مورد نیاز را در C++ بدست آورید:
auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto chart = System::ExplicitCast<Chart>(shapes->AddChart(ChartType::Area, 100.0f, 100.0f, 500.0f, 350.0f));
chart->ValidateChartLayout();
auto axes = chart->get_Axes();
double maxValue = axes->get_VerticalAxis()->get_ActualMaxValue();
double minValue = axes->get_VerticalAxis()->get_ActualMinValue();
double majorUnit = axes->get_HorizontalAxis()->get_ActualMajorUnit();
double minorUnit = axes->get_HorizontalAxis()->get_ActualMinorUnit();
// ذخیرهٔ ارائه
pres->Save(u"ErrorBars_out.pptx", SaveFormat::Pptx);
تعویض دادهها بین محورها
Aspose.Slides به شما امکان میدهد به سرعت دادهها را بین محورها جابهجا کنید—دادههای نمایش داده شده در محور عمودی (محور y) به محور افقی (محور x) منتقل میشوند و بالعکس.
این کد C++ نشان میدهد چگونه عملیات تعویض دادهها بین محورهای یک نمودار را انجام دهید:
// ایجاد یک ارائه خالی
auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto chart = shapes->AddChart(ChartType::ClusteredColumn, 100.0f, 100.0f, 400.0f, 300.0f);
// ردیفها و ستونها را جابجا میکند
chart->get_ChartData()->SwitchRowColumn();
// ارائه را ذخیره میکند
pres->Save(u"SwitchChartRowColumns_out.pptx", SaveFormat::Pptx);
غیرفعال کردن محور عمودی برای نمودارهای خطی
این کد C++ نشان میدهد چگونه محور عمودی یک نمودار خطی را مخفی کنید:
auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto chart = shapes->AddChart(ChartType::Line, 100.0f, 100.0f, 400.0f, 300.0f);
chart->get_Axes()->get_VerticalAxis()->set_IsVisible(false);
pres->Save(u"chart.pptx", SaveFormat::Pptx);
غیرفعال کردن محور افقی برای نمودارهای خطی
این کد نشان میدهد چگونه محور افقی یک نمودار خطی را مخفی کنید:
auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto chart = shapes->AddChart(ChartType::Line, 100.0f, 100.0f, 400.0f, 300.0f);
chart->get_Axes()->get_HorizontalAxis()->set_IsVisible(false);
pres->Save(u"chart.pptx", SaveFormat::Pptx);
تغییر محور دستهای
با استفاده از متد set_CategoryAxisType() میتوانید نوع محور دستهای دلخواه خود را (date یا text) مشخص کنید. این کد در C++ عملیات را نمایش میدهد:
auto presentation = System::MakeObject<Presentation>(u"ExistingChart.pptx");
auto chart = System::AsCast<IChart>(presentation->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));
auto horizontalAxis = chart->get_Axes()->get_HorizontalAxis();
horizontalAxis->set_CategoryAxisType(CategoryAxisType::Date);
horizontalAxis->set_IsAutomaticMajorUnit(false);
horizontalAxis->set_MajorUnit(1);
horizontalAxis->set_MajorUnitScale(TimeUnitType::Months);
presentation->Save(u"ChangeChartCategoryAxis_out.pptx", SaveFormat::Pptx);
تنظیم قالب تاریخ برای مقادیر محور دستهای
Aspose.Slides for C++ به شما اجازه میدهد قالب تاریخ را برای مقدار یک محور دستهای تنظیم کنید. عملیات در این کد C++ نشان داده شده است:
auto pres = System::MakeObject<Presentation>();
auto chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::Area, 50.0f, 50.0f, 450.0f, 300.0f);
auto wb = chart->get_ChartData()->get_ChartDataWorkbook();
wb->Clear(0);
chart->get_ChartData()->get_Series()->Clear();
auto areaCategories = chart->get_ChartData()->get_Categories();
areaCategories->Clear();
areaCategories->Add(wb->GetCell(0, u"A2", ObjectExt::Box<double>(DateTime(2015, 1, 1).ToOADate())));
areaCategories->Add(wb->GetCell(0, u"A3", ObjectExt::Box<double>(DateTime(2016, 1, 1).ToOADate())));
areaCategories->Add(wb->GetCell(0, u"A4", ObjectExt::Box<double>(DateTime(2017, 1, 1).ToOADate())));
areaCategories->Add(wb->GetCell(0, u"A5", ObjectExt::Box<double>(DateTime(2018, 1, 1).ToOADate())));
auto series = chart->get_ChartData()->get_Series()->Add(ChartType::Line);
auto dataPoints = series->get_DataPoints();
dataPoints->AddDataPointForLineSeries(wb->GetCell(0, u"B2", ObjectExt::Box<int32_t>(1)));
dataPoints->AddDataPointForLineSeries(wb->GetCell(0, u"B3", ObjectExt::Box<int32_t>(2)));
dataPoints->AddDataPointForLineSeries(wb->GetCell(0, u"B4", ObjectExt::Box<int32_t>(3)));
dataPoints->AddDataPointForLineSeries(wb->GetCell(0, u"B5", ObjectExt::Box<int32_t>(4)));
auto horizontalAxis = chart->get_Axes()->get_HorizontalAxis();
horizontalAxis->set_CategoryAxisType(CategoryAxisType::Date);
horizontalAxis->set_IsNumberFormatLinkedToSource(false);
horizontalAxis->set_NumberFormat(u"yyyy");
pres->Save(u"test.pptx", SaveFormat::Pptx);
تنظیم زاویه چرخش برای عنوان محور
Aspose.Slides for C++ به شما اجازه میدهد زاویه چرخش را برای عنوان محور یک نمودار تنظیم کنید. این کد C++ عملیات را نشان میدهد:
auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto chart = shapes->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 450.0f, 300.0f);
auto verticalAxis = chart->get_Axes()->get_VerticalAxis();
verticalAxis->set_HasTitle(true);
verticalAxis->get_Title()->get_TextFormat()->get_TextBlockFormat()->set_RotationAngle(90.0f);
pres->Save(u"test.pptx", SaveFormat::Pptx);
تنظیم موقعیت محور در محور دستهای یا مقدار
Aspose.Slides for C++ به شما اجازه میدهد موقعیت محور را در یک محور دستهای یا مقدار تنظیم کنید. این کد C++ نشان میدهد چگونه این کار را انجام دهید:
auto pres = System::MakeObject<Presentation>();
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto chart = shapes->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 450.0f, 300.0f);
chart->get_Axes()->get_HorizontalAxis()->set_AxisBetweenCategories(true);
pres->Save(u"AsposeScatterChart.pptx", SaveFormat::Pptx);
فعالسازی نمایش برچسب واحد بر روی محور مقدار نمودار
Aspose.Slides for C++ به شما اجازه میدهد یک نمودار را طوری پیکربندی کنید که برچسب واحد را بر روی محور مقدار خود نشان دهد. این کد C++ عملیات را نمایش میدهد:
auto pres = System::MakeObject<Presentation>(u"Test.pptx");
auto shapes = pres->get_Slides()->idx_get(0)->get_Shapes();
auto chart = shapes->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 450.0f, 300.0f);
chart->get_Axes()->get_VerticalAxis()->set_DisplayUnit(DisplayUnitType::Millions);
pres->Save(u"Result.pptx", SaveFormat::Pptx);
سوالات متداول
چگونه مقدار تقاطع یک محور با محور دیگر (تقاطع محور) را تنظیم کنم؟
محورها یک تنظیم تقاطع ارائه میدهند: میتوانید انتخاب کنید که در صفر، در حداکثر دسته/مقدار یا در یک مقدار عددی مشخص تقاطع داشته باشند. این برای جابجایی محور X به بالا یا پایین یا برای تاکید بر یک خط پایه مفید است.
چگونه برچسبهای تیک را نسبت به محور موقعیتدهی کنم (در کنار، خارج، داخل)؟
موقعیت برچسب را به “cross”، “outside” یا “inside” تنظیم کنید. این بر خوانایی تاثیر میگذارد و به خصوص در نمودارهای کوچک به صرفهجویی در فضا کمک میکند.