C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.86469 の関連記事表示

<< 0 >>
■86469  Re[1]: ChartのX軸のタイトル表示
□投稿者/ mako -(2018/01/31(Wed) 17:00:32)
    お世話になっています。
    
    今、使ってるプログラムは下記のようなものですが実際のはもっと複雑ですので、あまり大きく変えたくないとこもあります。
    それプラス、我流ですが1分間隔のサンプルデータも作ってみました。
    よろしくお願いします。
    
    
    表示時刻の切り替えは、 RadioButton等 でしチャートを再表示しています。
    チャートによっては9:00・11:00と言った時間単位もありますし、別のデータにはなりますが日にちの場合もあります。
    
    サンプルデータでの時刻表示は、
     15分間隔場合は  8:15・8:30・8:45・10:30・10:45 と 起点の8:10と10:20
     30分間隔場合は  8:30 10:30 と 起点の8:10と10:20 
     60分間隔場合は  起点の8:10と10:20のみ
     9:00・11:0などと言った時間単位の場合は、起点の8:10と10:20のみ
    となります。
    
    もし可能でしたら見易くするために、起点の8:10と10:20の左側に棒グラフ2〜3本くらいの空白も。
    
    
        Private Structure datF
            Dim Jikoku As String      '時刻 (実際は "2018/01/30 16:30:00" などの日付も入った文字列)
            Dim Suu1 As Integer       '数量1
            Dim Suu2 As Integer       '数量2
        End Structure
        Dim Uridat(500) As datF
        Dim datS As Integer            'データ数
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' 1分間隔のサンプルデータをを成
            datS = -1
            For i = 10 To 45    ' 8:10〜8:45
                datS = datS + 1
                Uridat(datS).Jikoku = "8:" & Str(i)  '時刻
                Uridat(datS).Suu1 = i * 10           '数量1
                Uridat(datS).Suu2 = i * 5            '数量2
            Next
            For i = 20 To 55        ' 10:20〜10:55
                datS = datS + 1
                Uridat(datS).Jikoku = "10:" & Str(i)   '時刻
                Uridat(datS).Suu1 = i + 100            '数量1
                Uridat(datS).Suu2 = i + 20             '数量2
            Next
    
            '====   Chart1   ====
            Dim ds As New DataSet
            Dim dt As New DataTable
            Dim dtRow As DataRow
    
            '列の作成
            With dt.Columns
                .Add("時刻", GetType(String))
                .Add("数量1", GetType(Integer))
                .Add("数量2", GetType(Integer))
            End With
            ds.Tables.Add(dt)
    
            'データのセット
            For i = 0 To datS
                dtRow = ds.Tables(0).NewRow
                dtRow(0) = Uridat(i).Jikoku    '時刻
                dtRow(1) = Uridat(i).Suu1      '数量1
                dtRow(2) = Uridat(i).Suu2      '数量2
                ds.Tables(0).Rows.Add(dtRow)
            Next
    
            'Chart に表示するデータソースを設定
            Chart1.DataSource = ds
            Chart1.Series.Clear()
            '
            Dim ore = Chart1.Series.Add("折れ線")
            With ore
                .ChartType = DataVisualization.Charting.SeriesChartType.Line
                .XValueMember = "時刻"
                .YValueMembers = "数量1"
            End With
    
            Dim bou = Chart1.Series.Add("棒グラフ")
            With bou
                .ChartType = DataVisualization.Charting.SeriesChartType.Column
                '.XValueMember = "時刻"
                .YValueMembers = "数量2"
            End With
        End Sub
    
    
記事No.86333 のレス /過去ログ148より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -