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.上記実行結果 |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
1.縦棒グラフと折線の複合グラフを表示 2.第二Y軸関係の設定 3.第二Y軸の目盛り関係の設定 |