特定の時点での系列の合計を円グラフで表すには、下記の例のように {%YVAL} を使用します。
Visual Basic コードの書き方
| Visual Basic |
コードのコピー
|
|---|---|
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' ラベルを読みやすく表示するには、明るい色を利用します。
C1Chart1.ColorGeneration = ColorGeneration.Flow
' ChartArea を最大化します。
C1Chart1.ChartArea.Margins.SetMargins(0, 0, 0, 0)
C1Chart1.ChartArea.Style.Border.BorderStyle = BorderStyleEnum.None
' グラフの種類を設定します。
C1Chart1.ChartArea.Inverted = True
C1Chart1.ChartGroups(0).ChartType = C1.Win.C1Chart.Chart2DTypeEnum.Pie
' 以前のデータをクリアします。
C1Chart1.ChartGroups(0).ChartData.SeriesList.Clear()
' データを追加します。
Dim ProductNames As String() = {"Mortgage", "Car", "Food", "Day Care", "Other", "Savings", "Utilities"}
Dim PriceX As Integer() = {2000, 1200, 500, 500, 450, 400, 350}
' シリーズのコレクションを取得します
Dim dscoll As ChartDataSeriesCollection = C1Chart1.ChartGroups(0).ChartData.SeriesList
' シリーズにデータを挿入します。
For i As Integer = 0 To PriceX.Length - 1
Dim series As ChartDataSeries = dscoll.AddNewSeries()
' Y データ系列に価格を割り当てます。
series.Y(0) = PriceX(i)
' 凡例上の製品名と製品価格の書式設定します。
series.Label = String.Format("{0} ({1:c})", ProductNames(i), PriceX(i))
series.DataLabel.Text = "{#TEXT}" & vbCr & vbLf & "{#YVAL} ({%YVAL:%})"
series.DataLabel.Compass = LabelCompassEnum.RadialText
series.DataLabel.Offset = -5
series.DataLabel.Visible = True
Next
' 円の凡例を表示します。
C1Chart1.Legend.Visible = True
' グラフの凡例にタイトルを追加します。
C1Chart1.Legend.Text = "Monthly Expenses"
End Sub
|
|
C# コードの書き方
| C# |
コードのコピー
|
|---|---|
private void Form1_Load(object sender, EventArgs e)
{
// ラベルを読みやすく表示するには、明るい色を利用します。
c1Chart1.ColorGeneration = ColorGeneration.Flow;
// ChartArea を最大化します。
c1Chart1.ChartArea.Margins.SetMargins(0, 0, 0, 0);
c1Chart1.ChartArea.Style.Border.BorderStyle = BorderStyleEnum.None;
// グラフの種類を設定します。
c1Chart1.ChartArea.Inverted = true;
c1Chart1.ChartGroups[0].ChartType = C1.Win.C1Chart.Chart2DTypeEnum.Pie;
// 以前のデータをクリアします。
c1Chart1.ChartGroups[0].ChartData.SeriesList.Clear();
// データを追加します。
string[] ProductNames = { "Mortgage", "Car", "Food", "Day Care", "Other", "Savings","Utilities" };
int[] PriceX = {2000, 1200, 500, 500, 450, 400, 350 };
// シリーズのコレクションを取得します。
ChartDataSeriesCollection dscoll = c1Chart1.ChartGroups[0].ChartData.SeriesList;
// シリーズにデータを挿入します。
for (int i = 0; i < PriceX.Length; i++)
{
ChartDataSeries series = dscoll.AddNewSeries();
// 円をひとつ表示するには、1つの点を追加します。
series.PointData.Length = 1;
// Y データ系列に価格を割り当てます。
series.Y[0] = PriceX[i];
// 凡例上の製品名と製品価格の書式設定します。
series.Label = string.Format("{0} ({1:c})", ProductNames[i], PriceX[i]);
series.DataLabel.Text = "{#TEXT}\r\n{#YVAL} ({%YVAL:%})";
series.DataLabel.Compass = LabelCompassEnum.RadialText;
series.DataLabel.Offset = -5;
series.DataLabel.Visible = true;
}
// 円の凡例を表示します。
c1Chart1.Legend.Visible = true;
// グラフの凡例にタイトルを追加します。
c1Chart1.Legend.Text = "Monthly Expenses";
}
|
|
データラベルはポイント値と各スライスのパーセンテージや円グラフ上のポイントを表します。