تنسيق الرسم البياني

تنسيق كائنات الرسم البياني

Aspose.Slides لـ C++ يتيح للمطورين إضافة الرسوم البيانية المخصصة إلى الشرائح من الصفر. تشرح هذه المقالة كيفية تنسيق كائنات الرسم البياني المختلفة بما في ذلك محور الفئة محور القيم.

Aspose.Slides لـ C++ يوفر واجهة برمجة تطبيقات بسيطة لإدارة كائنات الرسم البياني المختلفة وتنسيقها باستخدام القيم المخصصة:

  1. إنشاء مثيل من Presentation class.
  2. الحصول على مرجع الشريحة بواسطة فهرسها.
  3. إضافة رسم بياني مع بيانات افتراضية مع أي نوع مرغوب (في هذا المثال سنستخدم ChartType.LineWithMarkers).
  4. الوصول إلى محور القيم وضبط الخصائص التالية:
    1. تعيين تنسيق الخط لخطوط الشبكة الرئيسية لمحور القيمة
    2. تعيين تنسيق الخط لخطوط الشبكة الثانوية لمحور القيمة
    3. تعيين تنسيق الرقم لماكينة القيم
    4. تعيين الوحدات الدنيا، العليا، الرئيسية والثانوية لماكينة القيم
    5. تعيين خصائص النص لبيانات محور القيمة
    6. تعيين العنوان لماكينة القيم
    7. تعيين تنسيق الخط لماكينة القيم
  5. الوصول إلى محور الفئة وضبط الخصائص التالية:
    1. تعيين تنسيق الخط لخطوط الشبكة الرئيسية لمحور الفئة
    2. تعيين تنسيق الخط لخطوط الشبكة الثانوية لمحور الفئة
    3. تعيين خصائص النص لبيانات محور الفئة
    4. تعيين العنوان لماكينة الفئة
    5. تعيين موقع التسمية لماكينة الفئة
    6. تعيين زاوية الدوران لتسميات محور الفئة
  6. الوصول إلى وسيلة إيضاح الرسم البياني وضبط خصائص النص لها
  7. عرض وسائط الرسم البياني بدون تداخل
  8. الوصول إلى محور القيم الثانوي لرسم البياني وضبط الخصائص التالية:
    1. تفعيل محور القيم الثانوي
    2. تعيين تنسيق الخط لماكينة القيم الثانوية
    3. تعيين تنسيق الرقم لماكينة القيم الثانوية
    4. تعيين الوحدات الدنيا، العليا، الرئيسية والثانوية لماكينة القيم الثانوية
  9. الآن رسم السلسلة الأولى للرسم البياني على محور القيم الثانوي
  10. تعيين جدار الخلفية للرسم البياني لملء اللون
  11. تعيين لون ملء منطقة الرسم البياني
  12. كتابة العرض المعدل إلى ملف PPTX
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String outPath = u"../out/FormatChart_out.pptx";
//Instantiate Presentation class that represents PPTX file
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//Access first slide
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Add chart with default data
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::LineWithMarkers, 0, 0, 500, 500);
// Setting Chart Titile
chart->set_HasTitle(true);
chart->get_ChartTitle()->AddTextFrameForOverriding(u"");
SharedPtr<IPortion> chartTitle = chart->get_ChartTitle()->get_TextFrameForOverriding()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0);
chartTitle->set_Text(u"Sample Chart");
chartTitle->get_PortionFormat()->get_FillFormat()->set_FillType (FillType::Solid);
chartTitle->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color (System::Drawing::Color::get_Gray());
chartTitle->get_PortionFormat()->set_FontHeight ( 20);
chartTitle->get_PortionFormat()->set_FontBold ( NullableBool::True);
chartTitle->get_PortionFormat()->set_FontItalic ( NullableBool::True);
// Setting Major grid lines format for value axis
chart->get_Axes()->get_VerticalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType (FillType::Solid);
chart->get_Axes()->get_VerticalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());
chart->get_Axes()->get_VerticalAxis()->get_MajorGridLinesFormat()->get_Line()->set_Width ( 5);
chart->get_Axes()->get_VerticalAxis()->get_MajorGridLinesFormat()->get_Line()->set_DashStyle (LineDashStyle::DashDot);
// Setting Minor grid lines format for value axis
chart->get_Axes()->get_VerticalAxis()->get_MinorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType(Aspose::Slides::FillType::Solid);
chart->get_Axes()->get_VerticalAxis()->get_MinorGridLinesFormat()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
chart->get_Axes()->get_VerticalAxis()->get_MinorGridLinesFormat()->get_Line()->set_Width(3);
// Setting value axis number format
chart->get_Axes()->get_VerticalAxis()->set_IsNumberFormatLinkedToSource ( false);
chart->get_Axes()->get_VerticalAxis()->set_DisplayUnit ( DisplayUnitType::Thousands);
chart->get_Axes()->get_VerticalAxis()->set_NumberFormat(u"0.0%");
// Setting chart maximum, minimum values
chart->get_Axes()->get_VerticalAxis()->set_IsAutomaticMajorUnit(false);
chart->get_Axes()->get_VerticalAxis()->set_IsAutomaticMaxValue(false);
chart->get_Axes()->get_VerticalAxis()->set_IsAutomaticMinorUnit(false);
chart->get_Axes()->get_VerticalAxis()->set_IsAutomaticMinValue(false);
chart->get_Axes()->get_VerticalAxis()->set_MaxValue (15);
chart->get_Axes()->get_VerticalAxis()->set_MinValue ( -2);
chart->get_Axes()->get_VerticalAxis()->set_MinorUnit ( 0.5);
chart->get_Axes()->get_VerticalAxis()->set_MajorUnit ( 2.0);
// Setting Value Axis Text Properties
SharedPtr<IChartPortionFormat> txtVal = chart->get_Axes()->get_VerticalAxis()->get_TextFormat()->get_PortionFormat();
txtVal->set_FontBold ( NullableBool::True);
txtVal->set_FontHeight( 16);
txtVal->set_FontItalic ( NullableBool::True);
txtVal->get_FillFormat()->set_FillType ( FillType::Solid) ;
txtVal->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing:: Color::get_DarkGreen());
SharedPtr<FontData> fontData = MakeObject<FontData>(u"Times New Roman");
//FontDataFactory.CreateFontData //txtVal->set_LatinFont(MakeObject<IFontData>(u"Times New Roman"));
txtVal->set_LatinFont(fontData);
// Setting value axis title
chart->get_Axes()->get_VerticalAxis()->set_HasTitle(true);
chart->get_Axes()->get_VerticalAxis()->get_Title()->AddTextFrameForOverriding(u"");
SharedPtr<IPortion> valtitle = chart->get_Axes()->get_VerticalAxis()->get_Title()->get_TextFrameForOverriding()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0);
valtitle->set_Text(u"Primary Axis");
valtitle->get_PortionFormat()->get_FillFormat()->set_FillType( FillType::Solid);
valtitle->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Gray());
valtitle->get_PortionFormat()->set_FontHeight ( 20);
valtitle->get_PortionFormat()->set_FontBold (NullableBool::True);
valtitle->get_PortionFormat()->set_FontItalic ( NullableBool::True);
// Setting Major grid lines format for Category axis
chart->get_Axes()->get_HorizontalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType ( FillType::Solid);
chart->get_Axes()->get_HorizontalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green());
chart->get_Axes()->get_HorizontalAxis()->get_MajorGridLinesFormat()->get_Line()->set_Width( 5);
// Setting Minor grid lines format for Category axis
chart->get_Axes()->get_HorizontalAxis()->get_MinorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType(FillType::Solid);
chart->get_Axes()->get_HorizontalAxis()->get_MinorGridLinesFormat()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Yellow());
chart->get_Axes()->get_HorizontalAxis()->get_MinorGridLinesFormat()->get_Line()->set_Width(3);
// Setting Category Axis Text Properties
SharedPtr<IChartPortionFormat> txtCat = chart->get_Axes()->get_HorizontalAxis()->get_TextFormat()->get_PortionFormat();
txtCat->set_FontBold (NullableBool::True);
txtCat->set_FontHeight ( 16);
txtCat->set_FontItalic ( NullableBool::True);
txtCat->get_FillFormat()->set_FillType( FillType::Solid) ;
txtCat->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());
SharedPtr<FontData> Arial = MakeObject<FontData>(u"Arial");
txtCat->set_LatinFont(Arial);
// Setting Category Titile
chart->get_Axes()->get_HorizontalAxis()->set_HasTitle ( true);
chart->get_Axes()->get_HorizontalAxis()->get_Title()->AddTextFrameForOverriding(u"");
SharedPtr<IPortion> catTitle = chart->get_Axes()->get_HorizontalAxis()->get_Title()->get_TextFrameForOverriding()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0);
catTitle->set_Text(u"Sample Category");
catTitle->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid);
catTitle->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Gray());
catTitle->get_PortionFormat()->set_FontHeight( 20);
catTitle->get_PortionFormat()->set_FontBold (NullableBool::True);
catTitle->get_PortionFormat()->set_FontItalic ( NullableBool::True);
// Setting category axis lable position
chart->get_Axes()->get_HorizontalAxis()->set_TickLabelPosition( TickLabelPositionType::Low);
// Setting category axis lable rotation angle
chart->get_Axes()->get_HorizontalAxis()->set_TickLabelRotationAngle ( 45);
// Setting Legends Text Properties
SharedPtr<IChartPortionFormat> txtleg = chart->get_Legend()->get_TextFormat()->get_PortionFormat();
txtleg->set_FontBold ( NullableBool::True);
txtleg->set_FontHeight ( 16);
txtleg->set_FontItalic (NullableBool::True);
txtleg->get_FillFormat()->set_FillType (FillType::Solid) ;
txtleg->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_DarkRed());
// Set show chart legends without overlapping chart
chart->get_Legend()->set_Overlay( true);
// Ploting first series on secondary value axis
// Chart.ChartData.Series[0].PlotOnSecondAxis = true;
// Setting chart back wall color
chart->get_BackWall()->set_Thickness( 1);
chart->get_BackWall()->get_Format()->get_Fill()->set_FillType( FillType::Solid);
chart->get_BackWall()->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Orange());
chart->get_Floor()->get_Format()->get_Fill()->set_FillType(FillType::Solid);
chart->get_Floor()->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
// Setting Plot area color
chart->get_PlotArea()->get_Format()->get_Fill()->set_FillType(FillType::Solid);
chart->get_PlotArea()->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_LightCyan());
// Write the presentation file to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

