Previous topicNext topic
Help > 开发指南 > 窗体开发 > 控件参考 > 控件参考 > 图表 >
SmFlexPie

饼图是用于数据可视化的最常见工具,是显示由饼图或切片表示的每个类别的比例贡献的圆形图形。因变量的大小与切片的角度成正比。这些图表可用于仅绘制一个具有非零值和正值的序列。例如,您可以使用饼图来显示各种汽车公司的市场份额。


FlexChart for WinForms 通过由 FlexPie 类表示的独立控件提供饼图。可以使用 FlexPie 类提供的 FlexPie.DataSource 属性将图表与数据绑定。此类还提供 FlexPie.Binding 和 FlexPie.BindingName 属性,用于设置饼图扇区的数字值和标签。还可以通过设置 StartAngle 属性来指定要开始按顺时针方向绘制切片的角度。弹性图表还允许您创建饼图的以下变体:

甜甜圈图:将 InnerRadius 属性设置为大于零的值,以在中心创建一个孔。默认情况下,此属性设置为零。
分解饼图:将 Offset 属性设置为大于零的值,以将切片推离中心。默认情况下,此属性设置为零。
反向饼图:将 Reversed 属性设置为 true,以创建具有逆时针方向绘制角度的图表。默认情况下,此属性设置为 false。


要使用弹性图表创建饼图:

在设计时

1、将 SmFlexPie 控件拖放到窗体中。
2、右键单击窗体上的 SmFlexPie 控件以打开“属性”窗口。
3、使用数据源属性设置数据源。
4、设置“Binding(绑定)”和“BindingName(绑定名称)”属性。

使用代码

若要通过代码创建 WinForms 饼图,初始化 FlexPie 控件后的第一步是清除默认序列并使用 Add 方法添加新系列。通过 DataSource 属性设置数据源,并设置 BindingName 和 Binding 属性。您还可以通过设置其他必需属性(如标题内容、数据标签内容等)来进一步设置图表。

Vb.Net
 
            'Binding FlexPie's AxisX to 'Value' so values appear in Horizontal axis
            flexPie1.Binding = "Value"

            flexPie1.BindingName = "Name"

            'Specify what and how to show data values
            flexPie1.DataLabel.Content = "{name} : {p:0}%"

            'Specify where to position the data labels relative to pie slices
            flexPie1.DataLabel.Position = PieLabelPosition.Radial

            'Setting FlexPie's Header
            flexPie1.Header.Content = "Market Share of Automobile Companies"

            'Passing data in FlexPie
            flexPie1.DataSource = GetCarSales()

C#
 
//Binding FlexPie's AxisX to 'Value' so values appear in Horizontal axis
flexPie1.Binding = "Value";

flexPie1.BindingName = "Name";

//Specify what and how to show data values
flexPie1.DataLabel.Content = "{name} : {p:0}%";

//Specify where to position the data labels relative to pie slices
flexPie1.DataLabel.Position = PieLabelPosition.Radial;

//Setting FlexPie's Header
flexPie1.Header.Content = "Market Share of Automobile Companies";

//Passing data in FlexPie
flexPie1.DataSource = GetCarSales();
 

创建多个饼图

虽然单个饼图用于显示组中的部分与整体的关系,但跨不同组显示或比较数据需要多个饼图。例如,您可以使用多个饼图来比较各个汽车品牌的季度销售数据。使用 FlexChart,只需在 FlexPie 类的 Binding 属性中设置数据源中的逗号分隔字段名称即可实现此目的。

Vb.Net
 
'Bind the FlexPie control with datasource
flexPie1.DataSource = data
flexPie1.BindingName = "Name"

'Specify comma separated field names to render multiple pie charts
flexPie1.Binding = "Q1,Q2,Q3,Q4"

'Set titles of pie charts
flexPie1.Titles = New String() {"Quarter1", "Quarter2", "Quarter3", "Quarter4"}

'Set and position data labels for pie charts
flexPie1.DataLabel.Content = "{name}"
flexPie1.DataLabel.Position = C1.Chart.PieLabelPosition.Radial

C#
 
//Bind the FlexPie control with datasource
flexPie1.DataSource = data;
flexPie1.BindingName = "Name";
            
//Specify comma separated field names to render multiple pie charts
flexPie1.Binding = "Q1,Q2,Q3,Q4";
            
//Set titles of pie charts
flexPie1.Titles = new []{ "Quarter1", "Quarter2", "Quarter3", "Quarter4"};

//Set and position data labels for pie charts
flexPie1.DataLabel.Content = "{name}";
flexPie1.DataLabel.Position = C1.Chart.PieLabelPosition.Radial;