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



2011/05/01

VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0
VB.NET2003/VB2005/VB2008/VB2010