tagCANDY CGI VBレスキュー(花ちゃん) - Chartコントロール(VB2008〜版)ワンポイントテクニック集(VB.NET) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
Chartコントロール(VB2008〜版)ワンポイントテクニック集(VB.NET)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

Chartコントロール(VB2008〜版)ワンポイントテクニック集(VB.NET) [No.262の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2012/07/04 14:03
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,基本設定,グラフ,チャート,MSChart        *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Microsoft Chart Controls for Microsoft .NET(Chartコントロール(VB2008〜版))の基本的な
操作例
まず、Microsoft Chart Controls(VB2008〜版)を試して見るその1(VB.NET)をご覧になってから
  ( http://www.hanatyan.sakura.ne.jp/patio/read.cgi?no=255 )
下記のテクニック集を試して下さい。

又、下記以外にも有料サンプル集の方でも色々試しております。
( http://www.hanatyan.sakura.ne.jp/dotnet/Sample.htm#chart1 )

   1.基本的な(単純)表示設定
>>1 2.データポイントラベルの表示
>>2 3.棒のカラーを指定の色に設定
>>3 4.Chartコントロールの外形を設定
>>4 5.グラフの種類を変更する
>>5 6.グラフを3Dで表示する
>>6 7.タイトルを設定
>>7 8.X軸・Y軸のフォント・線等の設定
>>8 9.凡例関係の設定
>>9 10. Y軸のタイトル(点数)の設定
>>10 11. X軸のタイトル(生徒名)の設定
>>11 12. マーカの設定
>>12 13. 表示が重なった場合の対策
>>13 14. カスタム属性を使って描画
>>14 15. 注釈を表示
>>15 16. 背景をグラデーションで描画
>>16 17. Chartの印刷関係の設定(ページ設定・印刷プレビュー・印刷のダイアログを表示)

   18. グラフをファイルに保存その1
     http://www.hanatyan.sakura.ne.jp/dotnet/chart19.htm
   19. グラフをファイルに保存その2
     http://www.hanatyan.sakura.ne.jp/dotnet/chart20.htm
   20. 左上を起点に吊り下げ表示
     http://www.hanatyan.sakura.ne.jp/dotnet/chart21.htm
   21. X軸目盛を右側に表示
     http://www.hanatyan.sakura.ne.jp/dotnet/chart22.htm
   22. 描画したChartをクリップボードにコピー
     http://www.hanatyan.sakura.ne.jp/dotnet/chart18.htm
   23. ToolTipText を表示(科目名・氏名・点数)
     http://www.hanatyan.sakura.ne.jp/dotnet/chart23.htm
   24. クリックした位置の要素を取得(科目名・氏名・点数)
     http://www.hanatyan.sakura.ne.jp/dotnet/chart24.htm
   25. グラフを回転表示 / 停止
     http://www.hanatyan.sakura.ne.jp/dotnet/chart25.htm
   26. 棒グラフの棒の幅を設定
     http://www.hanatyan.sakura.ne.jp/dotnet/chart30.htm
   27. 系列の色をカスタムパレットで変更(Excel のグラフ色もあり)
         http://www.hanatyan.sakura.ne.jp/dotnet/chart31.htm
>>17 28. 行と列を入れ替えて表示

   29. StreamReaderで読込及び行列入替
   30. プロットエリアの境界線を描画
   31. series の Z order を変更する

新たに、VB.NET Tips一覧の方に、Microsoft Chart Controls の項を設けて図表付きで詳しく解説しておりますのでそちらも併せてご覧ください。
 http://www.hanatyan.sakura.ne.jp/dotnet/index.html
 http://www.hanatyan.sakura.ne.jp/dotnet/chartframe.htm

'===================================================================================================

 Chartコントロール(VB2008版)のチャートタイプ一覧
 http://hanatyan.sakura.ne.jp/chart/chart1.htm

1.基本的な(単純)表示設定
  このワンポイントテクニック集の動作確認に必要な表示設定

使用するデータは、上記の(VB2008版)を試して見るその1と同じものを使って下さい。

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

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
'1.基本的な(単純)表示設定
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   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)
         .ChartAreas(0).Area3DStyle.Enable3D = False
         'X 軸のラベルテキストの読込・設定(浅野等の氏名)
         .Series(columnName).XValueMember = ds.Tables(0).Columns(0).ColumnName.ToString()
         'グラフ用のデータの読込・設定(点数)
         .Series(columnName).YValueMembers = columnName
      Next
   End With
End Sub


#Region "Chart 用のデータを取得部分"

Private ds As New DataSet
Private colums As Integer
Private Sub Form1_Load(ByVal sender As System.Object, _
                       ByVal e As System.EventArgs) Handles MyBase.Load
   '下記ファイルをDLして、起動フォルダーに入れて置いて下さい。
   Call ChartDataOpen(Application.StartupPath(), "test.csv")
End Sub
Private Sub ChartDataOpen(ByVal FolderPath As String, ByVal fileName As String)
'CSV ファイルを読み込みChart に表示するデーターソースを設定
   Using cn As New System.Data.OleDb.OleDbConnection
      Dim csvFileName As String = fileName
      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(ds, "Table1")
         Chart1.DataSource = ds                       'Chart に表示するデータソースを設定
         colums = ds.Tables(0).Columns.Count - 1      'データの系列数を取得
      End Using
   End Using
End Sub

#End Region

#Region "Chart の設定を初期値に設定"

Private Sub ChartClar(ByVal cht As Chart)
'Chart の設定を初期値に戻す(通常は必要ありません)
   With cht
      .Titles.Clear()                  'タイトルの初期化
      .BackGradientStyle = GradientStyle.None
      .BackColor = Color.White         '背景色を白色に
      '外形をデフォルトに
      .BorderSkin.SkinStyle = BorderSkinStyle.None
      .Legends.Clear()                 '凡例の初期化
      .Legends.Add("Legend1")
      .Series.Clear()                  '系列(データ関係)の初期化
      .ChartAreas.Clear()              '軸メモリ・3D 表示関係の初期化
      .ChartAreas.Add("ChartArea1")
      .Annotations.Clear()
   End With
End Sub

#End Region

End Class


  このテクニック集の実行図です。(各サンプルの実行結果は、下図を参考にして下さい。)
メンテ

Page: 1 |

Chartコントロール(VB2008版)でデータポイントラベルの表示(VB.NET)  (No.1の個別表示) [スレッド一覧へ]
日時: 2010/03/10 15:37
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,基本設定,グラフ,データポイントラベル       *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click
'2.データポイントラベルの表示
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      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

         '■------------------- データポイントラベルの設定・表示 ----------------Start--■
         'データポイントラベルを表示
         .Series(i - 1).Label = "#VALY"

         '文字色をBlueに設定
         .Series(i - 1).LabelForeColor = Color.Blue
         .Series(i - 1).Font = New Font("MS P明朝", 10, FontStyle.Bold)
         '■---------------------------------------------------------------------End----■

      Next
   End With
End Sub
メンテ
Chartコントロール(VB2008版)で棒のカラーを指定の色に設定(VB.NET)  (No.2の個別表示) [スレッド一覧へ]
日時: 2012/03/05 21:25
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,基本設定,グラフ,系列の色を変更,棒のカラー  *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button3_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button3.Click
'3.棒のカラーを指定の色に設定
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      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
         '■------------------- 棒のカラーを指定の色に設定 ----------------Start--■
         Dim Col(5) As Color   'グラフのカラーを設定(お好みで、設定しなくてもOK)
         Col(0) = Color.DeepSkyBlue : Col(1) = Color.DeepPink : Col(2) = Color.ForestGreen
         Col(3) = Color.HotPink : Col(4) = Color.BlueViolet : Col(5) = Color.Lime
         '棒のカラーを指定の色に設定
         .Series(i - 1).Color = Col(i - 1)

         'データポイントラベルの文字色も同じ色に設定
         .Series(i - 1).Label = "#VALY"
         .Series(i - 1).LabelForeColor = Col(i - 1)
         '■---------------------------------------------------------------End----■
      Next
   End With

End Sub

※ 上記の他、カスタムパレッドを使用する方法もあります。
メンテ
Chartコントロール(VB2008版)で外形及びバックカラーを設定(VB.NET)  (No.3の個別表示) [スレッド一覧へ]
日時: 2010/03/11 07:07
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,基本設定,グラフ,外形を設定,バックカラー    *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button4_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button4.Click
'4.Chartコントロールの外形を設定
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      '■------------------- Chartコントロールの外形を設定 ----------------Start--■
      .BorderSkin.SkinStyle = BorderSkinStyle.Emboss
      .BackColor = Color.Yellow
      .ChartAreas(0).BackColor = Color.MistyRose
      '■------------------------------------------------------------------End----■
      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 Sub

>>6 こちらでも外形を設定しております。(フレームタイプ)
メンテ
Chartコントロール(VB2008版)でグラフの種類を変更する(VB.NET)  (No.4の個別表示) [スレッド一覧へ]
日時: 2010/07/11 09:00
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,基本設定,チャートタイプ,グラフの種類       *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button5_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button5.Click
'5.グラフの種類を変更する
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   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

      'http://msdn.microsoft.com/ja-jp/library/dd489233(VS.100).aspx
      '■------------------- グラフの種類を変更する ----------------Start--■
      '.ChartAreas(0).Area3DStyle.Enable3D = True  3D 表示にする場合

      '重なって見えにくい場合は、下記のように表示するグラフの種類の順番を変える
      '(Series(1) に入れる元のデータの行等の順番を変えるという事です。)

      .Series(1).ChartType = DataVisualization.Charting.SeriesChartType.Spline
      .Series(1).BorderWidth = 3          '折れ線の太さを設定
      .Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Area
      .Series(2).ChartType = DataVisualization.Charting.SeriesChartType.Point
      .Series(2).MarkerSize = 10          'マーカーのサイズを変更
    '■-----------------------------------------------------------End----■

   End With
End Sub

 上記実行図
 http://hanatyan.sakura.ne.jp/chart/chart05.png

 Chartコントロール(VB2008版)のチャートタイプ一覧
 http://hanatyan.sakura.ne.jp/chart/chart1.htm
メンテ
Chartコントロール(VB2008版)でグラフを3Dで表示する(VB.NET)  (No.5の個別表示) [スレッド一覧へ]
日時: 2010/03/10 18:39
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,基本設定,チャートタイプ,グラフの種類,立体  *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button6_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button6.Click
'6.グラフを3Dで表示する
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      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

      '■------------------- グラフを3Dで表示する ----------------Start--■
      .ChartAreas(0).Area3DStyle.Enable3D = True   '3D 表示にする場合
      .ChartAreas(0).Area3DStyle.Inclination = 15  '15度傾き(変更すると氏名が全部表示されなくなる)
      .ChartAreas(0).Area3DStyle.Rotation = 15     '15度回転(変更すると氏名が全部表示されなくなる)
      '■---------------------------------------------------------End----■

   End With

End Sub
メンテ
Chartコントロール(VB2008版)でグラフのタイトルを設定する(VB.NET)  (No.6の個別表示) [スレッド一覧へ]
日時: 2010/03/11 07:04
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,基本設定,タイトル,グラフの表題        *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button7_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button7.Click
'7.タイトルを設定
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      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

      '■------------------- Chartコントロールの外形を設定 ----------------Start--■
      'スタイルは、18種類程あるのでお好きなのを選んで下さい。
      .BorderSkin.SkinStyle = BorderSkinStyle.FrameTitle1
      .BorderSkin.BackColor = Color.Blue
      '■------------------------------------------------------------------End----■

      '■------------------- タイトルを設定 ----------------Start--■
      .Titles.Add("")
      With .Titles(0)
         .Alignment = Drawing.ContentAlignment.TopCenter
         .ForeColor = Color.White
         .Font = New Font("MS P明朝", 12, FontStyle.Bold)
         .Text = "平成21年度期末テスト結果"
      End With
      '■----------------------------------------------------End----■

   End With

End Sub


 上記実行図(外形をフレームのスタイルに設定して、そこにタイトルを設定)
 http://hanatyan.sakura.ne.jp/chart/chart07.png
メンテ
Chartコントロール(VB2008版)でX軸・Y軸のフォント・線等の設定(VB.NET)  (No.7の個別表示) [スレッド一覧へ]
日時: 2010/03/10 18:46
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,基本設定,X軸,Y軸のフォント,目盛線の設定    *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button8_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button8.Click
'8.X軸・Y軸のフォント・線等の設定
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      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

      '■------------------- X軸・Y軸のフォント・線等の設定 ----------------Start--■
      With Chart1.ChartAreas(0)
         With .AxisX
            '氏名のフォントの最大値
            .LabelAutoFitMaxFontSize = 15
            '氏名のフォントの最小値
            .LabelAutoFitMinFontSize = 8
            'グラフと氏名の間の線の色
            .LineColor = Color.Red
            '氏名毎の区切り線を区切らない
            .MajorGrid.Interval = 6
         End With

         With .AxisY
            .Maximum = 120    '点数の最大値
            .Minimum = 0      '点数の最小値
            .Interval = 20    '点数のメモリ間隔(20点毎)
            .LineDashStyle = DataVisualization.Charting.ChartDashStyle.Solid
            .LabelAutoFitMaxFontSize = 15
            .LabelAutoFitMinFontSize = 8
            .LineColor = Color.Blue
            .LineWidth = 2
            .LabelStyle.Format = "#,###"  '桁区切りで表示の場合

            '10点毎に補助線を表示
            .MinorGrid.Enabled = True  'True に設定しないと表示しない
            .MinorGrid.Interval = 10
            .MinorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dash
         End With
      End With
      '■-------------------------------------------------------------------End----■

   End With

End Sub
メンテ
Chartコントロール(VB2008版)で凡例関係の設定(VB.NET)  (No.8の個別表示) [スレッド一覧へ]
日時: 2010/03/10 18:49
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,凡例関係の設定                *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button9_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button9.Click
'9.凡例関係の設定
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   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)
         'X 軸のラベルテキストの読込・設定(浅野等の氏名)
         .Series(columnName).XValueMember = ds.Tables(0).Columns(0).ColumnName.ToString()
         'グラフ用のデータの読込・設定(点数)
         .Series(columnName).YValueMembers = columnName
      Next

      '■------------------- 凡例の設定 ----------------Start--■
      .Series(0).LegendText = "国語の点数"            '独自の凡例を設定する
      .Series(1).LegendText = "数学の点数"            '独自の凡例を設定する
      .Series(2).LegendText = "英語の点数"            '独自の凡例を設定する
      .Legends(0).Alignment = StringAlignment.Near    '凡例の縦方向の表示位置
      .Legends(0).BorderColor = Color.Red             '凡例の枠の線の色
      .Legends(0).BackColor = Color.Yellow            '凡例のバックカラー
      .Legends(0).Docking = Docking.Top               '凡例の横方向の表示位置
      .Legends(0).ShadowOffset = 4                    '枠に影を付けて立体的に表示
   '  .Legends(0).Enabled = False                     '凡例を非表示にする

      '上記以外の設定については、.Legends(0) のプロパティを調べて見て下さい。
      '■-----------------------------------------------End----■

   End With

End Sub
メンテ
Chartコントロール(VB2008版)でY軸のタイトル(点数)の設定(VB.NET)  (No.9の個別表示) [スレッド一覧へ]
日時: 2010/03/10 18:52
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,Y軸のタイトルの設定              *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button10_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Button10.Click
'10. Y軸のタイトル(点数)の設定
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   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
      '■------------------- Y軸のタイトルの設定 ----------------Start--■
      With Chart1.ChartAreas(0).AxisY
         .Title = "点  数"
         .TitleAlignment = StringAlignment.Center        '中央に表示
         .TextOrientation = TextOrientation.Stacked      '縦書きで表示
         .TitleFont = New Font("MS P明朝", 12, FontStyle.Regular)
         .TitleForeColor = Color.Blue
      End With
      '■---------------------------------------------------------End---■

   End With
End Sub
メンテ
Chartコントロール(VB2008版)でX軸のタイトル(生徒名)の設定(VB.NET)  (No.10の個別表示) [スレッド一覧へ]
日時: 2010/03/10 18:55
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,X軸のタイトルの設定              *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button11_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Button11.Click
'11. X軸のタイトル(生徒名)の設定
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   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
      '■------------------- X軸のタイトル(生徒名)の設定 ----------------Start--■
      With Chart1.ChartAreas(0).AxisX
         .Title = "生 徒 名"
         .TitleAlignment = StringAlignment.Center        '中央に表示
         .TextOrientation = TextOrientation.Auto         'Autoで表示
         .TitleFont = New Font("MS P明朝", 12, FontStyle.Regular)
         .TitleForeColor = Color.Green
      End With
      '■-----------------------------------------------------------------End---■

   End With
End Sub
メンテ
Chartコントロール(VB2008版)でマーカの設定(VB.NET)  (No.11の個別表示) [スレッド一覧へ]
日時: 2010/03/11 06:49
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,マーカの設定                     *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button12_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Button12.Click
'12.マーカの設定
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   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
         '折れ線グラフ
         .Series(i - 1).ChartType = DataVisualization.Charting.SeriesChartType.Line
      Next

      '■------------------- マーカーの設定 ----------------Start--■
      .Series(0).MarkerStyle = MarkerStyle.Star5      'マーカーの種類を指定
      .Series(0).MarkerSize = 15                      'マーカーの大きさを指定
      .Series(0).MarkerColor = Color.Gold             'マーカーのカラーを設定
      '小さな画像ファイルを準備しておいて下さい。
      .Series(1).MarkerImage = "Marker.png"           '指定の画像をマーカーに
      .Series(1).MarkerStyle = MarkerStyle.Circle
      .Series(2).MarkerStyle = MarkerStyle.Triangle
      .Series(2).MarkerSize = 10                      'マーカーの大きさを指定

      '■---------------------------------------------------End----■

   End With
End Sub

 上記実行図
 http://hanatyan.sakura.ne.jp/chart/chart12.png
メンテ
Chartコントロール(VB2008版)で表示が重なった場合の対策(VB.NET)  (No.12の個別表示) [スレッド一覧へ]
日時: 2010/07/11 09:15
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,表示が重なった場合の対策,背面,全面,半透明  *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button13_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Button13.Click
'13.表示が重なった場合の対策(後ろに隠れた部分が認識できるように)
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      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
      '■------------------- グラフを3Dで表示する ----------------Start--■
      .ChartAreas(0).Area3DStyle.Enable3D = True   '3D 表示にする場合
      .ChartAreas(0).Area3DStyle.Inclination = 15  '15度傾き(変更すると氏名が全部表示されなくなる)
      .ChartAreas(0).Area3DStyle.Rotation = -10    '15度回転(変更すると氏名が全部表示されなくなる)
      '■---------------------------------------------------------End----■

      '■------------------- 列幅を設定 ----------------Start--■
      '一番後ろになる色は目立つ色で
      .Series(0).Color = Color.Red
      '少し目立つ色で半透明で表示
      .Series(1).Color = Color.FromArgb(100, Color.Blue)
      'あまり目立たない色で半透明で表示
      .Series(2).Color = Color.FromArgb(100, Color.Yellow)
      '表示順を変える事で、前面に表示する系列を選択してもOK
      '(Series(1) に入れる元のデータの行等の順番を変えるという事です。)
      '5.グラフの種類を変更する も参考にして下さい。
      '■-----------------------------------------------End----■

   End With

End Sub


※ 表示順を変えるという事をもう少し詳しく説明すると。

通常の場合

Series(0)   = 1行目のデータ
Series(1)   = 2行目のデータ
Series(2)   = 3行目のデータ
Series(3)   = 4行目のデータ(最後のデータ) 'これが最前面に表示される


2行目のデータを最前面に表示したい場合

Series(0)   = 1行目のデータ
Series(1)   = 4行目のデータ
Series(2)   = 3行目のデータ
Series(3)   = 2行目のデータ(入れ替える) 'これで2行目が最前面に表示される

上記のように Series 内に入れる時に最前面に表示したいデータを最後に入れるように
してやればいいのです。
但し、そのままでは、凡例や系列の色も変わってしまうので、変えたくない場合は
系列のカラーも入れ替えるようにして下さい。


  上記実行図
  http://hanatyan.sakura.ne.jp/chart/chart13.png
メンテ
Chartコントロール(VB2008版)でカスタム属性を使って描画(VB.NET)  (No.13の個別表示) [スレッド一覧へ]
日時: 2010/03/10 19:29
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,カスタム属性を使って描画,                  *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button14_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Button14.Click
'14.カスタム属性を使って描画
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      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
         '■------------------- 棒のカラーを指定の色に設定 ----------------Start--■
         Dim Col(5) As Color   'グラフのカラーを設定(お好みで、設定しなくてもOK)
         Col(0) = Color.DeepSkyBlue : Col(1) = Color.DeepPink : Col(2) = Color.ForestGreen
         Col(3) = Color.HotPink : Col(4) = Color.BlueViolet : Col(5) = Color.Lime
         '棒のカラーを指定の色に設定
         .Series(i - 1).Color = Col(i - 1)
         'データポイントラベルの文字色も同じ色に設定
         .Series(i - 1).Label = "#VALY"
         .Series(i - 1).LabelForeColor = Col(i - 1)
         '■---------------------------------------------------------------End----■


      Next
      '■------------------- カスタム属性を使って描画 ----------------Start--■
      '3.棒のカラーを指定の色に設定 のコードに下記の1行を追加するだけです。
      .Series(0)("DrawingStyle") = "Cylinder"
      .Series(1)("DrawingStyle") = "Emboss"
      .Series(2)("DrawingStyle") = "Wedge"

      '■-------------------------------------------------------------End----■

      'カスタム プロパティの特性
      '--------------------------------------------------------------------------------
      '該当するグラフの種類
      ' Bar, Column, Stacked Bar, 100% Stacked Bar, Stacked Column, 100% Stacked Column, Range Bar, Range Column
      '該当するグラフ要素
      ' Series, DataPoint
      '値の範囲
      ' Cylinder, Emboss, LightToDark, Wedge, Default
      '既定値
      ' Default
      '2D または 3D
      ' 「2 d、%3d


   End With
End Sub


  上記実行図
  http://hanatyan.sakura.ne.jp/chart/chart14.png
メンテ
Chartコントロール(VB2008版)で注釈を表示(VB.NET)  (No.14の個別表示) [スレッド一覧へ]
日時: 2010/03/10 19:30
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,注釈を表示,                                *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button15_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Button15.Click
'15.注釈を表示
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      '注釈の表示位置をデータポイントで指定する必要があるので下記のような設定になっています。
      '(もう少し解りやすいやり方があるのかも知れませんが取りあえずという事で)
      Dim series(ds.Tables(0).Columns.Count - 1) As Series
      For i As Integer = 1 To ds.Tables(0).Columns.Count - 1
         'Debug.Print(ds.Tables(0).Columns(i).ColumnName)
         '系列の作成(国語・数学・英語)
         series(i - 1) = New Series
         series(i - 1).Name = ds.Tables(0).Columns(i).ColumnName
      Next i
      For j As Integer = 1 To ds.Tables(0).Columns.Count - 1
         For i As Integer = 0 To ds.Tables(0).Rows.Count - 1
            '点数の取得(69,87,74,71,84,81,80,82,69,86,73,72,96,81,75)
            'Debug.Print(CType(ds.Tables(0).Rows(i).Item(j), Integer).ToString)
            series(j - 1).Points.Add(CType(ds.Tables(0).Rows(i).Item(j), Integer))
         Next i
      Next j
      For i As Integer = 1 To ds.Tables(0).Columns.Count - 1
         '取得したデータを書き込み
         Chart1.Series.Add(series(i - 1))
      Next i

      '■------------------- 注釈を設定 ----------------Start--■
      Dim ca As New CalloutAnnotation()
      ca.Name = "CA1"
      ca.CalloutStyle = CalloutStyle.Cloud '他7種類の形があります
      ca.Text = "帰国子女なので"             '注釈の文字
      ca.ForeColor = Color.Red
      ca.Font = New Font("MS P明朝", 11, FontStyle.Bold)
      ca.BackColor = Color.Yellow
      ca.ShadowColor = Color.Blue
      ca.ShadowOffset = 3
      '表示位置の設定
      ca.AnchorDataPoint = Chart1.Series("英語").Points(2)
      Chart1.Annotations.Add(ca)
      '■-----------------------------------------------End----■

   End With
   For i As Integer = 1 To ds.Tables(0).Rows.Count
      With Chart1.ChartAreas(0).AxisX
         'ラベルの作成(浅野・安室・加藤・斉藤・鈴木)
         .CustomLabels.Add(i * 2, 0, ds.Tables(0).Rows(i - 1).Item(0).ToString)
      End With
   Next i

   '■------------------- X軸・Y軸のフォント・線等の設定 ----------------Start--■
   With Chart1.ChartAreas(0).AxisY
      .Maximum = 120    '点数の最大値(注釈が下に表示されてしまうので、最大値を大きくして上に表示するように)  
      .Minimum = 0      '点数の最小値
      .Interval = 20    '点数のメモリ間隔(20点毎)
   End With
   '■-------------------------------------------------------------------End----■

End Sub


  上記実行図
  http://hanatyan.sakura.ne.jp/chart/chart15.png
メンテ
Chartコントロール(VB2008版)で背景をグラデーションで描画(VB.NET)  (No.15の個別表示) [スレッド一覧へ]
日時: 2010/03/10 19:10
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,背景をグラデーションで描画,                *
***********************************************************************************
投 稿 日 : 2010/03/10
投 稿 者 : 花ちゃん

Private Sub Button16_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Button16.Click
'背景をグラデーションで描画
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      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
         .Series(i - 1)("DrawingStyle") = "Cylinder"
      Next

      '■------------------- 背景をグラデーションで描画 ----------------Start--■
      .BackGradientStyle = GradientStyle.TopBottom
      .BackColor = Color.MintCream
      .BackSecondaryColor = Color.Gold
      .ChartAreas("ChartArea1").BackGradientStyle = GradientStyle.TopBottom
      .ChartAreas("ChartArea1").BackColor = Color.White
      .ChartAreas("ChartArea1").BackSecondaryColor = Color.LightPink
      '■---------------------------------------------------------------End----■

   End With

End Sub
メンテ
Chartコントロール(VB2008版)でChartの印刷関係の設定(VB.NET)  (No.16の個別表示) [スレッド一覧へ]
日時: 2010/03/26 10:29
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[チャート][印刷関係][]                                   *
* キーワード:Microsoft Chart Controls,グラフを印刷,ページ設定,印刷プレビュー     *
***********************************************************************************
投 稿 日 : 2010/03/26
投 稿 者 : 花ちゃん

下記コードだけで、表示中のグラフが印刷でき、簡単で便利かと。
印刷プレビュー等必要なければ削除して、Chart1.Printing.Print(False) の1行だけでも
OK です。

Private Sub Button17_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Button17.Click
'Chartの印刷関係の設定(別途、グラフは表示しておいて下さい。)
   '下記コード以外にコントロールの貼付とかは必要ありません。

   '■------------------- Chartの印刷設定 ----------------Start--■
   'ページ設定ダイアログボックスを表示
   Chart1.Printing.PageSetup()
   '印刷プレビューを表示
   Chart1.Printing.PrintPreview()
   'True で印刷のダイアログを表示して印刷(False で直ちに印刷)
   Chart1.Printing.Print(True)
   '■----------------------------------------------------End----■

End Sub
メンテ
Chartコントロール(VB2008〜版)で行と列を入れ替えて表示(VB.NET)  (No.17の個別表示) [スレッド一覧へ]
日時: 2012/07/04 14:01
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[チャート][描画・画像][]                                  *
* キーワード:Microsoft Chart Controls,MSChart,行/列切り替え,系列入れ替え,行と列  *
***********************************************************************************
'===================================================================================================
'投 稿 日:2012.07.04
'投 稿 者:VBレスキュー(花ちゃん)
'タイトル:Chartコントロール(VB2008〜版)で行と列を入れ替えて表示
'========1=========2=========3=========4=========5=========6=========7=========8=========9=========0
動作確認:WindowsVista / Windows 7 /  Excel 2007/2010   VB2010 / Framework 4 / ターゲットCPU:X86
[Option Compare Text] [Option Explicit On] [Option Infer On] [Option Strict On]で設定
'---------------------------------------------------------------------------------------------------

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

Public Class Form1

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

   frgRowCol = Not frgRowCol  'クリック毎に行と列を入れ替えるフラグ
   Chart1.Series.Clear()      '系列(データ関係)の初期化

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

   '正しく入れ替っているか?確認の為に表示
   '■------------------- データポイントラベルの設定・表示 ----------------Start--■
   For i As Integer = 0 To Chart1.Series.Count - 1
      With Chart1.Series(i)
         'データラベルにデータポイントの Y 値を表示
         .Label = "#VALY"  'マクロ(キーワード)で指定 注@ 参照
         .LabelForeColor = Color.Blue
         .Font = New Font("MS P明朝", 10, FontStyle.Regular)
      End With
   Next
   '■---------------------------------------------------------------------End----■
End Sub

End Class
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