チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.Presentation for .NET»グラフ»C#/VB.NET:PowerPoint で組み合わせグラフを作成する方法
2023-10-09

C#/VB.NET:PowerPoint で組み合わせグラフを作成する方法

PowerPoint で、組み合わせグラフは2つ以上の異なるグラフタイプを1つのグラフに組み合わせるグラフです。これにより、複数のデータセットを同じグラフに表示することができ、異なる変数を比較・分析することが容易になります。この記事では、Spire.Presentation for .NET を使用してPowerPoint プレゼンテーションで組み合わせグラフを作成する方法を示します。

Spire.Presentation for .NET をインストールします

まず、Spire.Presentation for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Presentation

PowerPoint で組み合わせグラフを作成する

Spire.Presentation for .NET では、ISlide.Shapes.AppendChart(ChartType type, RectangleF rectangle) メソッドを使用して、特定のグラフタイプをスライドに追加することができます。そして、2番目のシリーズのグラフタイプを別のグラフに変更して組み合わせグラフを作成することができます。以下は PowerPoint で縦棒グラフと折れ線グラフを組み合わせる手順です。

  • Presentation インスタンスを作成します。
  • 指定されたスライドを取得し、ISlide.Shapes.AppendChart(ChartType.ColumnClustered, RectangleF rectangle) メソッドを使用して縦棒グラフを追加します。
  • DataTable オブジェクトを作成して、データを追加します。
  • データテーブルからデータをグラフデータにインポートします。
  • グラフのタイトル、カテゴリのラベル、シリーズのラベル、およびシリーズの値を設定します。
  • IChart.Series[int index].Type プロパティを使用して、2番目のシリーズのグラフタイプをデータマーカー付きの折れ線グラフに変更します。
  • IChart.Series[int index].UseSecondAxis プロパティを true に設定することで、2番目のシリーズを副次値軸に描きます。
  • 副次値軸の数値形式とグリッド線を設定します。
  • Presentation.SaveToFile() メソッドを使用して結果ドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Presentation;
using Spire.Presentation.Charts;
using Spire.Presentation.Drawing;
using System;
using System.Data;
using System.Drawing;

namespace CombinationChart
{
    class Program
    {
        static void Main(string[] args)
        {
            //Presentationインスタンスを作成する
            Presentation presentation = new Presentation();

            //最初のスライドに縱棒グラフを追加する
            RectangleF rect = new RectangleF(80, 120, 550, 320);
            IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.ColumnClustered, rect);

            //グラフのタイトルを設定して書式設定する
            chart.ChartTitle.TextProperties.Text = "月次売上レポート";
            chart.ChartTitle.TextProperties.IsCentered = true;
            chart.ChartTitle.Height = 30;
            chart.HasTitle = true;

            //DataTableオブジェクトを作成してデータを追加する
            DataTable dataTable = new DataTable();
            dataTable.Columns.Add(new DataColumn("月", Type.GetType("System.String")));
            dataTable.Columns.Add(new DataColumn("売上", Type.GetType("System.Int32")));
            dataTable.Columns.Add(new DataColumn("成長率", Type.GetType("System.Decimal")));
            dataTable.Rows.Add("1月", 200, 0.6);
            dataTable.Rows.Add("2月", 250, 0.8);
            dataTable.Rows.Add("3 月", 300, 0.6);
            dataTable.Rows.Add("4 月", 150, 0.2);
            dataTable.Rows.Add("5 月", 200, 0.5);
            dataTable.Rows.Add("6月", 400, 0.9);

            //データテーブルからグラフデータにデータをインポートする
            for (int c = 0; c < dataTable.Columns.Count; c++)
            {
                chart.ChartData[0, c].Text = dataTable.Columns[c].Caption;
            }
            for (int r = 0; r < dataTable.Rows.Count; r++)
            {
                object[] datas = dataTable.Rows[r].ItemArray;
                for (int c = 0; c < datas.Length; c++)
                {
                    chart.ChartData[r + 1, c].Value = datas[c];

                }
            }

            //シリーズのラベルを設定する
            chart.Series.SeriesLabel = chart.ChartData["B1", "C1"];

            //カテゴリのラベルを設定する    
            chart.Categories.CategoryLabels = chart.ChartData["A2", "A7"];

            //データをシリーズ値に割り当てる
            chart.Series[0].Values = chart.ChartData["B2", "B7"];
            chart.Series[1].Values = chart.ChartData["C2", "C7"];

            //シリーズ2のグラフタイプをデータマーカー付きの折れ線グラフに変更する
            chart.Series[1].Type = ChartType.LineMarkers;

