データテーブルから該当の棒グラフの作成
vb.net
Public Class MainForm
Private Sub MainForm_Load _
(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim csvDir As String = "CSVのファイル設置場所"
Dim csvFileName As String = "CSVのファイル名"
Dim conString As String = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
+ csvDir + ";Extended Properties=""text;HDR=No;FMT=Delimited"""
Dim con As New System.Data.OleDb.OleDbConnection(conString)
Dim commText As String = "SELECT * FROM [" + csvFileName + "]"
Dim da As New System.Data.OleDb.OleDbDataAdapter(commText, con)
'DataTableの作成
Dim dt As New DataTable
da.Fill(dt)
Create_LineGraph(Me.ZedGraphControl1, dt)
End Sub
Private Sub Create_LineGraph(ByVal _zg As ZedGraphControl, ByVal _dt As DataTable)
Dim dtbuff As DataTable = _dt.Copy()
Dim myPane As GraphPane = ZedGraphControl1.GraphPane
'グラフの設定
myPane.XAxis.MajorTic.IsBetweenLabels = True
myPane.Title.Text = "TEST"
myPane.XAxis.Type = AxisType.Text
'データソースの設定
Dim dspl As DataSourcePointList = New DataSourcePointList
dspl.DataSource = dtbuff
'XY軸の設定
dspl.XDataMember = _dt.Columns(1).ToString()
dspl.YDataMember = _dt.Columns(0).ToString()
dspl.ZDataMember = Nothing
'グラフの描写タイプの設定
Dim myLine As BarItem
myLine = ZedGraphControl1.GraphPane.AddBar("sample", dspl, Color.Blue)
myPane.BarSettings.Type = BarType.Stack
ZedGraphControl1.IsShowPointValues = True
ZedGraphControl1.AxisChange()
End Sub
棒グラフの作成方法、プロットの仕方としては大まかに別けて2種類
直に数字を用いそれを利用する方法、データテーブルを用いそれを利用する方法
例えば、上記ではデータテーブルを用い利用している。
DataSourcePointListクラスの、XDataMemberプロパティとYDataMemberプロパティには
表示したい値を、CoulumnのIndexを指定するか、上記の様にCoumnの名前を指定する。
この時、実際の名前を入力しても良い。
そうでない場合は以下
直に数字を用いる
vb.net
dim xLabel() as string = (3) {"本田", "長友", "長谷部", "Turio"}
dim yValue() as double = (3) {7.5, 6.0, 7.0, 0}
dim myCurve as baritem = mypane.addbar("Score", nothing, yValue, color.red)
mypane.XAxis.MajoyTic.IsBetweenLabels = true
mypane.XAxis.Scale.TextLabels= Xlabels
mypane.XAxis.Type= AxisType.Text
mypane.BarSettings.Type = BarType.Stack
ZedGraphControl1.AxisChange()
XとYの値を、配列で用意しておきそれらを一括でグラフにするというもの。
また、BarItemクラスでは実数での実装とPointListでの実装の2つのが用意されている。
ListItemクラスでも同様に実数とPointListクラスでの実装の2つが用意されている。
これらを用いグラフをどの値を描写させるか決定させる。