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 に関するサンプル 


8.一つのChart 内でグラフを上下に2個並べて表示(16_Cht_05) (旧、SampleNo.424)
1.一つのChart 内でグラフを上下に2個並べて表示
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
参照設定:
追加なし
その他 :使用データ(kion.csv)は、次よりダウンロードして使って下さい。 chartdat.zip(各サンプル共通)
    :このサンプルを使用される前に、左のメニューの基本的な使い方とワンポイントテクニック集をご覧になって下さい。
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.一つのChart 内でグラフを上下に2個並べて表示

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

Public Class Form1

#Region "本文関係の処理(Button_Click イベントの処理等)"

Private Sub ChartShow()
    Dim ds As New DataSet
    Dim colums As Integer
    Using cn As New System.Data.OleDb.OleDbConnection
        'Dim csvFileName As String = "【2015年01月15日10時00現在の全国各地の気温】.csv"
        Dim csvFileName As String = "kion.csv"
        Dim dirPath As String = "..\..\..\data\"
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dirPath & _
                ";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(ds, "Table1")
            Chart1.DataSource = ds                      'Chart に表示するデータソースを設定
            colums = ds.Tables(0).Columns.Count - 1     'データの系列数を取得
        End Using
    End Using

    With Chart1
        .Titles.Clear()                 'タイトルの初期化
        .Series.Clear()                 '系列(データ関係)の初期化
        .ChartAreas.Clear()             '軸メモリ・3D 表示関係の初期化
        .ChartAreas.Add("ChartArea1")
    End With

    With Chart1
        For i As Integer = 1 To colums
            'データベースから列名を読込(現在の気温・昨日同時刻の気温 等)
            Dim columnName As String = ds.Tables(0).Columns(i).ColumnName.ToString()
            '系列の設定(現在の気温・昨日同時刻の気温 等)
            .Series.Add(columnName)
            'X 軸のラベルテキストの読込・設定(都市・県名)
            .Series(columnName).XValueMember = ds.Tables(0).Columns(0).ColumnName.ToString()
            'グラフ用のデータの読込・設定(各温度)
            .Series(columnName).YValueMembers = columnName
        Next
'------------- ここまでは、基本的な表示設定と同じ -----------------------------------------
        '■--------------------- 複数のチャート領域の設定 ------------------Start--■
        '上側に表示するグラフの設定
        .Series(0)("DrawingStyle") = "Cylinder"
        .Series(1)("DrawingStyle") = "Cylinder"
        .ChartAreas(0).AxisX.LabelStyle.Interval = 1  'ラベルテキストの表示間隔
        .ChartAreas(0).AxisX.MajorGrid.Interval = 1   'ラベルの区切り線の表示間隔
        .ChartAreas(0).AxisX.MajorGrid.IntervalOffset = 0.5
        'X軸にマージンを表示しない場合(グラフの最初のデータまでの左の余白)
        '  Chart1.ChartAreas(0).AxisX.IsMarginVisible = False

        ' FontSize をグラフのサイズに合せて設定し、Chart1_Resize イベント再描画
        '(こうしないと縦書きでグラフのサイズに合せて描画できないので)
        Dim FontSize As Single = Chart1.Width / 90.0!       '8.6333
        .ChartAreas(0).AxisX.LabelStyle.Font = New Font("MS P明朝", FontSize - 3) ' 下記と比べて見て下さい。
        '.ChartAreas(0).AxisX.LabelStyle.Font = New Font("MS P明朝", 6) '県名を縦書きで表示する為に

        '下側に表示するグラフの設定
        Dim chartArea2 As New ChartArea()
        chartArea2.Name = "ChartArea2"      '領域名を設定
        .ChartAreas.Add(chartArea2)         '領域を追加
        '下側に表示するデータを前日の最低気温と前日の最高気温をPoint グラフで表示
        .Series(2).ChartType = SeriesChartType.Point                'Point グラフで表示
        .Series(3).ChartType = SeriesChartType.Point                'Point グラフで表示
        .Series(2).ChartArea = "ChartArea2"                         '別領域に表示
        .Series(3).ChartArea = "ChartArea2"                         '別領域に表示
        .Series(2).MarkerImage = "..\..\..\data_pic\Marker.gif"     '逆三角形のマーカーがないので作成した物を
        .Series(3).MarkerStyle = MarkerStyle.Triangle               '三角形のマーカー
        .Series(3).MarkerSize = 9                                   'マーカーのサイズを変更
        .Series(3).Color = Color.HotPink
        .ChartAreas(1).AxisX.LabelStyle.Interval = 1

        .ChartAreas(1).AxisX.LabelStyle.Font = New Font("MS P明朝", FontSize - 3)
        'X軸にマージンを表示しない場合(グラフの最初のデータまでの左の余白)
        Chart1.ChartAreas(1).AxisX.IsMarginVisible = True
        '■---------------------------------------------- --------------------End--■
    End With

Exit Sub

'☆★☆★☆★☆★☆★☆★☆★☆★ ここからは、グラフの装飾の部分です ☆★☆★☆★☆★☆★☆★☆★☆★

End Sub

Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles Me.Resize
    Try
        Call ChartShow()    'フォントサイズを変更するために書き直し
    Catch ex As Exception

    End Try
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Call ChartShow()
End Sub

End Class

 図1.上記実行結果に装飾の部分を追加
 vb2013chart08_1
このページのトップへ移動します。 2.


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


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


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


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


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
1.複数のチャート領域(上下に2個)の設定  2.上側に表示するグラフ(系列・グラフの種類等)の設定  3.下側に表示するグラフ(系列・グラフの種類等)の設定




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