このセクションでは、円グラフを作成する手順を説明します。円グラフは、単純な値の表示に使用されます。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";
}
|
|