ListPage

2010年10月19日火曜日

[.NET C#][ZrdGraph]棒グラフの作成

翻訳機すら掛けないめんどくさがりやの為のZedGraph

データテーブルから該当の棒グラフの作成

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つが用意されている。
これらを用いグラフをどの値を描写させるか決定させる。

2010年10月15日金曜日

[愚痴]ぐち

ヘルプ要請があったのでちょっと手伝ってきた
設計みたらVB6だったのに唖然

まぁ・・いいんだけど

とある工場の仕入在庫管理用のアプリケーション
サーバー機はwindowsserverでクライアント機3台がwindows7...

でまぁ、グレープシティさんのコンポーネント使う事になったんだけど
現行のコンポーネントだと対応していないとの事で
新たに・・つか今更、購入してた。

売上上がるみたいだからいいんだけど。
で、設計批判するわけじゃないんだけど明らかにこっちの
都合を押し付けてるような設計でいくら中小企業のパソコン使えないおばちゃんでも
さすがに使いにくいだろって感じの作り。

そこでかっこよく僕は「こんなんじゃ駄目だ。ユーザービリティに富んだ設計を!!」
と言えたらかっこよかったんだけどまぁ放置して・・。

僕が口出せる事じゃなかったんで言えてないけど画面設計くらいは見やすく判り易くを
心がけてわ。

個人的、独断と偏見だけど、営業力が強いと技術力が無くても金は稼げる。