Formatage de Graphiques
Formatage des Éléments de Graphique
Aspose.Slides pour C++ permet aux développeurs d’ajouter des graphiques personnalisés à leurs diapositives depuis le début. Cet article explique comment formater différents éléments de graphique, y compris l’axe des catégories et l’axe des valeurs.
Aspose.Slides pour C++ fournit une API simple pour gérer différents éléments de graphique et les formater à l’aide de valeurs personnalisées :
- Créer une instance de la classe Presentation.
- Obtenir la référence d’une diapositive par son index.
- Ajouter un graphique avec des données par défaut ainsi que le type souhaité (dans cet exemple, nous utiliserons ChartType.LineWithMarkers).
- Accéder à l’axe des valeurs du graphique et définir les propriétés suivantes :
- Définir le format de ligne pour les lignes de grille majeures de l’axe des valeurs
- Définir le format de ligne pour les lignes de grille mineures de l’axe des valeurs
- Définir le format de nombre pour l’axe des valeurs
- Définir les unités Min, Max, Majeur et Mineur pour l’axe des valeurs
- Définir les propriétés de texte pour les données de l’axe des valeurs
- Définir le titre pour l’axe des valeurs
- Définir le format de ligne pour l’axe des valeurs
- Accéder à l’axe des catégories du graphique et définir les propriétés suivantes :
- Définir le format de ligne pour les lignes de grille majeures de l’axe des catégories
- Définir le format de ligne pour les lignes de grille mineures de l’axe des catégories
- Définir les propriétés de texte pour les données de l’axe des catégories
- Définir le titre pour l’axe des catégories
- Définir le positionnement des étiquettes pour l’axe des catégories
- Définir l’angle de rotation pour les étiquettes de l’axe des catégories
- Accéder à la légende du graphique et définir les propriétés de texte pour celles-ci
- Afficher les légendes du graphique sans chevauchement
- Accéder à l'axe des valeurs secondaires du graphique et définir les propriétés suivantes :
- Activer l'axe des valeurs secondaires
- Définir le format de ligne pour l’axe des valeurs secondaires
- Définir le format de nombre pour l’axe des valeurs secondaires
- Définir les unités Min, Max, Majeur et Mineur pour l’axe des valeurs secondaires
- Maintenant, tracer la première série de graphique sur l’axe des valeurs secondaires
- Définir le mur arrière du graphique pour remplir la couleur
- Définir la couleur de remplissage de la zone de traçage du graphique
- Écrire la présentation modifiée dans un fichier 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); | |
Définir les Propriétés de Police pour le Graphique
Aspose.Slides pour C++ prend en charge la définition des propriétés liées à la police pour le graphique. Veuillez suivre les étapes ci-dessous pour définir les propriétés de police pour le graphique.
- Instancier un objet de la classe Presentation.
- Ajouter un graphique à la diapositive.
- Définir la taille de la police.
- Enregistrer la présentation modifiée.
Un exemple d’échantillon ci-dessous est donné.
// 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); | |
Définir les Propriétés de Police pour le Tableau de Données du Graphique
Aspose.Slides pour C++ prend en charge le changement de couleur des catégories dans une série de couleurs.
- Instancier un objet de la classe Presentation.
- Ajouter un graphique à la diapositive.
- Définir le tableau du graphique.
- Définir la taille de la police.
- Enregistrer la présentation modifiée.
Un exemple d’échantillon ci-dessous est donné.
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); | |
Définir les Bordures Arrondies de la Zone de Graphique
Aspose.Slides pour C++ prend en charge la définition de la zone de graphique. Les propriétés IChart.HasRoundedCorners et Chart.HasRoundedCorners ont été ajoutées dans Aspose.Slides.
- Instancier un objet de la classe Presentation.
- Ajouter un graphique à la diapositive.
- Définir le type de remplissage et la couleur de remplissage du graphique.
- Définir la propriété coins arrondis à True.
- Enregistrer la présentation modifiée.
Un exemple d’échantillon ci-dessous est donné.
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); | |
Définir les Nombres de Données de Graphique
Aspose.Slides pour C++ fournit une API simple pour gérer le format des données de graphique :
- Créer une instance de la classe Presentation.
- Obtenir la référence d’une diapositive par son index.
- Ajouter un graphique avec des données par défaut ainsi que le type souhaité (cet exemple utilise ChartType.ClusteredColumn).
- Définir le format de nombre prédéfini à partir des valeurs prédéfinies possibles.
- Parcourir la cellule de données du graphique dans chaque série de graphique et définir le format de nombre des données du graphique.
- Enregistrer la présentation.
- Définir le format de nombre personnalisé.
- Parcourir la cellule de données du graphique à l’intérieur de chaque série de graphique et définir un format de nombre de données de graphique différent.
- Enregistrer la présentation.
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); | |
Les valeurs possibles de format de nombre prédéfini, ainsi que leur index prédéfini qui peuvent être utilisées, sont données ci-dessous : |
---|
0 | Général |
---|---|
1 | 0 |
2 | 0.00 |
3 | #,##0 |
4 | #,##0.00 |
5 | $#,##0;$-#,##0 |
6 | $#,##0;Rouge$-#,##0 |
7 | $#,##0.00;$-#,##0.00 |
8 | $#,##0.00;Rouge$-#,##0.00 |
9 | 0% |
10 | 0.00% |
11 | 0.00E+00 |
12 | # ?/? |
13 | # / |
14 | m/j/aa |
15 | j-mmm-aa |
16 | j-mmm |
17 | mmm-aa |
18 | h:mm AM/PM |
19 | h:mm:ss AM/PM |
20 | h:mm |
21 | h:mm:ss |
22 | m/j/aa h:mm |
37 | #,##0;-#,##0 |
38 | #,##0;Rouge-#,##0 |
39 | #,##0.00;-#,##0.00 |
40 | #,##0.00;Rouge-#,##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 | @ |