تعيين خصائص الخط للرسم البياني

Aspose.Slides لـ C++ يوفر دعمًا لتعيين خصائص الخط المتعلقة بالرسم البياني. يرجى اتباع الخطوات أدناه لتعيين خصائص الخط للرسم البياني.

  • إنشاء كائن من Presentation class.
  • إضافة الرسم البياني على الشريحة.
  • تعيين ارتفاع الخط.
  • حفظ العرض المعدل.

مثال عينة أدناه مرفق.

// The path to the documents directory.
const String outPath = u"../out/FontPropertiesForChart.pptx";
//Instantiate Presentation class that represents PPTX file
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<IChart> chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 100, 100, 500, 400);
chart->get_TextFormat()->get_PortionFormat()->set_FontHeight(20);
chart->get_ChartData()->get_Series()->idx_get(0)->get_Labels()->get_DefaultDataLabelFormat()->set_ShowValue(true);
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

تعيين خصائص الخط لجدول بيانات الرسم البياني

Aspose.Slides لـ C++ يوفر دعمًا لتغيير لون الفئات في سلسلة اللون.

  1. إنشاء كائن من Presentation class.
  2. إضافة الرسم البياني على الشريحة.
  3. تعيين جدول الرسم البياني.
  4. تعيين ارتفاع الخط.
  5. حفظ العرض المعدل.

