Formato de Gráficos
Formato de Entidades de Gráfico
Aspose.Slides para C++ permite a los desarrolladores agregar gráficos personalizados a sus diapositivas desde cero. Este artículo explica cómo formatear diferentes entidades de gráfico, incluidas las categorías de gráfico y el eje de valores.
Aspose.Slides para C++ proporciona una API simple para gestionar diferentes entidades de gráfico y formatearlas utilizando valores personalizados:
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva por su índice.
- Agregar un gráfico con datos predeterminados junto con cualquier tipo deseado (en este ejemplo utilizaremos ChartType.LineWithMarkers).
- Acceder al Eje de Valores del gráfico y establecer las siguientes propiedades:
- Configurar el formato de línea para las líneas de la cuadrícula Mayor del Eje de Valores
- Configurar el formato de línea para las líneas de la cuadrícula Menor del Eje de Valores
- Configurar el formato de número para el Eje de Valores
- Configurar las unidades Mínimas, Máximas, Mayores y Menores para el Eje de Valores
- Configurar las Propiedades de Texto para los datos del Eje de Valores
- Configurar el Título para el Eje de Valores
- Configurar el Formato de Línea para el Eje de Valores
- Acceder al Eje de Categoría del gráfico y establecer las siguientes propiedades:
- Configurar el formato de línea para las líneas de la cuadrícula Mayor del Eje de Categoría
- Configurar el formato de línea para las líneas de la cuadrícula Menor del Eje de Categoría
- Configurar las Propiedades de Texto para los datos del Eje de Categoría
- Configurar el Título para el Eje de Categoría
- Configurar la Posición de la Etiqueta para el Eje de Categoría
- Configurar el Ángulo de Rotación para las etiquetas del Eje de Categoría
- Acceder a la Leyenda del gráfico y establecer las Propiedades de Texto para ellas
- Mostrar las Leyendas del gráfico sin superponer el gráfico
- Acceder al Eje de Valores Secundario del gráfico y establecer las siguientes propiedades:
- Habilitar el Eje de Valores Secundario
- Configurar el Formato de Línea para el Eje de Valores Secundario
- Configurar el formato de número para el Eje de Valores Secundario
- Configurar las unidades Mínimas, Máximas, Mayores y Menores para el Eje de Valores Secundario
- Ahora dibujar la primera serie de gráficos en el Eje de Valores Secundario
- Establecer el color de fondo del gráfico
- Establecer el color de relleno del área de dibujo del gráfico
- Escribir la presentación modificada en un archivo PPTX
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 outPath = u"../out/FormatChart_out.pptx"; | |
//Instantiate Presentation class that represents PPTX file | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
//Access first slide | |
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0); | |
// Add chart with default data | |
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::LineWithMarkers, 0, 0, 500, 500); | |
// Setting Chart Titile | |
chart->set_HasTitle(true); | |
chart->get_ChartTitle()->AddTextFrameForOverriding(u""); | |
SharedPtr<IPortion> chartTitle = chart->get_ChartTitle()->get_TextFrameForOverriding()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0); | |
chartTitle->set_Text(u"Sample Chart"); | |
chartTitle->get_PortionFormat()->get_FillFormat()->set_FillType (FillType::Solid); | |
chartTitle->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color (System::Drawing::Color::get_Gray()); | |
chartTitle->get_PortionFormat()->set_FontHeight ( 20); | |
chartTitle->get_PortionFormat()->set_FontBold ( NullableBool::True); | |
chartTitle->get_PortionFormat()->set_FontItalic ( NullableBool::True); | |
// Setting Major grid lines format for value axis | |
chart->get_Axes()->get_VerticalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType (FillType::Solid); | |
chart->get_Axes()->get_VerticalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue()); | |
chart->get_Axes()->get_VerticalAxis()->get_MajorGridLinesFormat()->get_Line()->set_Width ( 5); | |
chart->get_Axes()->get_VerticalAxis()->get_MajorGridLinesFormat()->get_Line()->set_DashStyle (LineDashStyle::DashDot); | |
// Setting Minor grid lines format for value axis | |
chart->get_Axes()->get_VerticalAxis()->get_MinorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType(Aspose::Slides::FillType::Solid); | |
chart->get_Axes()->get_VerticalAxis()->get_MinorGridLinesFormat()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red()); | |
chart->get_Axes()->get_VerticalAxis()->get_MinorGridLinesFormat()->get_Line()->set_Width(3); | |
// Setting value axis number format | |
chart->get_Axes()->get_VerticalAxis()->set_IsNumberFormatLinkedToSource ( false); | |
chart->get_Axes()->get_VerticalAxis()->set_DisplayUnit ( DisplayUnitType::Thousands); | |
chart->get_Axes()->get_VerticalAxis()->set_NumberFormat(u"0.0%"); | |
// Setting chart maximum, minimum values | |
chart->get_Axes()->get_VerticalAxis()->set_IsAutomaticMajorUnit(false); | |
chart->get_Axes()->get_VerticalAxis()->set_IsAutomaticMaxValue(false); | |
chart->get_Axes()->get_VerticalAxis()->set_IsAutomaticMinorUnit(false); | |
chart->get_Axes()->get_VerticalAxis()->set_IsAutomaticMinValue(false); | |
chart->get_Axes()->get_VerticalAxis()->set_MaxValue (15); | |
chart->get_Axes()->get_VerticalAxis()->set_MinValue ( -2); | |
chart->get_Axes()->get_VerticalAxis()->set_MinorUnit ( 0.5); | |
chart->get_Axes()->get_VerticalAxis()->set_MajorUnit ( 2.0); | |
// Setting Value Axis Text Properties | |
SharedPtr<IChartPortionFormat> txtVal = chart->get_Axes()->get_VerticalAxis()->get_TextFormat()->get_PortionFormat(); | |
txtVal->set_FontBold ( NullableBool::True); | |
txtVal->set_FontHeight( 16); | |
txtVal->set_FontItalic ( NullableBool::True); | |
txtVal->get_FillFormat()->set_FillType ( FillType::Solid) ; | |
txtVal->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing:: Color::get_DarkGreen()); | |
SharedPtr<FontData> fontData = MakeObject<FontData>(u"Times New Roman"); | |
//FontDataFactory.CreateFontData //txtVal->set_LatinFont(MakeObject<IFontData>(u"Times New Roman")); | |
txtVal->set_LatinFont(fontData); | |
// Setting value axis title | |
chart->get_Axes()->get_VerticalAxis()->set_HasTitle(true); | |
chart->get_Axes()->get_VerticalAxis()->get_Title()->AddTextFrameForOverriding(u""); | |
SharedPtr<IPortion> valtitle = chart->get_Axes()->get_VerticalAxis()->get_Title()->get_TextFrameForOverriding()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0); | |
valtitle->set_Text(u"Primary Axis"); | |
valtitle->get_PortionFormat()->get_FillFormat()->set_FillType( FillType::Solid); | |
valtitle->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Gray()); | |
valtitle->get_PortionFormat()->set_FontHeight ( 20); | |
valtitle->get_PortionFormat()->set_FontBold (NullableBool::True); | |
valtitle->get_PortionFormat()->set_FontItalic ( NullableBool::True); | |
// Setting Major grid lines format for Category axis | |
chart->get_Axes()->get_HorizontalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType ( FillType::Solid); | |
chart->get_Axes()->get_HorizontalAxis()->get_MajorGridLinesFormat()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green()); | |
chart->get_Axes()->get_HorizontalAxis()->get_MajorGridLinesFormat()->get_Line()->set_Width( 5); | |
// Setting Minor grid lines format for Category axis | |
chart->get_Axes()->get_HorizontalAxis()->get_MinorGridLinesFormat()->get_Line()->get_FillFormat()->set_FillType(FillType::Solid); | |
chart->get_Axes()->get_HorizontalAxis()->get_MinorGridLinesFormat()->get_Line()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Yellow()); | |
chart->get_Axes()->get_HorizontalAxis()->get_MinorGridLinesFormat()->get_Line()->set_Width(3); | |
// Setting Category Axis Text Properties | |
SharedPtr<IChartPortionFormat> txtCat = chart->get_Axes()->get_HorizontalAxis()->get_TextFormat()->get_PortionFormat(); | |
txtCat->set_FontBold (NullableBool::True); | |
txtCat->set_FontHeight ( 16); | |
txtCat->set_FontItalic ( NullableBool::True); | |
txtCat->get_FillFormat()->set_FillType( FillType::Solid) ; | |
txtCat->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue()); | |
SharedPtr<FontData> Arial = MakeObject<FontData>(u"Arial"); | |
txtCat->set_LatinFont(Arial); | |
// Setting Category Titile | |
chart->get_Axes()->get_HorizontalAxis()->set_HasTitle ( true); | |
chart->get_Axes()->get_HorizontalAxis()->get_Title()->AddTextFrameForOverriding(u""); | |
SharedPtr<IPortion> catTitle = chart->get_Axes()->get_HorizontalAxis()->get_Title()->get_TextFrameForOverriding()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0); | |
catTitle->set_Text(u"Sample Category"); | |
catTitle->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid); | |
catTitle->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Gray()); | |
catTitle->get_PortionFormat()->set_FontHeight( 20); | |
catTitle->get_PortionFormat()->set_FontBold (NullableBool::True); | |
catTitle->get_PortionFormat()->set_FontItalic ( NullableBool::True); | |
// Setting category axis lable position | |
chart->get_Axes()->get_HorizontalAxis()->set_TickLabelPosition( TickLabelPositionType::Low); | |
// Setting category axis lable rotation angle | |
chart->get_Axes()->get_HorizontalAxis()->set_TickLabelRotationAngle ( 45); | |
// Setting Legends Text Properties | |
SharedPtr<IChartPortionFormat> txtleg = chart->get_Legend()->get_TextFormat()->get_PortionFormat(); | |
txtleg->set_FontBold ( NullableBool::True); | |
txtleg->set_FontHeight ( 16); | |
txtleg->set_FontItalic (NullableBool::True); | |
txtleg->get_FillFormat()->set_FillType (FillType::Solid) ; | |
txtleg->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_DarkRed()); | |
// Set show chart legends without overlapping chart | |
chart->get_Legend()->set_Overlay( true); | |
// Ploting first series on secondary value axis | |
// Chart.ChartData.Series[0].PlotOnSecondAxis = true; | |
// Setting chart back wall color | |
chart->get_BackWall()->set_Thickness( 1); | |
chart->get_BackWall()->get_Format()->get_Fill()->set_FillType( FillType::Solid); | |
chart->get_BackWall()->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Orange()); | |
chart->get_Floor()->get_Format()->get_Fill()->set_FillType(FillType::Solid); | |
chart->get_Floor()->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red()); | |
// Setting Plot area color | |
chart->get_PlotArea()->get_Format()->get_Fill()->set_FillType(FillType::Solid); | |
chart->get_PlotArea()->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_LightCyan()); | |
// Write the presentation file to disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Configurar Propiedades de Fuente para el Gráfico
Aspose.Slides para C++ proporciona soporte para configurar las propiedades relacionadas con la fuente para el gráfico. Siga los pasos a continuación para configurar las propiedades de la fuente para el gráfico.
- Instanciar un objeto de la clase Presentation.
- Agregar un gráfico en la diapositiva.
- Establecer la altura de la fuente.
- Guardar la presentación modificada.
Se proporciona un ejemplo de muestra a continuación.
// The path to the documents directory. | |
const String outPath = u"../out/FontPropertiesForChart.pptx"; | |
//Instantiate Presentation class that represents PPTX file | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
SharedPtr<IChart> chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 100, 100, 500, 400); | |
chart->get_TextFormat()->get_PortionFormat()->set_FontHeight(20); | |
chart->get_ChartData()->get_Series()->idx_get(0)->get_Labels()->get_DefaultDataLabelFormat()->set_ShowValue(true); | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Configurar Propiedades de Fuente para la Tabla de Datos del Gráfico
Aspose.Slides para C++ proporciona soporte para cambiar el color de las categorías en un color de serie.
- Instanciar un objeto de la clase Presentation.
- Agregar un gráfico en la diapositiva.
- Configurar la tabla del gráfico.
- Establecer la altura de la fuente.
- Guardar la presentación modificada.
Se proporciona un ejemplo de muestra a continuación.
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 outPath = u"../out/SettingFontPropertiesForChartDataTable_out.pptx"; | |
//Instantiate Presentation class that represents PPTX file | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
//Access first slide | |
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0); | |
// Add chart with default data | |
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500); | |
//Setting chart data table | |
chart->set_HasDataTable(true); | |
//Setting font properties | |
chart->get_ChartDataTable()->get_TextFormat()->get_PortionFormat()->set_FontBold (NullableBool::True); | |
chart->get_ChartDataTable()->get_TextFormat()->get_PortionFormat()->set_FontHeight ( 20); | |
// Write the presentation file to disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Configurar Bordes Redondeados del Área del Gráfico
Aspose.Slides para C++ proporciona soporte para configurar el área del gráfico. IChart.HasRoundedCorners y Chart.HasRoundedCorners se han añadido en Aspose.Slides.
- Instanciar un objeto de la clase Presentation.
- Agregar un gráfico en la diapositiva.
- Establecer el tipo de relleno y el color de relleno del gráfico
- Establecer la propiedad de esquina redondeada en Verdadero.
- Guardar la presentación modificada.
Se proporciona un ejemplo de muestra a continuación.
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 outPath = u"../out/SettingChartAreaRoundedBorders_out.pptx"; | |
//Instantiate Presentation class that represents PPTX file | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
//Access first slide | |
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0); | |
// Add chart with default data | |
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500); | |
chart->get_LineFormat()->get_FillFormat()->set_FillType(FillType::Solid); | |
chart->get_LineFormat()->set_Style(LineStyle::Single); | |
chart->set_HasRoundedCorners ( true); | |
// Write the presentation file to disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Configurar Números de Datos del Gráfico
Aspose.Slides para C++ proporciona una API simple para gestionar el formato de los datos del gráfico:
- Crear una instancia de la Presentation clase.
- Obtener la referencia de una diapositiva por su índice.
- Agregar un gráfico con datos predeterminados junto con cualquiera de los tipos deseados (este ejemplo utiliza ChartType.ClusteredColumn).
- Establecer el formato de número preestablecido de los posibles valores preestablecidos.
- Recorrer la celda de datos del gráfico en cada serie de gráficos y establecer el formato de número de datos del gráfico.
- Guardar la presentación.
- Establecer el formato de número personalizado.
- Recorrer la celda de datos del gráfico dentro de cada serie de gráficos y establecer un formato de número de datos del gráfico diferente.
- Guardar la presentación.
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 outPath = u"../out/NumberFormat_out.pptx"; | |
//Instantiate Presentation class that represents PPTX file | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
//Access first slide | |
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0); | |
// Add chart with default data | |
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500); | |
// Accessing the chart series collection | |
SharedPtr<IChartSeriesCollection> seriesCollection = chart->get_ChartData()->get_Series(); | |
// Setting the preset number format | |
// Traverse through every chart series | |
for(int i = 0; i < seriesCollection->get_Count();i++) | |
{ | |
auto series = seriesCollection->idx_get(i); | |
// Traverse through every data cell in series | |
for(int j=0;j<series->get_DataPoints()->get_Count();j++) | |
{ | |
auto cell = series->get_DataPoints()->idx_get(j); | |
// Setting the number format | |
cell->get_Value()->get_AsCell()->set_PresetNumberFormat (10); //0.00% | |
} | |
} | |
// Write the presentation file to disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Los posibles valores de formato de número preestablecidos junto con su índice preestablecido que se pueden usar se indican a continuación: |
---|
0 | General |
---|---|
1 | 0 |
2 | 0.00 |
3 | #,##0 |
4 | #,##0.00 |
5 | $#,##0;$-#,##0 |
6 | $#,##0;Rojo$-#,##0 |
7 | $#,##0.00;$-#,##0.00 |
8 | $#,##0.00;Rojo$-#,##0.00 |
9 | 0% |
10 | 0.00% |
11 | 0.00E+00 |
12 | # ?/? |
13 | # / |
14 | d/m/aa |
15 | d-mmm-aa |
16 | d-mmm |
17 | mmm-aa |
18 | h:mm AM/PM |
19 | h:mm:ss AM/PM |
20 | h:mm |
21 | h:mm:ss |
22 | d/m/aa h:mm |
37 | #,##0;-#,##0 |
38 | #,##0;Rojo-#,##0 |
39 | #,##0.00;-#,##0.00 |
40 | #,##0.00;Rojo-#,##0.00 |
41 | _ * #,##0_ ;_ * “_ ;_ @_ |
42 | _ $* #,##0_ ;_ $* “_ ;_ @_ |
43 | _ * #,##0.00_ ;_ * “??_ ;_ @_ |
44 | _ $* #,##0.00_ ;_ $* “??_ ;_ @_ |
45 | mm:ss |
46 | h :mm:ss |
47 | mm:ss.0 |
48 | ##0.0E+00 |
49 | @ |