【C#】【Form】Chart(チャート)

■ Chart(チャート)

 * VS2010から、[ツールボックス]-[データ]-[Chart]でグラフを書くことができる

■ グラフの種類の指定

 * Chart.Series.ChartType : グラフの種類を指定する

サンプル

Series series1 = new Series();
series1.ChartType = SeriesChartType.FastPoint;

■ データポイントの指定

 * DataPoint : データポイントを指定する

サンプル

例1
DataPoint dataPoint1 = new DataPoint(0, 0);
DataPoint dataPoint2 = new DataPoint(1, 1);
DataPoint dataPoint3 = new DataPoint(2, 2);

series1.Points.Add(dataPoint1);
series1.Points.Add(dataPoint2);
series1.Points.Add(dataPoint3)
例2
Series series1 = new Series();
series1.Points.AddXY(0, 34);
series1.Points.AddXY(5, 10);
series1.Points.AddXY(10, 15);
series1.Points.AddXY(15, 25);
series1.Points.AddXY(20, 42);

■ データ範囲の指定

 * ChartArea : データ範囲を指定する

サンプル

例1
private void button1_Click(object sender, EventArgs e)
{
    // グラフ初期化
    this.chart1.Series.Clear();

    string temperatureText = "気温";
    
    Series series1 = new Series(temperatureText);
    // グラフの種類を指定 (FastPointグラフ)
    // 大量のデータを描画する時間を大幅に短縮できるグラフ
    series1.ChartType = SeriesChartType.FastPoint;

    DataPoint point = new DataPoint();
    point.XValue = 0;
    point.YValues = new double[] { 24 };
    series1.Points.Add(point);
    point = new DataPoint();
    point.XValue = 0;
    point.YValues = new double[] { 34 };
    series1.Points.Add(point);

    ChartArea area = new ChartArea(temperatureText);
    area.AxisX.Minimum = 0;
    area.AxisX.Maximum = 5;
    area.AxisY.Minimum = 0;
    area.AxisY.Maximum = 50;

    this.chart1.ChartAreas.Add(area);
    this.chart1.Series.Add(series1);
}
例2
private void button2_Click(object sender, EventArgs e)
{
    this.chart1.Series.Clear();

    string temperatureText = "気温";

    Series series1 = new Series(temperatureText);
    series1.ChartType = SeriesChartType.Line;
    series1.Points.Add(34);
    series1.Points.Add(10);
    series1.Points.Add(15);
    series1.Points.Add(25);
    series1.Points.Add(42);

    this.chart1.Series.Add(series1);

    ChartArea area = new ChartArea(temperatureText);
    area.AxisX.Minimum = 0;
    area.AxisX.Maximum = 5;
    area.AxisY.Minimum = 0;
    area.AxisY.Maximum = 50;
    this.chart1.ChartAreas.Add(area);
}