مثال عينة أدناه مرفق.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String outPath = u"../out/SettingFontPropertiesForChartDataTable_out.pptx";
//Instantiate Presentation class that represents PPTX file
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//Access first slide
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Add chart with default data
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);
//Setting chart data table
chart->set_HasDataTable(true);
//Setting font properties
chart->get_ChartDataTable()->get_TextFormat()->get_PortionFormat()->set_FontBold (NullableBool::True);
chart->get_ChartDataTable()->get_TextFormat()->get_PortionFormat()->set_FontHeight ( 20);
// Write the presentation file to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

تعيين زوايا حواف منطقة الرسم البياني

Aspose.Slides لـ C++ يوفر دعمًا لتعيين منطقة الرسم البياني. تم إضافة خاصيتي IChart.HasRoundedCorners و Chart.HasRoundedCorners في Aspose.Slides.

  1. إنشاء كائن من Presentation class.
  2. إضافة الرسم البياني على الشريحة.
  3. تعيين نوع التعبئة ولون التعبئة للرسم البياني
  4. تعيين خاصية الزوايا المدورة إلى True.
  5. حفظ العرض المعدل.

مثال عينة أدناه مرفق.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String outPath = u"../out/SettingChartAreaRoundedBorders_out.pptx";
//Instantiate Presentation class that represents PPTX file
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//Access first slide
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Add chart with default data
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);
chart->get_LineFormat()->get_FillFormat()->set_FillType(FillType::Solid);
chart->get_LineFormat()->set_Style(LineStyle::Single);
chart->set_HasRoundedCorners ( true);
// Write the presentation file to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

