バージョン

その他の分類項目

このトピックは、 UltraPieChart コントロールの Others カテゴリの構成方法を示します。トピックの最後で、完全なコード例を提供します。

トピックは以下のとおりです。

概要

Pie Chart コントロールの基本データに、小さい値を含む多くの項目が含まれる場合があります。この場合、Others カテゴリは、単一スライスへの複数のデータ値の自動集計を許可します。

プレビュー

以下は最終結果のプレビューです。

PieChartLegendAndOthersCategory Win.PNG

図 1: サンプル コードによって実装された Others カテゴリを備える円チャート

要件

このトピックは、ユーザーが データ バインディングトピックを既に読んでいることを前提とし、開始点としてその中のコードを使用します。

概要

  1. データ モデルの定義。

  2. 円チャートの DataSource として Data クラスのインスタンスを構成

  3. Others カテゴリ の構成

  4. (オプション) 結果の検証

手順

  1. データ モデルを定義 します。

DataItem と呼ばれるシンプルなデータ モデルを定義します。次に、相対的に小さい値の複数の DataItems を含む Data コレクションを定義します。

C# の場合:

    public class DataItem
    {
        public string Label { get; set; }
        public double Value { get; set; }
    }
    public class Data : ObservableCollection<DataItem>
    {
        public Data()
        {
            Add(new DataItem { Label = "Item 1", Value = 5 });
            Add(new DataItem { Label = "Item 2", Value = 6 });
            Add(new DataItem { Label = "Item 3", Value = 3 });
            Add(new DataItem { Label = "Item 4", Value = 7 });
            Add(new DataItem { Label = "Item 5", Value = 1 });
            Add(new DataItem { Label = "Item 6", Value = 1 });
            Add(new DataItem { Label = "Item 7", Value = 1 });
            Add(new DataItem { Label = "Item 8", Value = 1 });
            Add(new DataItem { Label = "Item 9", Value = 1 });
        }
    }

Visual Basic の場合:

Public Class DataItem
    Public Property Label() As String
        Get
            Return _Label
        End Get
        Set
            _Label = Value
        End Set
    End Property
    Private _Label As String
    Public Property Value() As Double
        Get
            Return _Value
        End Get
        Set
            _Value = Value
        End Set
    End Property
    Private _Value As Double
End Class
Public Class Data
    Inherits ObservableCollection(Of DataItem)
    Public Sub New()
        Add(New DataItem() With { .Label = "Item 1", .Value = 5  })
        Add(New DataItem() With { .Label = "Item 2", .Value = 6  })
        Add(New DataItem() With { .Label = "Item 3", .Value = 3  })
        Add(New DataItem() With { .Label = "Item 4", .Value = 7  })
        Add(New DataItem() With { .Label = "Item 5", .Value = 1  })
        Add(New DataItem() With { .Label = "Item 6", .Value = 1  })
        Add(New DataItem() With { .Label = "Item 7", .Value = 1  })
        Add(New DataItem() With { .Label = "Item 8", .Value = 1  })
        Add(New DataItem() With { .Label = "Item 9", .Value = 1  })
    End Sub
End Class
  1. 円チャートの DataSource として Data クラスのインスタンスを構成します。

C# の場合:

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        UltraPieChart pieChart;
        UltraLabel ultraLabel1;
        UltraItemLegend legend;
        private void Form1_Load(object sender, EventArgs e)
        {
            pieChart = new UltraPieChart
            {
                Dock = DockStyle.Left,
                LabelMemberPath = "Label",
                ValueMemberPath = "Value",
                DataSource = new Data(),
            };
            this.Controls.Add(pieChart);
            ultraLabel1 = new UltraLabel
            {
                Name = "ultraLabel1",
                Dock = DockStyle.Right,
                Text = ""
            };
            this.Controls.Add(ultraLabel1);
            this.ultraLabel1.BringToFront();
            legend = new UltraItemLegend
            {
                Dock = DockStyle.Right,
                Height = 500
            };
            this.Controls.Add(legend);
            this.pieChart.Legend = legend;
            this.legend.BringToFront();
     }

VB の場合:

Partial Public Class Form1
    Inherits Form
    Public Sub New()
        InitializeComponent()
    End Sub
    Private pieChart As UltraPieChart
    Private ultraLabel1 As UltraLabel
    Private legend As UltraItemLegend
    Private Sub Form1_Load(sender As Object, e As EventArgs)
                pieChart = New UltraPieChart() With { _
                        .Dock = DockStyle.Left, _
                        .LabelMemberPath = "Label", _
                        .ValueMemberPath = "Value", _
                        .DataSource = New Data() _
                }
        Me.Controls.Add(pieChart)
                ultraLabel1 = New UltraLabel() With { _
                        .Name = "ultraLabel1", _
                        .Dock = DockStyle.Right, _
                        .Text = "" _
                }
        Me.Controls.Add(ultraLabel1)
        Me.ultraLabel1.BringToFront()
                legend = New UltraItemLegend() With { _
                        .Dock = DockStyle.Right, _
                        .Height = 500 _
                }
        Me.Controls.Add(legend)
        Me.pieChart.Legend = legend
        Me.legend.BringToFront()
    End Sub
End Class

円チャートは図 2 として表示します。

BeforeOthersCategory Win.png

図 2: Others カテゴリを構成する前の円チャート

  1. Others カテゴリを構成します。

項目の 5~9 は非常に小さく、雑然とした外観のチャートになります。UltraPieChart の OthersCategoryThresholdOthersCategoryType、および OthersCategoryText プロパティを使用して、Others カテゴリにこれらの項目を割り当てます。

C# の場合:

pieChart.OthersCategoryThreshold = 2;
pieChart.OthersCategoryType = OthersCategoryType.Number;
pieChart.OthersCategoryText = "Others";

VB の場合:

pieChart.OthersCategoryThreshold = 2
pieChart.OthersCategoryType = OthersCategoryType.Number
pieChart.OthersCategoryText = "Others"

OthersCategoryThreshold は 2 に設定、OthersCategoryType は Number に設定されています。したがって、2 以下の値を含む項目は、Others カテゴリに割り当てられます。

  1. (オプション) 結果を確認します。

アプリケーションを実行します。上記の円チャートは図 1 として表示します。

Note
注:

OthersCategoryType  を Percent に設定すると、OthersCategoryThreshold は値ではなくパーセンテージとして解釈されます。つまり、値がすべての項目の値の合計の 2% 未満である項目は、Others カテゴリに割り当てられます。使用しているアプリケーションに最も適切な OthersCategoryType を使用できます。