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


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

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

Public Class Form1

Private Sub ChartShow()
'■------------------- データファイルの読み込み処理 ----------------Start--■
    'CSV ファイルを読み込みChart に表示するデータソースを設定
    Dim ds As New DataSet
    Dim colums As Integer
    Using cn As New System.Data.OleDb.OleDbConnection
        Dim dataFolderPath As String = System.IO.Path.GetFullPath("..\..\..\data\")
        Dim csvFileName As String = "chart5.csv"
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dataFolderPath & _
                    ";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
'■-----------------------------------------------------------------End----■
'■-------------------- グラフ用データの取得・設定 -----------------Start--■
    With Chart1
        .Series.Clear()
        For i As Integer = 1 To colums
            Dim columnName As String = ds.Tables(0).Columns(i).ColumnName.ToString()
            '系列の設定()
            .Series.Add(columnName)
            .Series(columnName).ChartType = DataVisualization.Charting.SeriesChartType.Column
            'X 軸のラベルテキストの読込・設定()
            .Series(columnName).XValueMember = ds.Tables(0).Columns(0).ColumnName.ToString()
            'グラフ用のデータの読込・設定()
            .Series(columnName).YValueMembers = columnName
        Next
    End With
'■-----------------------------------------------------------------End----■
'■------------------------- 第一Y軸関係の設定 ---------------------Start--■

    With Chart1.ChartAreas(0).AxisY
        '目盛りの設定と目盛線の設定
        .Maximum = 120000  '点数の最大値
        .Minimum = 0   '点数の最小値
        .Interval = 20000  '点数のメモリ間隔(20点毎)
        '"#,###" と設定すると基点の 0 が表示されない。
        .LabelStyle.Format = "#,##0" '桁区切りで表示の場合
    End With
'■-----------------------------------------------------------------End----■
'■------------------------- 第二Y軸関係の設定 ---------------------Start--■
    With Chart1
        'Series(2) をY軸で表示
        .Series(2).YAxisType = AxisType.Secondary
        'Series(2) のグラフを折れ線に設定
        .Series(2).ChartType = SeriesChartType.Line
        .Series(2).Color = Color.LightGreen
        .Series(2).BorderWidth = 2
        .Series(2).MarkerStyle = MarkerStyle.Circle
        .Series(2).MarkerSize = 8
        .Series(2).MarkerColor = Color.Red

        '第二Y軸の目盛り関係の設定
        With .ChartAreas(0).AxisY2
            .Maximum = 7000      '点数の最大値
            .Minimum = 0         '点数の最小値
            .Interval = 1000     '点数のメモリ間隔
            .LineDashStyle = DataVisualization.Charting.ChartDashStyle.Solid
            .LabelAutoFitMaxFontSize = 10
            .LabelAutoFitMinFontSize = 8
            .LabelStyle.ForeColor = Color.LightGreen
            .LineColor = Color.Red ' Color.LightGreen
            .LineWidth = 2
            .LabelStyle.Format = "#,###"  '桁区切りで表示の場合
            .MajorGrid.LineColor = Color.LightGreen
            .MajorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dash
        End With
    End With
'■-----------------------------------------------------------------End----■
'■----------------------- X軸ラベル関係の設定 ---------------------Start--■
    With Chart1.ChartAreas(0).AxisX
        .IsLabelAutoFit = False
        .LabelStyle.Interval = 1
        '氏名のフォントの最大値
        .LabelAutoFitMaxFontSize = 12
        '氏名のフォントの最小値()
        .LabelAutoFitMinFontSize = 7
        '氏名毎の区切り線を区切らない
        .MajorGrid.Interval = 16
    End With

'■-----------------------------------------------------------------End----■
'■-------------------------- タイトルを設定 -----------------------Start--■
    Chart1.Titles.Add("")
    With Chart1.Titles(0)
        .Alignment = Drawing.ContentAlignment.TopCenter
        .ForeColor = Color.Red
        .Font = New Font("MS P明朝", 12, FontStyle.Bold)
        .Text = "当サイトへのアクセス状況(2014/01〜2014/12)" & vbCrLf & "(表示数値は1日当たりの平均値)"
    End With
    Chart1.Titles.Add("")
    With Chart1.Titles(1)
        .Alignment = Drawing.ContentAlignment.TopLeft  'こちらでも概ね表示できる

        '表示位置を指定する場合
        '.Position.Y = 10      'サイズ変更が可能の場合は、画面サイズの%で位置を設定の事
        '.Position.X = 12
        .Font = New Font("MS P明朝", 9, FontStyle.Regular)
        .Text = " 単位:件数"  '理由は不明だが最後の1文字が表示されない。
    End With
'■-----------------------------------------------------------------End----■
End Sub

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

End Class

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


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


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


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


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


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
1.縦棒グラフと折線の複合グラフを表示  2.第二Y軸関係の設定  3.第二Y軸の目盛り関係の設定




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