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