タイトル : Re^6: ChartのX軸の日付や時刻の表示を任意に指定。 投稿日 : 2016/08/12(Fri) 16:20 投稿者 : toshi
有り難うございます。 動作確認しましたが、 ・日付をDateではなく、"07/31" などとStringで扱いたいです。 ・Dim day0 = #7/15/2016# などとすると 1、10、20 にはなりませんでした。 日付でスクロールもしてますのでそれに合わせ Minimum、Maximum値ともに変更となります。 頓珍漢なこと言ってると思いますがよろしくお願いします。 Private _tbl As DataTable Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load _tbl = New DataTable() With _tbl.Columns .Add("x", GetType(String)) .Add("y", GetType(Integer)) End With Dim day0 = #7/15/2016# ' #7/31/2016# Dim rnd As New Random() For Each dy In Enumerable.Range(1, 100) _tbl.Rows.Add(day0.AddDays(dy), rnd.Next(0, 20)) Next Chart1.DataSource = _tbl With Chart1.Series(0) .ChartType = DataVisualization.Charting.SeriesChartType.Line .XAxisType = DataVisualization.Charting.AxisType.Primary .XValueType = DataVisualization.Charting.ChartValueType.Date .XValueMember = "x" .YValueMembers = "y" .IsXValueIndexed = True End With Dim labelWidth = 3 '--- ラベル幅の半分程度 With Chart1.ChartAreas(0).AxisX Dim dylbl = day0.AddDays(1) Dim EndDy = day0.AddDays(100) Do While dylbl <= EndDy For Each dy In {1, 10, 20} Dim dy2 = dylbl.AddDays(dy - 1) Dim idx = dy2.Subtract(day0).Days With .CustomLabels.Add(idx - labelWidth, idx + labelWidth, dy2.ToString("M/d")) .GridTicks = DataVisualization.Charting.GridTickTypes.All End With Next dylbl = dylbl.AddMonths(1) Loop End With End Sub |