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

わんくま同盟

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

C# と VB.NET の入門サイト


(過去ログ 134 を表示中)
■78728 / )  Re[9]: 複数のChartをひとつに
□投稿者/ shu (807回)-(2016/02/13(Sat) 10:07:01)
No78722 (佐伯 さん) に返信

提示された内容を1つのChartに集約する例です。
棒グラフなので横並びになりますが、グラフの種類が違えば見え方も変わってくると思います。


Public Class Form1
    Private dat1(3) As String
    Private dat2(3) As Single
    Private datS As Integer
    Private _tbl As DataTable

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ChartA()
        ChartB()
        ChartC()
    End Sub

    Private Sub ChartA()
        '日付、数量、データ数
        dat1(0) = "0101" : dat1(1) = "0102" : dat1(2) = "0103"
        dat2(0) = 10.0! : dat2(1) = 20.0! : dat2(2) = 30.0!
        datS = 2
        'チャート表示
        Dim ds As New DataSet
        Dim dt As New DataTable
        Dim dtRow As DataRow
        '列の作成
        dt.Columns.Add("日付", GetType(String))
        dt.Columns.Add("数量", GetType(Single))
        ds.Tables.Add(dt)
        'データの追加
        For i = 0 To datS
            dtRow = ds.Tables(0).NewRow
            dtRow(0) = dat1(i)  '日付セット
            dtRow(1) = dat2(i)  '数量セット
            ds.Tables(0).Rows.Add(dtRow)
        Next
        'Chart に表示するデータソースを設定
        Chart1.DataSource = ds
        '系列を初期化    
        Chart1.Series.Clear()
        'グラフの種類の設定
        Dim bou = Chart1.Series.Add("棒グラフ")
        With bou
            .ChartType = DataVisualization.Charting.SeriesChartType.Column
            .XValueMember = "日付"
            .YValueMembers = "数量"
            .IsVisibleInLegend = False
        End With

    End Sub

    Private Sub ChartB()
        '日付、数量、データ数
        dat1(0) = "0101" : dat1(1) = "0102" : dat1(2) = "0103"
        dat2(0) = 100.0! : dat2(1) = 200.0! : dat2(2) = 300.0!
        datS = 2
        'チャート表示
        Dim ds As New DataSet
        Dim dt As New DataTable
        Dim dtRow As DataRow
        '列の作成
        dt.Columns.Add("日付", GetType(String))
        dt.Columns.Add("数量", GetType(Single))
        ds.Tables.Add(dt)
        'データの追加
        For i = 0 To datS
            dtRow = ds.Tables(0).NewRow
            dtRow(0) = dat1(i)  '日付セット
            dtRow(1) = dat2(i)  '数量セット
            ds.Tables(0).Rows.Add(dtRow)
        Next
        'Chart に表示するデータソースを設定
        Chart2.DataSource = ds
        '系列を初期化    
        Chart2.Series.Clear()
        'グラフの種類の設定
        Dim bou = Chart2.Series.Add("棒グラフ")
        With bou
            .ChartType = DataVisualization.Charting.SeriesChartType.Column
            .XValueMember = "日付"
            .YValueMembers = "数量"
            .IsVisibleInLegend = False
        End With
    End Sub

    Private Sub ChartC()
        '列の作成
        _tbl = New DataTable
        With _tbl.Columns
            .Add("日付", GetType(String))
            .Add("数量1", GetType(Single))
            .Add("数量2", GetType(Single))
        End With

        'データの追加
        _tbl.Rows.Add("0101", 10.0!, 100.0!)
        _tbl.Rows.Add("0102", 20.0!, 200.0!)
        _tbl.Rows.Add("0103", 30.0!, 300.0!)
        'Chart に表示するデータソースを設定
        Chart3.DataSource = _tbl
        '系列を初期化    
        Chart3.Series.Clear()
        'グラフの種類の設定
        Dim bou = Chart3.Series.Add("棒グラフ1")
        With bou
            .ChartType = DataVisualization.Charting.SeriesChartType.Column
            .XValueMember = "日付"
            .YValueMembers = "数量1"
            .IsVisibleInLegend = False
        End With
        Dim bou2 = Chart3.Series.Add("棒グラフ2")
        With bou2
            .ChartType = DataVisualization.Charting.SeriesChartType.Column
            .XValueMember = "日付"
            .YValueMembers = "数量2"
            .IsVisibleInLegend = False
        End With

    End Sub

End Class

返信 編集キー/


管理者用

- Child Tree -