タイトル | : Chart繰返し表示で前表示をクリア |
記事No | : 10866 |
投稿日 | : 2012/07/24(Tue) 18:39 |
投稿者 | : et |
はじめまして。
開発環境:VB2010pro Win7
初めて投稿させていただきます。 CSVファイルからチャートコントロールを利用して曲線グラフを表示します。 CSVファイルに1分毎に流量のデータを追加した後グラフを再表示したいのですが、 前回表示したデータに加えて二重、三重にグラフ表示するデータが増えていきます。 グラフ表示データをクリアして最新のデータだけ表示したいのですが、 どうしたら良いでしょうか初歩的な事ですが教えて頂けますでしょうか。 宜しくお願いします。
以下ソースです。 ------------------------------------------------------------------------------- Private Sub ChartDataOpen(ByVal FolderPath As String, ByVal fileName As String) 'CSV ファイルを読み込みChart に表示するデータソースを設定 Using cn As New System.Data.OleDb.OleDbConnection Dim csvFileName As String = fileName 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 End Sub
Private Sub ChartClar(ByVal cht As Chart) 'Chart の設定を初期値に戻す With cht .Titles.Clear() 'タイトルの初期化 .BackGradientStyle = GradientStyle.None '背景グラデーション .BackColor = Color.White '背景色を白色に '外形をデフォルトに .BorderSkin.SkinStyle = BorderSkinStyle.None .Legends.Clear() '凡例の初期化 '.Legends.Add("Legend1") .Series.Clear() '系列(データ関係)の初期化 .ChartAreas.Clear() '軸メモリ・3D 表示関係の初期化 .ChartAreas.Add("ChartArea1") .Annotations.Clear() 'グラフの注釈 End With End Sub
Private Sub ChartDisplay(ByVal upper As Integer, ByVal lower As Integer) '設定を一旦初期値に戻す。 Call ChartClar(Chart1) '起動フォルダーに入れて置いてください。 Call ChartDataOpen(System.Windows.Forms.Application.StartupPath(), "GraphFile.csv") With Chart1 For i As Integer = 1 To colums Dim columnName As String = ds.Tables(0).Columns(i).ColumnName.ToString() '系列の設定(水量) .Series.Add(columnName) 'グラフの種類を曲線グラフに設定 .Series(columnName).ChartType = DataVisualization.Charting.SeriesChartType.Spline 'Column 'X 軸のラベルテキストの読込・設定(時間) .Series(columnName).XValueMember = ds.Tables(0).Columns(0).ColumnName.ToString() '.Series(columnName).XAxisType.Format 'グラフ用のデータの読込・設定(水量) .Series(columnName).YValueMembers = columnName Next End With '--- Y軸 に関する設定 --- With Chart1.ChartAreas(0).AxisY '目盛りの設定 .Maximum = upper '流量の最大値 .Minimum = lower '流量の最小値 'Y軸のタイトル関係の設定 .Title = "流 量" .TitleAlignment = StringAlignment.Center '中央に表示 .TextOrientation = TextOrientation.Stacked '縦書きで表示 End With
End Sub ----------------------------------------------------------------------------- GraphFile.csv 時刻 流量 0:00 50 0:01 55 0:02 65 0:03 80 0:04 100 0:05 120 0:06 150 0:07 170 0:08 185 0:09 195 0:10 200 0:11 204 0:12 207 0:13 209 0:14 210 0:15 209 0:16 208 0:17 207 0:18 206 0:19 205 0:20 204 0:21 202 0:22 198 0:23 194 0:24 186 0:25 176 0:26 168 0:27 160 0:28 152 0:29 144 0:30 137 0:31 130 0:32 123 0:33 117 0:34 111 0:35 105 0:36 100 0:37 95 0:38 90 0:39 86 0:40 82 0:41 79 0:42 76 0:43 73 0:44 70 0:45 68 0:46 66 0:47 64 0:48 62 0:49 60 0:50 59 0:51 58 0:52 57 0:53 56 0:54 55 0:55 54 0:56 53 0:57 52 0:58 51 0:59 50
|