使用 С++ 在演示文稿中管理图表数据标记
Contents
[
Hide
]
设置图表标记
Aspose.Slides for C++ 提供了一个简便的 API,可自动设置图表系列的标记。在以下示例中,每个图表系列将自动获得不同的默认标记符号。
下面的代码示例展示了如何自动设置图表系列的标记。
设置图表标记选项
可以在特定系列的图表数据点上设置标记。要设置图表标记选项,请按照以下步骤操作:
- 实例化Presentation类。
- 创建默认图表。
- 设置图片。
- 获取第一个图表系列。
- 添加一个新数据点。
- 将演示文稿写入磁盘。
在下面的示例中,我们在数据点级别设置了图表标记选项。
在系列数据点级别设置图表标记
现在,可以在特定系列的图表数据点上设置标记。要设置图表标记选项,请按照以下步骤操作:
- 实例化 Presentation 类。
- 创建默认图表。
- 设置图片。
- 获取第一个图表系列。
- 添加一个新数据点。
- 将演示文稿写入磁盘。
在下面的示例中,我们在数据点级别设置了图表标记选项。
const String outPath = u"../out/SetMarkerOptionsonSeries_out.pptx";
const String ImagePath = u"../templates/Tulips.jpg";
const String ImagePath2 = u"../templates/aspose - logo.jpg";
//实例化表示 PPTX 文件的 Presentation 类
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//访问第一张幻灯片
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// 添加默认数据的图表
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::LineWithMarkers, 0, 0, 500, 500);
// 设置图表数据表的索引
int defaultWorksheetIndex = 0;
// 获取图表数据工作表
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();
// 删除默认生成的系列和类别
chart->get_ChartData()->get_Series()->Clear();
// 现在,添加新系列
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());
// 获取图片
SharedPtr<IImage> image = Images::FromFile(ImagePath);
SharedPtr<IImage> image2 = Images::FromFile(ImagePath2);
// 将图片添加到演示文稿的图像集合
SharedPtr<IPPImage> imgx1 = pres->get_Images()->AddImage(image);
SharedPtr<IPPImage> imgx2 = pres->get_Images()->AddImage(image2);
image->Dispose();
image2->Dispose();
// 在此处添加新点 (1:3)。
SharedPtr<IChartDataPoint> point = series->get_DataPoints()->AddDataPointForLineSeries(fact->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box<double>(4.5)));
point->get_Marker()->get_Format()->get_Fill()->set_FillType(FillType::Picture);
point->get_Marker()->get_Format()->get_Fill()->get_PictureFillFormat()->get_Picture()->set_Image(imgx1);
point = series->get_DataPoints()->AddDataPointForLineSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(2.5)));
point->get_Marker()->get_Format()->get_Fill()->set_FillType(FillType::Picture);
point->get_Marker()->get_Format()->get_Fill()->get_PictureFillFormat()->get_Picture()->set_Image(imgx2);
point = series->get_DataPoints()->AddDataPointForLineSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(3.5)));
point->get_Marker()->get_Format()->get_Fill()->set_FillType(FillType::Picture);
point->get_Marker()->get_Format()->get_Fill()->get_PictureFillFormat()->get_Picture()->set_Image(imgx1);
point = series->get_DataPoints()->AddDataPointForLineSeries(fact->GetCell(defaultWorksheetIndex, 4, 1, ObjectExt::Box<double>(4.5)));
point->get_Marker()->get_Format()->get_Fill()->set_FillType(FillType::Picture);
point->get_Marker()->get_Format()->get_Fill()->get_PictureFillFormat()->get_Picture()->set_Image(imgx2);
// Changing the chart series marker
series->get_Marker()->set_Size(15);
// Write the presentation file to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
pres->Dispose();
为数据点应用颜色
您可以使用 Aspose.Slides for C++ 为图表中的数据点应用颜色。已添加 IChartDataPointLevelsManager 和 IChartDataPointLevel 类,以获取数据点级别属性的访问权限。本文演示了如何访问并为图表中的数据点应用颜色。
FAQ
有哪些标记形状是开箱即用的?
标准形状可用(圆形、方形、菱形、三角形等);列表由 MarkerStyleType 枚举定义。如果需要非标准形状,可使用图片填充的标记来模拟自定义视觉效果。
在将图表导出为图像或 SVG 时,标记是否会保留?