Trend Line

Add Trend Line

Aspose.Slides for C++ provides a simple API for managing different chart Trend Lines:

  1. Create an instance of the Presentation class.
  2. Obtain a slide’s reference by its index.
  3. Add a chart with default data along with the any of desired type (this example uses ChartType.ClusteredColumn).
  4. Adding the exponential trend line for chart series 1.
  5. Adding a linear trend line for chart series 1.
  6. Adding a logarithmic trend line for chart series 2.
  7. Adding moving average trend line for chart series 2.
  8. Adding a polynomial trend line for chart series 3.
  9. Adding a power trend line for chart series 3.
  10. Write the modified presentation to a PPTX file.

The following code is used to create a chart with Trend Lines.

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/ChartTrendLines_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);
// Adding ponential trend line for chart series 1
SharedPtr<ITrendline> tredLinep = chart->get_ChartData()->get_Series()->idx_get(0)->get_TrendLines()->Add(Aspose::Slides::Charts::TrendlineType::Exponential);
tredLinep->set_DisplayEquation (false);
tredLinep->set_DisplayRSquaredValue( false);
// Adding Linear trend line for chart series 1
SharedPtr<ITrendline> tredLineLin = chart->get_ChartData()->get_Series()->idx_get(0)->get_TrendLines()->Add(Aspose::Slides::Charts::TrendlineType::Linear);
tredLineLin->set_TrendlineType(TrendlineType::Linear);
tredLineLin->get_Format()->get_Line()->get_FillFormat()->set_FillType(FillType::Solid);
tredLineLin->get_Format()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
// Adding Logarithmic trend line for chart series 2
SharedPtr<ITrendline> tredLineLog = chart->get_ChartData()->get_Series()->idx_get(1)->get_TrendLines()->Add(Aspose::Slides::Charts::TrendlineType::Logarithmic);
tredLineLog->set_TrendlineType(TrendlineType::Logarithmic);
tredLineLog->AddTextFrameForOverriding(u"New log trend line");
// Adding MovingAverage trend line for chart series 2
SharedPtr<ITrendline> tredLineMovAvg = chart->get_ChartData()->get_Series()->idx_get(1)->get_TrendLines()->Add(Aspose::Slides::Charts::TrendlineType::MovingAverage);
tredLineMovAvg->set_TrendlineType(TrendlineType::MovingAverage);
tredLineMovAvg->set_Period(3);
tredLineMovAvg->set_TrendlineName(u"New TrendLine Name");
// Adding Polynomial trend line for chart series 3
SharedPtr<ITrendline> tredLinePol = chart->get_ChartData()->get_Series()->idx_get(2)->get_TrendLines()->Add(Aspose::Slides::Charts::TrendlineType::Polynomial);
tredLinePol->set_TrendlineType(TrendlineType::Polynomial);
tredLinePol->set_Forward (1);
tredLinePol->set_Order (3);
// Adding Power trend line for chart series 3
SharedPtr<ITrendline> tredLinePower = chart->get_ChartData()->get_Series()->idx_get(1)->get_TrendLines()->Add(Aspose::Slides::Charts::TrendlineType::Power);
tredLinePower->set_TrendlineType( TrendlineType::Power);
tredLinePower->set_Backward( 1);
// Write the presentation file to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Add Custom Line

Aspose.Slides for C++ provides a simple API to add custom lines in a chart. To add a simple plain line to a selected slide of the presentation, please follow the steps below:

  • Create an instance of Presentation class
  • Obtain the reference of a slide by using its Index
  • Create a new chart using AddChart method exposed by Shapes object
  • Add an AutoShape of Line type using AddAutoShape method exposed by Shapes object
  • Set the Color of the shape lines.
  • Write the modified presentation as a PPTX file

The following code is used to create a chart with Custom Lines.

// The path to the documents directory.
const String outPath = u"../out/AddCustomLines.pptx";
// Load the desired the presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<IChart> chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 100, 100, 500, 400);
SharedPtr<IAutoShape> shape = chart->get_UserShapes()->get_Shapes()->AddAutoShape(ShapeType::Line, 0, chart->get_Height() / 2, chart->get_Width(), 0);
shape->get_LineFormat()->get_FillFormat()->set_FillType(FillType::Solid);
shape->get_LineFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Red());
//Write the PPTX to Disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);