9.Chart で円グラフ(ドーナツグラフ)を表示(16_Cht_06) (旧、SampleNo.366) |
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 参照設定:WaitTime.dll 参照設定方法参照 その他 :使用データ(Chart4.csv)は、次よりダウンロードして使って下さい。 chartdat.zip(各サンプル共通) :このサンプルを使用される前に、左のメニューの基本的な使い方とワンポイントテクニック集をご覧になって下さい。 このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.Chart で円グラフ(ドーナツグラフ)を表示 |
'チャート関係の名前空間です。 Imports System.Windows.Forms.DataVisualization.Charting Public Class Form1 Private Sub ChartShow() Chart1.Series.Clear() Chart1.Series.Add("0") '--------------------- データ読み込み部分 ----------------------------------- Dim fileName As String = "..\..\..\data\Chart4.csv" 'ファイルのパス Dim sr As New System.IO.StreamReader(fileName, System.Text.Encoding.Default) Dim xValues As String() = Split(sr.ReadLine(), ",") Dim yValue1 As String() = Split(sr.ReadLine(), ",") Dim yValue2(UBound(yValue1)) As Double sr.Close() With Chart1.Series(0) For i As Integer = LBound(yValue1) To UBound(yValue1) yValue2(i) = CType(yValue1(i), Double) .Points.Add(i) Next i '------------------------------------------------------------------------------- 'データソースを X 値と Y 値とにバインドする .Points.DataBindXY(xValues, yValue2) 'グラフの種類を円グラフに設定 .ChartType = DataVisualization.Charting.SeriesChartType.Doughnut '-------------- 以下は体裁の設定部分 --------------------- 'カラーを個別に設定(デフォルトでは、かぶる場合があるので) Dim Col(8) As Color 'グラフのカラーを設定(お好みで、設定しなくてもOK) Col(0) = Color.Red : Col(1) = Color.Yellow : Col(2) = Color.ForestGreen Col(3) = Color.HotPink : Col(4) = Color.Blue : Col(5) = Color.Aqua Col(6) = Color.Gray : Col(7) = Color.LightGray : Col(8) = Color.DarkOrange For i As Integer = 0 To UBound(yValue1) .Points(i).Color = Col(i) Next i '民主のデータを切り出す .Points(0)("Exploded") = "true" 'データポイントラベルの表示設定 .Label = "#VALX" & "(#VALY%)" End With With Chart1 '3Dで表示時の引き出し線の長さを指定する(2Dの場合は、"LabelsRadialLineSize" 等で) .Series(0)("3DLabelLineSize") = "30" '30 〜 100 の範囲で指定 '2Dで表示時の円グラフの円の形状 .Series(0)("PieDrawingStyle") = "SoftEdge" '"Default" "Concave" 'データポイントのラベルを Outside に表示 .Series(0)("PieLabelStyle") = "Outside" 'ドーナツの内円(0〜99 で、0 で帯になり数字が大きい程内円が小さくなる 100=エラー) .Series(0)("DoughnutRadius") = "70" '3D スタイルで円を描画 .ChartAreas(0).Area3DStyle.Enable3D = True 'データの描画開始位置の設定(12時の位置から描画開始) .ChartAreas(0).Area3DStyle.Rotation = -90 '■------------------- タイトルを設定 ----------------Start--■ 'タイトルを設定 .Titles.Clear() .Titles.Add("") With .Titles(0) .Alignment = Drawing.ContentAlignment.TopCenter .ForeColor = Color.Blue .Font = New Font("MS P明朝", 10, FontStyle.Bold Or FontStyle.Underline) .Text = "政党支持率(2010/02)" End With '■----------------------------------------------------End----■ '■------------------- Chartコントロールの外形を設定 ----------------Start--■ .BorderSkin.SkinStyle = DataVisualization.Charting.BorderSkinStyle.Emboss .BackColor = Color.Yellow .ChartAreas(0).BackColor = Color.MistyRose '■------------------------------------------------------------------End----■ '凡例を非表示に設定 .Legends(0).Enabled = False '回転させながら表示 Dim wt As New WaitTime.Class1 For i As Integer = -90 To 90 .ChartAreas(0).Area3DStyle.Rotation = i wt.WaitTime(50) Next .ChartAreas(0).Area3DStyle.Rotation = -90 End With 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. |
検索キーワード及びサンプルコードの別名(機能名) |
3D ドーナツグラフ 3D 円グラフ 円グラフを切り出す 引き出し線の設定 |