タイトル : ChartのX軸に表示するフォーマットを指定 投稿日 : 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 |