このセクションでは、円グラフを作成する手順を説明します。円グラフは、単純な値の表示に使用されます。C1Chart の他の種別と異なり、円グラフで複数のセグメントを表示するには、複数のデータセットが必要です。データセットが1つしかない場合、円グラフはセグメントなしで1つの円になるだけです。この例では、8つのセグメントを持つ円を作成するため、8つのデータ点を持つ1つのデータセットではなく、それぞれデータ点を1つだけ持つ8つのデータセットを使用します。
このグラフは、各製品が円の1つのセグメントに相当する円グラフとして表示します。
デザイン時の円グラフの作成
この作業では、C1Chart コントロールをフォームに追加済みであることが前提となります。
デフォルトの円グラフでは、それぞれ4つのデータ点を持つ5つの円が作成されます。
新しいデータセットにデータを追加する必要があるとの警告が表示されます。
凡例を有効にするには、[グラフのプロパティ]ダイアログボックスのツリービューペインで[外観]-[凡例]を選択して、[外観][凡例]」タブにある[表示]チェックボックスを ON にします。
プログラムによる円グラフの作成
この作業では、C1Chart コントロールをフォームに追加済みであることが前提となります。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Imports C1.Win.C1Chart; |
C# コードの書き方
C# |
コードのコピー
|
---|---|
using C1.Win.C1Chart; |
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' グラフ種別を設定 C1Chart1.ChartArea.Inverted = True C1Chart1.ChartGroups(0).ChartType = C1.Win.C1Chart.Chart2DTypeEnum.Pie ' 既存のデータセットをクリア C1Chart1.ChartGroups(0).ChartData.SeriesList.Clear() ' データを追加 Dim ProductNames As String() = {"Hand Mixer", "Stand Mixer", "Can Opener", "Toaster", "Blender", "Food Processor", "Slow Cooker", "Microwave"} Dim PriceX As Integer() = {80, 400, 20, 60, 150, 300, 130, 500} ' データセットのコレクションを取得 Dim dscoll As ChartDataSeriesCollection = C1Chart1.ChartGroups(0).ChartData.SeriesList For i As Integer = 0 To PriceX.Length - 1 ' データセットに入力 Dim series As ChartDataSeries = dscoll.AddNewSeries() ' 1つのデータ点を追加して1つの円を表示 series.PointData.Length = 1 ' 価格を Y データセットに割り当て series.Y(0) = PriceX(i) ' 凡例で製品名と製品価格を書式設定 series.Label = String.Format("{0} ({1:c})", ProductNames(i), PriceX(i)) Next ' 円の凡例を表示 C1Chart1.Legend.Visible = True ' グラフの凡例にタイトルを追加 C1Chart1.Legend.Text = "Product Unit Prices" End Sub |
C# コードの書き方
C# |
コードのコピー
|
---|---|
private void Form1_Load(object sender, EventArgs e) { // グラフ種別を設定 c1Chart1.ChartArea.Inverted = true; c1Chart1.ChartGroups[0].ChartType = C1.Win.C1Chart.Chart2DTypeEnum.Pie; // 既存のデータセットをクリア c1Chart1.ChartGroups[0].ChartData.SeriesList.Clear(); // データを追加 string[] ProductNames = { "Hand Mixer", "Stand Mixer", "Can Opener", "Toaster" ,"Blender" ,"Food Processor" ,"Slow Cooker" ,"Microwave"}; int[] PriceX = { 80, 400, 20, 60, 150, 300, 130, 500 }; // データセットのコレクションを取得 ChartDataSeriesCollection dscoll = c1Chart1.ChartGroups[0].ChartData.SeriesList; // データセットに入力 for (int i=0; i < PriceX.Length; i++) { ChartDataSeries series = dscoll.AddNewSeries(); // 1つのデータ点を追加して1つの円を表示 series.PointData.Length = 1; // 価格を Y データセットに割り当て series.Y[0] = PriceX[i]; // 凡例で製品名と製品価格を書式設定 series.Label = string.Format("{0} ({1:c})", ProductNames[i], PriceX[i]); } // 円の凡例を表示 c1Chart1.Legend.Visible = true; // グラフの凡例にタイトルを追加 c1Chart1.Legend.Text = "Product Unit Prices"; } |