Personalizar gráficos 3D en presentaciones usando PHP
Establecer las propiedades RotationX, RotationY y DepthPercents de un gráfico 3D
Aspose.Slides for PHP vía Java ofrece una API sencilla para establecer estas propiedades. El siguiente artículo le ayudará a establecer distintas propiedades como X,Y Rotation, DepthPercents, etc. El código de ejemplo muestra cómo aplicar la configuración de las propiedades mencionadas.
- Crear una instancia de la clase Presentation.
- Acceder a la primera diapositiva.
- Agregar un gráfico con datos predeterminados.
- Establecer las propiedades Rotation3D.
- Guardar la presentación modificada en un archivo PPTX.
$pres = new Presentation();
try {
# Acceder a la primera diapositiva
$slide = $pres->getSlides()->get_Item(0);
# Añadir gráfico con datos predeterminados
$chart = $slide->getShapes()->addChart(ChartType::StackedColumn3D, 0, 0, 500, 500);
# Establecer el índice de la hoja de datos del gráfico
$defaultWorksheetIndex = 0;
# Obtener la hoja de datos del gráfico
$fact = $chart->getChartData()->getChartDataWorkbook();
# Añadir series
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 1, "Series 1"), $chart->getType());
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 2, "Series 2"), $chart->getType());
# Añadir categorías
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 3, 0, "Caetegoty 3"));
# Establecer propiedades Rotation3D
$chart->getRotation3D()->setRightAngleAxes(true);
$chart->getRotation3D()->setRotationX(40);
$chart->getRotation3D()->setRotationY(270);
$chart->getRotation3D()->setDepthPercents(150);
# Obtener la segunda serie del gráfico
$series = $chart->getChartData()->getSeries()->get_Item(1);
# Ahora rellenando datos de la serie
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 1, 20));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 50));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 2, 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 2, 10));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 2, 60));
# Establecer valor OverLap
$series->getParentSeriesGroup()->setOverlap(100);
# Guardar la presentación en disco
$pres->save("Rotation3D_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Preguntas frecuentes
¿Qué tipos de gráficos admiten el modo 3D en Aspose.Slides?
Aspose.Slides admite variantes 3D de los gráficos de columnas, incluyendo Column 3D, Clustered Column 3D, Stacked Column 3D y 100% Stacked Column 3D, junto con los tipos 3D relacionados expuestos a través de la clase ChartType. Para obtener una lista exacta y actualizada, consulte los miembros de ChartType en la referencia de la API de la versión que tiene instalada.
¿Puedo obtener una imagen rasterizada de un gráfico 3D para un informe o la web?
Sí. Puede exportar un gráfico a una imagen mediante la chart API, o renderizar toda la diapositiva a formatos como PNG o JPEG. Esto resulta útil cuando necesita una vista previa píxel a píxel perfecta o quiere incrustar el gráfico en documentos, paneles de control o páginas web sin requerir PowerPoint.
¿Qué rendimiento tiene la creación y renderizado de gráficos 3D grandes?
El rendimiento depende del volumen de datos y la complejidad visual. Para obtener los mejores resultados, mantenga los efectos 3D al mínimo, evite texturas pesadas en paredes y áreas de trazado, limite la cantidad de puntos de datos por serie cuando sea posible y renderice a una salida de tamaño adecuado (resolución y dimensiones) para que coincida con la pantalla o las necesidades de impresión del destino.