Cálculos de Gráficos

Calcular Valores Reales de Elementos del Gráfico

Aspose.Slides para C++ proporciona una API sencilla para obtener estas propiedades. Esto te ayudará a calcular los valores reales de los elementos del gráfico. Los valores reales incluyen la posición de los elementos que implementan la interfaz IActualLayout (IActualLayout::get_ActualX(), IActualLayout::get_ActualY(), IActualLayout::get_ActualWidth(), IActualLayout::get_ActualHeight()) y los valores reales de los ejes (IAxis::get_ActualMaxValue(), IAxis::get_ActualMinValue(), IAxis::get_ActualMajorUnit(), IAxis::get_ActualMinorUnit(), IAxis::get_ActualMajorUnitScale(), IAxis::get_ActualMinorUnitScale()).

auto pres = System::MakeObject<Presentation>(u"test.pptx");
    
auto chart = System::ExplicitCast<Chart>(pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 100.0f, 100.0f, 500.0f, 350.0f));
chart->ValidateChartLayout();

double x = chart->get_PlotArea()->get_ActualX();
double y = chart->get_PlotArea()->get_ActualY();
double w = chart->get_PlotArea()->get_ActualWidth();
double h = chart->get_PlotArea()->get_ActualHeight();

// Guardando la presentación
pres->Save(u"Result.pptx", SaveFormat::Pptx);

Calcular Posición Real de Elementos de Gráfico Padre

Aspose.Slides para C++ proporciona una API sencilla para obtener estas propiedades. Los métodos de IActualLayout proporcionan información sobre la posición real del elemento de gráfico padre. Es necesario llamar al método IChart::ValidateChartLayout() previamente para llenar las propiedades con valores reales.

// Creando presentación vacía
auto pres = System::MakeObject<Presentation>();

auto chart = System::ExplicitCast<Chart>(pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 100.0f, 100.0f, 500.0f, 350.0f));
chart->ValidateChartLayout();

double x = chart->get_PlotArea()->get_ActualX();
double y = chart->get_PlotArea()->get_ActualY();
double w = chart->get_PlotArea()->get_ActualWidth();
double h = chart->get_PlotArea()->get_ActualHeight();

Ocultar Información del Gráfico

Este tema te ayuda a entender cómo ocultar información del gráfico. Usando Aspose.Slides para C++ puedes ocultar Título, Eje Vertical, Eje Horizontal y Líneas de Cuadrícula del gráfico. El siguiente ejemplo de código muestra cómo utilizar estas propiedades.

// The path to the documents directory.
const String outPath = u"../out/HideInformationFromChart.pptx";
// Load the desired the presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<IChart> chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::LineWithMarkers, 140, 118, 320, 370);
//Hiding chart Title
chart->set_HasTitle(false);
///Hiding Values axis
chart->get_Axes()->get_VerticalAxis()->set_IsVisible(false);
//Category Axis visibility
chart->get_Axes()->get_HorizontalAxis()->set_IsVisible(false);
//Hiding Legend
chart->set_HasLegend(false);
//Hiding MajorGridLines
chart->get_Axes()->get_HorizontalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType(FillType::NoFill);
for (int i = 0; i < chart->get_ChartData()->get_Series()->get_Count(); i++)
{
chart->get_ChartData()->get_Series()->RemoveAt(i);
}
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);
series->get_Marker()->set_Symbol(MarkerStyleType::Circle);
series->get_Labels()->get_DefaultDataLabelFormat()->set_ShowValue(true);
series->get_Labels()->get_DefaultDataLabelFormat()->set_Position(LegendDataLabelPosition::Top);
series->get_Marker()->set_Size(15);
//Setting series line color
series->get_Format()->get_Line()->get_FillFormat()->set_FillType(FillType::Solid);
series->get_Format()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Magenta());
series->get_Format()->get_Line()->set_DashStyle(LineDashStyle::Solid);
//Write the PPTX to Disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Establecer Rango de Datos para el Gráfico

Aspose.Slides para C++ ha proporcionado la API más sencilla para establecer el rango de datos para el gráfico de la manera más fácil. Para establecer el rango de datos para el gráfico:

  • Abre una instancia de la clase Presentation que contenga el gráfico.
  • Obtén la referencia de una diapositiva utilizando su índice.
  • Recorre todas las formas para encontrar el gráfico deseado.
  • Accede a los datos del gráfico y establece el rango.
  • Guarda la presentación modificada como un archivo PPTX.

Los ejemplos de código que siguen muestran cómo actualizar un gráfico.

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 templatePath = u"../templates/ExistingChart.pptx";
const String outPath = u"../out/DataRange_out.pptx";
//Instantiate Presentation class that represents PPTX file
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
//Access first slide
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Add chart with default data
// SharedPtr<IChart> chart = DynamicCast<Aspose::Slides::Charts::IChart>(slide->get_Shapes()->idx_get(0));
auto chart = DynamicCast<Aspose::Slides::Charts::Chart>(slide->get_Shapes()->idx_get(0));
//Not working
//Set data range
// chart->get_ChartData()->SetRange("Sheet1!A1:B4");
// Write the presentation file to disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);