タイトル | : ChartのX軸に表示するフォーマットを指定 |
記事No | : 11155 |
投稿日 | : 2013/09/11(Wed) 05:55 |
投稿者 | : くう |
いつもお世話になっております。 VB2010 Chartの使い方でお伺いします。
現在下記のコードでグラフを2種類表示しています。
上段に降水量を、下段に傘の有無を表示させ、それぞれのX軸にyyyy/MM/dd HH:mmの フォーマットで表示させたいのですが、ChartAreas(0)は正しく表示されますが ChartAreas(1)のX軸にyyyy/MM/dd HH:mmと表示されて困っています。
正しく表示させるにはどうしたらよろしいでしょうか。 よろしくお願いします。
Dim dt As New DataTable Dim row As DataRow
'列設定 dt.Columns.Add("", GetType(DateTime)) dt.Columns.Add("降水量") dt.Columns.Add("傘を持参した回数") dt.Columns.Add("傘を忘れた回数") '行追加 For i = 0 To k - 1
row = dt.NewRow
row(0) = Format$(DateTime.Parse(data_all(i, 1)), "yyyy/MM/dd HH:mm") row(1) = data_all(i, 6) row(2) = data_all(i, 7) row(3) = data_all(i, 8) dt.Rows.Add(row) Next
With Chart1
.DataSource = dt
'系列追加 For i = 1 To dt.Columns.Count - 1 Dim columnName As String = dt.Columns(i).ColumnName '系列の設定 .Series.Add(columnName) 'X 軸のラベルテキストの読込・設定 .Series(columnName).XValueMember = dt.Columns(0).ColumnName 'Y軸のラベルテキストの読込・設定 .Series(columnName).YValueMembers = columnName
Next .ChartAreas(1).AlignWithChartArea = .ChartAreas(0).AlignWithChartArea
.Series(0).ChartArea = "ChartArea1" '別領域に表示 .Series(1).ChartArea = "ChartArea2" .Series(2).ChartArea = "ChartArea2"
.ChartAreas(0).AxisX.LabelStyle.Format = "yyyy/MM/dd HH:mm" .ChartAreas(1).AxisX.LabelStyle.Format = "yyyy/MM/dd HH:mm"
.ChartAreas(0).AxisY.Title = "降水量 [mL]" .ChartAreas(1).AxisY.Title = "傘の有無"
'折れ線グラフに設定 .Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Line '棒グラフに設定 .Series(1).ChartType = DataVisualization.Charting.SeriesChartType.Column .Series(2).ChartType = DataVisualization.Charting.SeriesChartType.Column
'棒グラフに設定 .Series(1).ChartType = DataVisualization.Charting.SeriesChartType.Column .Series(2).ChartType = DataVisualization.Charting.SeriesChartType.Column
'マーカーの種類 .Series(0).MarkerStyle = MarkerStyle.None .Series(1).MarkerStyle = MarkerStyle.None .Series(2).MarkerStyle = MarkerStyle.None
.Series(1)("PointWidth") = "0.2" .Series(2)("PointWidth") = "0.2"
'グラフの色 .Series(0).Color = Color.DodgerBlue .Series(1).Color = Color.Green .Series(2).Color = Color.FromArgb(100, Color.Orange)
'透過色設定 For Each ser As Series In .Series ser.Color = Color.FromArgb(150, ser.Color.R, ser.Color.G, ser.Color.B) ser.MarkerBorderColor = ser.Color ser.MarkerColor = Color.White Next
End With
|