MS Chartでは、いろいろな種類のグラフが表示できます。が、しかし、エクセル程融通が利くかといえば利かないところもあるでしょう。
プロジェクトによっては、グラフはエクセルで見ることにしたほうが良いかもしれません。でも、将来、MS Chartの機能が充実していくことによってこれを使用する場面も
多々出てくるかもしれません。
ここでは、簡単ではありますがMS Chartの基本的なことをやってみるソースを示したいと思います。
.Net Framework 3.5用のMS Chartをインストールするにはこちらからです。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
//MS Chartで必要なアセンブリの参照
using System.Windows.Forms.DataVisualization.Charting;
namespace ChartTest
{
public partial class Form1 : Form
{
DataSet ds = new DataSet();
//MS Chartの本体
Chart chart1 = new Chart();
public Form1()
{
InitializeComponent();
//チャートに表示するグラフのデータの取得
SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder();
bldr.DataSource = @".\SQLExpress";
bldr.InitialCatalog = "pubs";
bldr.IntegratedSecurity = true;
SqlConnection conn = new SqlConnection();
conn.ConnectionString = bldr.ConnectionString;
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT SUM(qty) AS Quantity,CONVERT(VARCHAR, YEAR(ord_date)) + '/' + CONVERT(VARCHAR,MONTH(ord_date))+'/' +CONVERT(VARCHAR, DAY(ord_date)) AS SalesDate FROM sales GROUP BY ord_date ORDER BY SalesDate";
cmd.Connection = conn;
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
sda.Fill(ds);
//チャートで使用するデータソースの設定
chart1.DataSource = ds.Tables[0];
//グラフを表示する領域のインスタンス生成
chart1.ChartAreas.Add(new ChartArea("Sales"));
//グラフのことをSeriesと呼ぶ
chart1.Series.Add(new Series("Until 2000"));
//グラフを表示する領域を設定
chart1.Series["Until 2000"].ChartArea = "Sales";
//グラフを呼び出すのにインデックスでも可能。
//X軸の値のカラム名を設定する
chart1.Series[0].XValueMember = "SalesDate";
//X軸の値のデータタイプを設定
chart1.Series[0].XValueType = ChartValueType.Date;
//同じくY軸についても設定
chart1.Series[0].YValueMembers = "Quantity";
chart1.Series[0].YValueType = ChartValueType.Int32;
//グラフの種類を設定。ここでは棒グラフ
chart1.Series[0].ChartType = SeriesChartType.Column;
this.Controls.Add(this.chart1);
chart1.Dock = DockStyle.Fill;
}
}
}
