Working with ChartSeries
Aspose.Words allows users to work with ChartSeriesCollection in a few ways.
Working with ChartSeriesCollection of Chart
Let’s look into ChartSeries collection. All chart series are available through ChartSeriesCollection:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Get chart series collection. | |
System::SharedPtr<ChartSeriesCollection> seriesColl = chart->get_Series(); | |
// Check series count. | |
std::cout << seriesColl->get_Count() << std::endl; |
Working with Single ChartSeries Class
Here is how to work with a particular series:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Get first series. | |
System::SharedPtr<ChartSeries> series0 = shape->get_Chart()->get_Series()->idx_get(0); | |
// Get second series. | |
System::SharedPtr<ChartSeries> series1 = shape->get_Chart()->get_Series()->idx_get(1); | |
// Change first series name. | |
series0->set_Name(u"My Name1"); | |
// Change second series name. | |
series1->set_Name(u"My Name2"); | |
// You can also specify whether the line connecting the points on the chart shall be smoothed using Catmull-Rom splines. | |
series0->set_Smooth(true); | |
series1->set_Smooth(true); |
Please see the result below:
All single ChartSeries have default ChartDataPoint options, please try using the following code to change them:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Specifies whether by default the parent element shall inverts its colors if the value is negative. | |
series0->set_InvertIfNegative(true); | |
// Set default marker symbol and size. | |
series0->get_Marker()->set_Symbol(MarkerSymbol::Circle); | |
series0->get_Marker()->set_Size(15); | |
series1->get_Marker()->set_Symbol(MarkerSymbol::Star); | |
series1->get_Marker()->set_Size(10); |
How to Work with Single ChartDataPoint of a ChartSeries
Using ChartDataPoint you can customize the formatting of a single data point of the chart series:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// The path to the documents directory. | |
System::String outputDataDir = GetOutputDataDir_WorkingWithCharts(); | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(); | |
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); | |
System::SharedPtr<Shape> shape = builder->InsertChart(ChartType::Line, 432, 252); | |
System::SharedPtr<Chart> chart = shape->get_Chart(); | |
// Get first series. | |
System::SharedPtr<ChartSeries> series0 = shape->get_Chart()->get_Series()->idx_get(0); | |
// Get second series. | |
System::SharedPtr<ChartSeries> series1 = shape->get_Chart()->get_Series()->idx_get(1); | |
System::SharedPtr<ChartDataPointCollection> dataPointCollection = series0->get_DataPoints(); | |
// Set explosion. | |
dataPointCollection->idx_get(0)->set_Explosion(50); | |
// Set marker symbol and size. | |
dataPointCollection->idx_get(0)->get_Marker()->set_Symbol(MarkerSymbol::Circle); | |
dataPointCollection->idx_get(0)->get_Marker()->set_Size(15); | |
dataPointCollection->idx_get(1)->get_Marker()->set_Symbol(MarkerSymbol::Diamond); | |
dataPointCollection->idx_get(1)->get_Marker()->set_Size(20); | |
// Add data point to the third point of the second series. | |
series1->get_DataPoints()->idx_get(2)->set_InvertIfNegative(true); | |
series1->get_DataPoints()->idx_get(2)->get_Marker()->set_Symbol(MarkerSymbol::Star); | |
series1->get_DataPoints()->idx_get(2)->get_Marker()->set_Size(20); | |
System::String outputPath = outputDataDir + u"WorkWithSingleChartDataPoint.docx"; | |
doc->Save(outputPath); |
Please see the result below: