VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 Chart コントロール関係のメニュー
1.Chart コントロールの基本的な使い方
2.Chart コントロール関係ワンポイントテクニック集
3.Chart コントロールで行と列を入れ替えて表示 
4.StreamReader でデータを読み込み及び行列入れ替え表示 
5.Chart でレーダーチャートを見やすく表示
6.Chart で散布図を表示(Point・点グラフ)
7.Chart でデータ数が多い場合チャートにスクロールバーを付けて表示
8.一つのChart 内でグラフを上下に2個並べて表示
9.Chart で円グラフを表示 
10.Chart で縦棒と折線の複合グラフを表示
11.Chart で横スクロール時の現在表示データに合わせた自動目盛り設定
12.
 . 
20.その他、当サイト内に掲載の Chart に関するサンプル 


3.Chart コントロールで行と列を入れ替えて表示(16_Cht_01) (旧、SampleNo.362)
1.Chart コントロールで行と列を入れ替えて表示
2.
3.
4.
5.
6.

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :System.Windows.Forms.DataVisualization.Charting
参照設定:
追加なし
その他 :使用データ(Chart.csv)は、次よりダウンロードして使って下さい。 chartdat.zip(各サンプル共通)
    :このサンプルを使用される前に、左のメニューの基本的な使い方とワンポイントテクニック集をご覧になって下さい。
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.Chart コントロールで行と列を入れ替えて表示
VB6.0 の MSChart コントロールのような簡単な方法があるのかなと思って探したのですが、見つからなかったの作ってみました。

'チャート関係の名前空間です。
Imports System.Windows.Forms.DataVisualization.Charting

Public Class Form1

#Region "行と列を入れ替えて表示"

Private frgColRow As Boolean

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Chart1.Series.Clear()
    Dim ds1 As New DataSet
    Using cn As New System.Data.OleDb.OleDbConnection
        Dim FolderPath As String = "..\..\..\data\"
        Dim csvFileName As String = "Chart.csv"
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FolderPath & _
                        ";Extended Properties=""Text;HDR=YES;IMEX=1;FMT=Delimited"""
        Using da As System.Data.OleDb.OleDbDataAdapter = _
                        New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM " & csvFileName, cn)
            da.Fill(ds1, "Table1")
            Chart1.DataSource = ds1
        End Using
    End Using

    frgColRow = Not frgColRow

    If frgColRow Then
        For i As Integer = 1 To ds1.Tables(0).Columns.Count - 1
            Dim columnName As String = ds1.Tables(0).Columns(i).ColumnName.ToString()
            Chart1.Series.Add(columnName)
            Chart1.Series(columnName).ChartType = DataVisualization.Charting.SeriesChartType.Column
            Chart1.Series(columnName).XValueMember = ds1.Tables(0).Columns(0).ColumnName.ToString()
            Chart1.Series(columnName).YValueMembers = columnName
            Chart1.Series(columnName).Label = "#VALY"
        Next
    Else
        '行と列を入れ替えて読み込み表示
        For i As Integer = 0 To ds1.Tables(0).Rows.Count - 1
            '浅野・安室 等の氏名を系列名に設定  'Debug.Print(Chart1.Series(i).Name)
            Dim columnName As String = ds1.Tables(0).Rows(i).Item(0).ToString()
            Chart1.Series.Add(columnName)
            '系列毎にグラフの種類を設定
            Chart1.Series(columnName).ChartType = SeriesChartType.Column
            For j As Integer = 1 To (ds1.Tables(0).Columns.Count) - 1
                Dim YVal As String = CStr(ds1.Tables(0).Rows(i).Item(ds1.Tables(0).Columns(j).ColumnName))
                '氏名毎に、科目名と点数を個別にコレクションの末尾に追加(浅野= 国語,69,数学, 81,英語,73)
                Chart1.Series(columnName).Points.AddXY(ds1.Tables(0).Columns(j).ColumnName, YVal)
                Chart1.Series(columnName).Label = "#VALY"
            Next j
        Next i
    End If
End Sub

#End Region

End Class

 図1.上記実行結果
 vb2013chart3-1
このページのトップへ移動します。 2.



このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5. 


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。