C#でグラフを作成するChartコントロールを試してみる

コンピュータ

たまに数値の配列を視覚的に眺めてみたい衝動にかられます。
C#で簡単にグラフ化するコントロールがあるようなので試してみます。

ソース

// 
// チャート
// 
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Windows.Forms.DataVisualization.Charting;
using System.Collections.Generic;
using System.Linq;

// コンパイル
// csc ChartTest.cs /r:System.Windows.Forms.DataVisualization.dll

class Form1 : Form
{
    // コンストラクタ
    Form1()
    {
        // 配列
        var values = new List<int> {0,10,20,30,40,50,};
        var chart = new Chart {
           Dock = DockStyle.Fill,
        };
        this.Controls.Add(chart);
    
        // デフォルトグラフをクリア
        chart.Series.Clear();
        chart.ChartAreas.Clear();
        
        // チャートエリアの追加
        chart.ChartAreas.Add(new ChartArea("area1"));
        // 最大値
        chart.ChartAreas["area1"].AxisY.Maximum = values.Max() + 10;

        // グラフを追加
        chart.Series.Add("graph1");

        // 縦棒グラフ
        chart.Series["graph1"].ChartType = SeriesChartType.Column;

        // Chartに配列をセット
        foreach(var v in values) {
            chart.Series["graph1"].Points.AddY(v);
        }

        Text = "graph1";
    }
    // エントリーポイント
    [STAThread]
    static void Main()
    {
        Application.Run(new Form1());
    }
}

コンパイル

csc ChartTest.cs /r:System.Windows.Forms.DataVisualization.dll

結果


ChartAreasSeriesなど理解が薄い項目もありますが、ふわっとした理解でも、なんとなくグラフが出来上がりました。
プロパティがいろいろあるようなので、そちらをいじれば欲しいグラフの形を生成することも出来るでしょう。

コメント