تعيين أرقام بيانات الرسم البياني

Aspose.Slides لـ C++ يوفر واجهة برمجة تطبيقات بسيطة لإدارة تنسيق بيانات الرسم البياني:

  1. إنشاء مثيل من Presentation class.
  2. الحصول على مرجع الشريحة بواسطة فهرسها.
  3. إضافة الرسم البياني مع بيانات افتراضية مع أي نوع مرغوب (هذا المثال يستخدم ChartType.ClusteredColumn).
  4. تعيين تنسيق الرقم المسبق من القيم المسبقة الممكنة.
  5. التجول عبر خلايا بيانات الرسم البياني في كل سلسلة رسم بياني وتعيين تنسيق أرقام بيانات الرسم البياني.
  6. حفظ العرض.
  7. تعيين تنسيق الرقم المخصص.
  8. التجول عبر خلايا بيانات الرسم البياني داخل كل سلسلة وتعيين تنسيق رقم بيانات رسم بياني مختلف.
  9. حفظ العرض.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String outPath = u"../out/NumberFormat_out.pptx";
//Instantiate Presentation class that represents PPTX file
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//Access first slide
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Add chart with default data
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);
// Accessing the chart series collection
SharedPtr<IChartSeriesCollection> seriesCollection = chart->get_ChartData()->get_Series();
// Setting the preset number format
// Traverse through every chart series
for(int i = 0; i < seriesCollection->get_Count();i++)
{
auto series = seriesCollection->idx_get(i);
// Traverse through every data cell in series
for(int j=0;j<series->get_DataPoints()->get_Count();j++)
{
auto cell = series->get_DataPoints()->idx_get(j);
// Setting the number format
cell->get_Value()->get_AsCell()->set_PresetNumberFormat (10); //0.00%
}
}
// Write the presentation file to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
  قيم تنسيق الرقم المسبق الممكنة مع فهرسها المسبق والتي يمكن استخدامها مرفقة أدناه:
0 عام
1 0
2 0.00
3 #,##0
4 #,##0.00
5 $#,##0;$-#,##0
6 $#,##0;أحمر$-#,##0
7 $#,##0.00;$-#,##0.00
8 $#,##0.00;أحمر$-#,##0.00
9 0%
10 0.00%
11 0.00E+00
12 # ?/?
13 # /
14 م/ي/ي
15 ي-شهر-ي
16 ي-شهر
17 شهر-ي
18 س:د AM/PM
19 س:د:ث AM/PM
20 س:د
21 س:د:ث
22 م/ي/ي س:د
37 #,##0;-#,##0
38 #,##0;أحمر-#,##0
39 #,##0.00;-#,##0.00
40 #,##0.00;أحمر-#,##0.00
41 _ * #,##0_ ;_ * “_ ;_ @_
42 _ $* #,##0_ ;_ $* “_ ;_ @_
43 _ * #,##0.00_ ;_ * “??_ ;_ @_
44 _ $* #,##0.00_ ;_ $* “??_ ;_ @_
45 د:ث
46 س:د:ث
47 د:ث.0
48 ##0.0E+00
49 @