            //シリーズ2のデータを副次値軸に描く
            chart.Series[1].UseSecondAxis = true;

            //副次値軸の数値書式を設定する
            chart.SecondaryValueAxis.NumberFormat = "0%";

            //副次値軸のグリッド線を非表示にする
            chart.SecondaryValueAxis.MajorGridTextLines.FillType = FillFormatType.None;

            //凡例の位置を設定する
            chart.ChartLegend.Position = ChartLegendPositionType.Top;

            //オーバーラップを設定する
            chart.OverLap = -50;

            //ギャップ幅を設定する
            chart.GapWidth = 200;

            //結果のドキュメントを保存する
            presentation.SaveToFile("CombinationChart.pptx", FileFormat.Pptx2010);
        }
    }
}
Imports Spire.Presentation
Imports Spire.Presentation.Charts
Imports Spire.Presentation.Drawing
Imports System
Imports System.Data
Imports System.Drawing

Namespace CombinationChart

    Class Program

        Private Shared Sub Main(ByVal args() As String)
            'Presentationインスタンスを作成する
            Dim presentation As Presentation = New Presentation

            '最初のスライドに集合縱棒グラフを追加する
            Dim rect As RectangleF = New RectangleF(80, 120, 550, 320)
            Dim chart As IChart = presentation.Slides(0).Shapes.AppendChart(ChartType.ColumnClustered, rect)

            'グラフのタイトルを設定して書式設定する
            chart.ChartTitle.TextProperties.Text = "月次売上レポート"
            chart.ChartTitle.TextProperties.IsCentered = True
            chart.ChartTitle.Height = 30
            chart.HasTitle = True

            'DataTableオブジェクトを作成してデータを追加する
            Dim dataTable As DataTable = New DataTable
            dataTable.Columns.Add(New DataColumn("月", Type.GetType("System.String")))
            dataTable.Columns.Add(New DataColumn("売上", Type.GetType("System.Int32")))
            dataTable.Columns.Add(New DataColumn("成長率", Type.GetType("System.Decimal")))
            dataTable.Rows.Add("1月", 200, 0.6)
            dataTable.Rows.Add("2月", 250, 0.8)
            dataTable.Rows.Add("3 月", 300, 0.6)
            dataTable.Rows.Add("4 月", 150, 0.2)
            dataTable.Rows.Add("5 月", 200, 0.5)
            dataTable.Rows.Add("6月", 400, 0.9)

            'データテーブルからグラフデータにデータをインポートする
            Dim c As Integer = 0
            Do While (c < dataTable.Columns.Count)
                chart.ChartData(0, c).Text = dataTable.Columns(c).Caption
                c = (c + 1)
            Loop

            Dim r As Integer = 0
            Do While (r < dataTable.Rows.Count)
                Dim datas() As Object = dataTable.Rows(r).ItemArray
                Dim c As Integer = 0
                Do While (c < datas.Length)
                    chart.ChartData((r + 1), c).Value = datas(c)
                    c = (c + 1)
                Loop

                r = (r + 1)
            Loop

            'シリーズのラベルを設定する
            chart.Series.SeriesLabel = chart.ChartData("B1", "C1")

            'カテゴリのラベルを設定する    
            chart.Categories.CategoryLabels = chart.ChartData("A2", "A7")

            'データをシリーズ値に割り当てる
            chart.Series(0).Values = chart.ChartData("B2", "B7")
            chart.Series(1).Values = chart.ChartData("C2", "C7")

            'シリーズ2のグラフタイプをデータマーカー付きの折れ線グラフに変更する
            chart.Series(1).Type = ChartType.LineMarkers

            'シリーズ2のデータを副次値軸に描く
            chart.Series(1).UseSecondAxis = True

            '副次値軸の数値書式を設定する
            chart.SecondaryValueAxis.NumberFormat = "0%"

            '副次値軸のグリッド線を非表示にする
            chart.SecondaryValueAxis.MajorGridTextLines.FillType = FillFormatType.None

            '凡例の位置を設定する
            chart.ChartLegend.Position = ChartLegendPositionType.Top

            'オーバーラップを設定する
            chart.OverLap = -50

            'ギャップ幅を設定する
            chart.GapWidth = 200

            '結果のドキュメントを保存する
            presentation.SaveToFile("CombinationChart.pptx", FileFormat.Pptx2010)
        End Sub
    End Class
End Namespace

C#/VB.NET:PowerPoint で組み合わせグラフを作成する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 292 times