Trabalhando com ChartSeries

Aspose.Words permite que os usuários trabalhem com ChartSeriesCollection de algumas maneiras.

Trabalhando com ChartSeriesCollection do Gráfico

Vamos dar uma olhada na coleção ChartSeries. Todas as séries de gráficos estão disponíveis através de 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;

Trabalhando com uma única classe ChartSeries

Veja como trabalhar com uma série específica:

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);

Veja o resultado abaixo:

work-with-chartseries-aspose-words-cpp-1

Todos os únicos ChartSeries têm opções padrão ChartDataPoint, tente usar o seguinte código para alterá - los:

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);

work-with-chartseries-aspose-words-cpp-2

Como trabalhar com um único ChartDataPoint de um ChartSeries

Usando ChartDataPoint você pode personalizar a formatação de um único ponto de dados da série de gráficos:

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);

Veja o resultado abaixo:

work-with-chartseries-aspose-words-cpp-3