Microsoft Chart Control で散布図(Point・点グラフ)を表示 (SNo.363) | |
使用コントロール | Chart1 |
開発環境 | WindowsVista VB2010(VS2010 Pro) Framework 4 / ターゲットCPU:X86 [Option Compare Text] [Option Explicit On] [Option Infer On] [Option Strict On]で設定 |
その他条件 | Microsoft Chart Control が使用できる環境 使用データ(test1.csv)は、次よりダウンロードして使って下さい。 ChartDat2.zip |
下記サンプルは、必ず、CSVファイルを使っての基本的なグラフの表示 〜 をご覧になってからお試しください。 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load '-------------------------------------------------------------------------------------- '下記のデータの読み込み設定は、基本的なグラフの表示と同じです。 Dim ds As New DataSet Dim colums As Integer Using cn As New System.Data.OleDb.OleDbConnection Dim FolderPath As String = Application.StartupPath() Dim csvFileName As String = "test1.csv" cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FolderPath & _ ";Extended Properties=""Text;HDR=YES;IMEX=1;FMT=Delimited""" Using da As System.Data.OleDb.OleDbDataAdapter = _ New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM " & csvFileName, cn) da.Fill(ds, "Table1") Chart1.DataSource = ds 'Chart に表示するデータソースを設定 colums = ds.Tables(0).Columns.Count - 1 'データの系列数を取得 End Using End Using '---------------------------------------------------------------------------------------------- '--------------------------------ここから散布図の表示設定-------------------------------- With Chart1 .Series.Clear() '系列を初期化 For i As Integer = 0 To colums 'テーブルからデータを取得 Dim x As Integer = CType(ds.Tables(0).Rows(0).Item(i), Integer) Dim y As Integer = CType(ds.Tables(0).Rows(1).Item(i), Integer) .Series.Add(CType(i, String)) 'グラフの種類をPoint(点グラフ)にして散布図を描画 .Series(CType(i, String)).ChartType = DataVisualization.Charting.SeriesChartType.Point .Series(CType(i, String)).Points.AddXY(x, y) 'データを設定 .Series(CType(i, String)).MarkerSize = 15 'マーカーを大きくして表示 If i < 5 Then '正しく表示されているか確認の為ポイントラベルを表示 .Series(CType(i, String)).Label = CStr(i) & ":#VALX" & ",#VALY" End If Next '.Legends(0).Enabled = False '凡例を非表示にする End With '■------------------- X軸・Y軸のフォント・線等の設定 ----------------Start--■ With Chart1.ChartAreas(0) 'X軸のメモリを自動設定だと中途半端な値になるので別途設定 With .AxisX .Minimum = 0 .Maximum = 100 .Interval = 20 End With End With '■-------------------------------------------------------------------End----■ End Sub End Class |
|
上記コードの実行結果 |
|
使用データ 50 45 50 60 80 70 40 30 20 90 39 84 77 64 25 90 47 64 74 55 20 80 35 84 25 65 47 88 60 35 70 40 80 15 20 65 50 80 38 20 |