Diagrammformatierung

Diagrammobjekte formatieren

Aspose.Slides für C++ ermöglicht es Entwicklern, benutzerdefinierte Diagramme von Grund auf in ihre Folien hinzuzufügen. Dieser Artikel erklärt, wie man verschiedene Diagrammobjekte, einschließlich der Achse für Kategorien und Werte, formatiert.

Aspose.Slides für C++ bietet eine einfache API zum Verwalten verschiedener Diagrammobjekte und deren Formatierung mit benutzerdefinierten Werten:

  1. Erstellen Sie eine Instanz der Presentation Klasse.
  2. Erhalten Sie eine Referenz auf eine Folie anhand ihres Index.
  3. Fügen Sie ein Diagramm mit Standarddaten und einem beliebigen gewünschten Typ hinzu (in diesem Beispiel verwenden wir ChartType.LineWithMarkers).
  4. Greifen Sie auf die Wertachse des Diagramms zu und setzen Sie die folgenden Eigenschaften:
    1. Einstellungen für das Linienformat der Hauptgitternetzlinien der Wertachse
    2. Einstellungen für das Linienformat der Nebengitternetzlinien der Wertachse
    3. Einstellungen für das Zahlenformat der Wertachse
    4. Einstellungen für Min-, Max-, Haupt- und Neben-Einheiten der Wertachse
    5. Einstellungen für die Text Eigenschaften der Daten der Wertachse
    6. Einstellungen für den Titel der Wertachse
    7. Einstellungen für das Linienformat der Wertachse
  5. Greifen Sie auf die Kategorienachse des Diagramms zu und setzen Sie die folgenden Eigenschaften:
    1. Einstellungen für das Linienformat der Hauptgitternetzlinien der Kategorienachse
    2. Einstellungen für das Linienformat der Nebengitternetzlinien der Kategorienachse
    3. Einstellungen für die Text Eigenschaften der Daten der Kategorienachse
    4. Einstellungen für den Titel der Kategorienachse
    5. Einstellungen für die Beschriftungsplatzierung der Kategorienachse
    6. Einstellungen für den Drehwinkel der Beschriftungen der Kategorienachse
  6. Greifen Sie auf die Legende des Diagramms zu und setzen Sie die Text Eigenschaften für diese
  7. Legen Sie fest, dass Diagrammlegenden angezeigt werden, ohne das Diagramm zu überlappen
  8. Greifen Sie auf die Sekundäre Wertachse des Diagramms zu und setzen Sie die folgenden Eigenschaften:
    1. Aktivieren Sie die sekundäre Wertachse
    2. Einstellungen für das Linienformat der sekundären Wertachse
    3. Einstellungen für das Zahlenformat der sekundären Wertachse
    4. Einstellungen für Min-, Max-, Haupt- und Neben-Einheiten der sekundären Wertachse
  9. Zeichnen Sie nun die erste Diagrammreihe auf der sekundären Wertachse
  10. Stellen Sie die Hintergrundwand des Diagramms auf Füllfarbe ein
  11. Stellen Sie die Füllfarbe des Diagrammzeichnungsbereichs ein
  12. Schreiben Sie die modifizierte Präsentation in eine PPTX-Datei
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);

Schriftarteigenschaften für Diagramm einstellen

Aspose.Slides für C++ bietet Unterstützung für das Setzen der schriftartbezogenen Eigenschaften für das Diagramm. Bitte folgen Sie den folgenden Schritten, um die Schriftarteigenschaften für das Diagramm festzulegen.

  • Instanziieren Sie ein Presentation Klassenobjekt.
  • Fügen Sie das Diagramm auf der Folie hinzu.
  • Stellen Sie die Schriftgröße ein.
  • Speichern Sie die modifizierte Präsentation.

Unten ist ein Beispiel gegeben.

// 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);

Schriftarteigenschaften für die Diagrammtabelle einstellen

Aspose.Slides für C++ bietet Unterstützung für das Ändern der Farben von Kategorien in einer Serienfarbe.

  1. Instanziieren Sie ein Presentation Klassenobjekt.
  2. Fügen Sie das Diagramm auf der Folie hinzu.
  3. Stellen Sie die Diagrammtabelle ein.
  4. Stellen Sie die Schriftgröße ein.
  5. Speichern Sie die modifizierte Präsentation.

Unten ist ein Beispiel gegeben.

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);

Gerundete Ecken für den Diagramm-Bereich einstellen

Aspose.Slides für C++ bietet Unterstützung für die Einstellung des Diagramm Bereichs. Die Eigenschaften IChart.HasRoundedCorners und Chart.HasRoundedCorners wurden in Aspose.Slides hinzugefügt.

  1. Instanziieren Sie ein Presentation Klassenobjekt.
  2. Fügen Sie das Diagramm auf der Folie hinzu.
  3. Stellen Sie den Fülltyp und die Füllfarbe des Diagramms ein.
  4. Stellen Sie die Eigenschaft „runde Ecken“ auf True.
  5. Speichern Sie die modifizierte Präsentation.

Unten ist ein Beispiel gegeben.

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);

Diagrammdaten Zahlen einstellen

Aspose.Slides für C++ bietet eine einfache API zur Verwaltung des Diagrammdatenformats:

  1. Erstellen Sie eine Instanz der Presentation Klasse.
  2. Erhalten Sie eine Referenz auf eine Folie anhand ihres Index.
  3. Fügen Sie ein Diagramm mit Standarddaten und einem beliebigen gewünschten Typ hinzu (dieses Beispiel verwendet ChartType.ClusteredColumn).
  4. Stellen Sie das voreingestellte Zahlenformat aus den möglichen voreingestellten Werten ein.
  5. Durchlaufen Sie die Diagrammdatenzelle in jeder Diagrammreihe und setzen Sie das Zahlenformat der Diagrammdaten.
  6. Speichern Sie die Präsentation.
  7. Stellen Sie das benutzerdefinierte Zahlenformat ein.
  8. Durchlaufen Sie die Diagrammdatenzelle innerhalb jeder Diagrammreihe und setzen Sie ein anderes Diagrammdatenformat.
  9. Speichern Sie die 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);
  Die möglichen voreingestellten Zahlenformatwerte zusammen mit ihrem voreingestellten Index, die verwendet werden können, sind unten angegeben:
0 Allgemein
1 0
2 0.00
3 #,##0
4 #,##0.00
5 $#,##0;$-#,##0
6 $#,##0;Rot$-#,##0
7 $#,##0.00;$-#,##0.00
8 $#,##0.00;Rot$-#,##0.00
9 0%
10 0.00%
11 0.00E+00
12 # ?/?
13 # /
14 m/d/jj
15 d-mmm-jj
16 d-mmm
17 mmm-jj
18 h:mm AM/PM
19 h:mm:ss AM/PM
20 h:mm
21 h:mm:ss
22 m/d/jj h:mm
37 #,##0;-#,##0
38 #,##0;Rot-#,##0
39 #,##0.00;-#,##0.00
40 #,##0.00;Rot-#,##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 @