Administrar marcadores de datos de gráficos en presentaciones usando C++
Establecer marcadores de gráfico
Aspose.Slides for C++ proporciona una API simple para establecer automáticamente el marcador de la serie del gráfico. En la siguiente característica, cada serie del gráfico obtendrá automáticamente un símbolo de marcador predeterminado diferente.
El siguiente ejemplo de código muestra cómo establecer automáticamente el marcador de la serie del gráfico.
Establecer opciones de marcador de gráfico
Los marcadores se pueden establecer en los puntos de datos del gráfico dentro de una serie específica. Para establecer opciones de marcadores de gráfico, siga los pasos a continuación:
- Instanciar la clase Presentation.
- Crear el gráfico predeterminado.
- Establecer la imagen.
- Obtener la primera serie del gráfico.
- Agregar un nuevo punto de datos.
- Guardar la presentación en disco.
En el ejemplo que se muestra a continuación, hemos establecido las opciones de marcador del gráfico a nivel de puntos de datos.
Establecer marcadores de gráfico a nivel de punto de datos de la serie
Ahora, los marcadores se pueden establecer en los puntos de datos del gráfico dentro de una serie específica. Para establecer opciones de marcadores de gráfico, siga los pasos a continuación:
- Instanciar la clase Presentation.
- Crear el gráfico predeterminado.
- Establecer la imagen.
- Obtener la primera serie del gráfico.
- Agregar un nuevo punto de datos.
- Guardar la presentación en disco.
En el ejemplo que se muestra a continuación, hemos establecido las opciones de marcador del gráfico a nivel de puntos de datos.
const String outPath = u"../out/SetMarkerOptionsonSeries_out.pptx";
const String ImagePath = u"../templates/Tulips.jpg";
const String ImagePath2 = u"../templates/aspose - logo.jpg";
//Instanciar la clase Presentation que representa un archivo PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//Acceder a la primera diapositiva
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
//Agregar un gráfico con datos predeterminados
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::LineWithMarkers, 0, 0, 500, 500);
//Establecer el índice de la hoja de datos del gráfico
int defaultWorksheetIndex = 0;
//Obtener la hoja de cálculo de datos del gráfico
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();
//Eliminar series y categorías generadas por defecto
chart->get_ChartData()->get_Series()->Clear();
//Ahora, agregar una nueva serie
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());
//Obtener la imagen
SharedPtr<IImage> image = Images::FromFile(ImagePath);
SharedPtr<IImage> image2 = Images::FromFile(ImagePath2);
//Agregar la imagen a la colección de imágenes de la presentación
SharedPtr<IPPImage> imgx1 = pres->get_Images()->AddImage(image);
SharedPtr<IPPImage> imgx2 = pres->get_Images()->AddImage(image2);
image->Dispose();
image2->Dispose();
//Agregar un nuevo punto (1:3) allí.
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);
//Cambiar el tamaño del marcador de la serie del gráfico
series->get_Marker()->set_Size(15);
//Write the presentation file to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
pres->Dispose();
Aplicar un color a los puntos de datos
Puede aplicar color a los puntos de datos en el gráfico usando Aspose.Slides for C++. Se han añadido las clases IChartDataPointLevelsManager y IChartDataPointLevel para acceder a las propiedades de los niveles de puntos de datos. Este artículo muestra cómo puede acceder y aplicar color a los puntos de datos en un gráfico.
Preguntas frecuentes
¿Qué formas de marcador están disponibles por defecto?
Las formas estándar están disponibles (círculo, cuadrado, rombo, triángulo, etc.); la lista está definida por la enumeración MarkerStyleType. Si necesita una forma no estándar, use un marcador con relleno de imagen para emular elementos visuales personalizados.
¿Se conservan los marcadores al exportar un gráfico a una imagen o SVG?
Sí. Al renderizar gráficos a formatos raster o al guardar formas como SVG, los marcadores conservan su apariencia y configuración, incluido el tamaño, el relleno y el contorno.