创建图表后,可以在数据点旁边显示标签。如果标签显示点值,则控件会在数据源更新后自动刷新它们。您还可以在标签中显示自定义(未绑定)信息。
DataLabelOptions 对象定义基本数据标签设置。使用 ChartView.DataLabels 属性检索对象。DataLabelOptions
使用 DataLabelOptions 属性指定每个标签中应显示的信息。
下面的示例演示如何创建簇状柱形图并显示所有序列的值标签。
Vb.Net |
Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets("chartStock") workbook.Worksheets.ActiveWorksheet = worksheet '创建图表并指定其位置。 Dim chart As DevExpress.Spreadsheet.Charts.Chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet("B2:F6")) chart.TopLeftCell = worksheet.Cells("H2") chart.BottomRightCell = worksheet.Cells("N14") '显示数据标签 chart.Views(0).DataLabels.ShowValue = True |
C# |
DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets["chartStock"]; workbook.Worksheets.ActiveWorksheet = worksheet; // 创建图表并指定其位置。 DevExpress.Spreadsheet.Charts.Chart chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet["B2:F6"]); chart.TopLeftCell = worksheet.Cells["H2"]; chart.BottomRightCell = worksheet.Cells["N14"]; //显示数据标签 chart.Views(0).DataLabels.ShowValue = true; |
可以使用以下内容类型:
标签包含 | 说明 | 描述 | 应用程序接口 |
Value | 价值 | 数据点值。 | DataLabelOptions.ShowValue |
Series name | 系列名称 | 系列名称。 | DataLabelOptions.ShowSeriesName |
Category name | 类别名称 | 参数值。此选项在不显示类别轴的图表(如饼图或圆环图)中非常有用。 | DataLabelOptions.ShowCategoryName |
Percentage | 百分比 | 占总数的百分比。仅适用于饼图和圆环图类型。 | DataLabelOptions.ShowPercent |
Bubble size | 气泡大小 | 气泡大小。仅在气泡图中可用。 | DataLabelOptions.ShowBubbleSize |
Legend key | 图例键 | 用于绘制系列的颜色和填充图案的示例。 | DataLabelOptions.ShowLegendKey |
可以使用 DataLabelBase.LabelPosition 属性来调整数据标签的位置。将其中一个 DataLabelPosition 枚举值分配给属性,以指定数据标签相对于其数据标记的位置。LabelPosition
下面的示例演示如何使用 DataLabelBase.LabelPosition 属性创建簇状柱形图、启用数据标签以及指定其位置。此示例将数据标签居中置于列中。
Vb.Net |
Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets("chartStock") workbook.Worksheets.ActiveWorksheet = worksheet '创建图表并指定其位置。 Dim chart As DevExpress.Spreadsheet.Charts.Chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet("B2:D4")) chart.TopLeftCell = worksheet.Cells("H2") chart.BottomRightCell = worksheet.Cells("N14") '显示数据标签并指定它们在图表中的位置。 chart.Views(0).DataLabels.ShowValue = True chart.Views(0).DataLabels.LabelPosition = DevExpress.Spreadsheet.Charts.DataLabelPosition.Center |
C# |
DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets["chartStock"]; workbook.Worksheets.ActiveWorksheet = worksheet; // 创建图表并指定其位置。 DevExpress.Spreadsheet.Charts.Chart chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet["B2:D4"]); chart.TopLeftCell = worksheet.Cells["H2"]; chart.BottomRightCell = worksheet.Cells["N14"]; //显示数据标签并指定它们在图表中的位置。 chart.Views[0].DataLabels.ShowValue = true; chart.Views[0].DataLabels.LabelPosition = DevExpress.Spreadsheet.Charts.DataLabelPosition.Center; |
上面列出的选项允许您使用内容填充标签。如果启用了多个选项,请使用 DataLabelBase.Separator 属性分隔标签条目。最常用的分隔符是逗号、分号、句点、换行符和空格。您还可以指定自定义分隔符。
以下示例演示了如何创建饼图并调整其数据标签的显示设置。将 DataLabelBase.ShowCategoryName 和 DataLabelBase.ShowPercent 属性设置为在数据标签中同时显示类别名称和百分比值。若要分隔这些条目,请为 DataLabelBase.Separator 属性分配一个换行符。百分比值显示在单独的行上。true
Vb.Net |
Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets("chartStock") workbook.Worksheets.ActiveWorksheet = worksheet '创建图表并指定其位置。 Dim chart As DevExpress.Spreadsheet.Charts.Chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.Pie, worksheet("B2:C7")) chart.TopLeftCell = worksheet.Cells("E2") chart.BottomRightCell = worksheet.Cells("K15") '显示类别名称和百分比。 Dim dataLabels As DevExpress.Spreadsheet.Charts.DataLabelOptions = chart.Views(0).DataLabels dataLabels.ShowCategoryName = True dataLabels.ShowPercent = True dataLabels.Separator = ControlChars.Lf '设置图表样式。 chart.Style = DevExpress.Spreadsheet.Charts.ChartStyle.ColorGradient '隐藏图例。 chart.Legend.Visible = False '设置第一个饼图切片的角度 chart.Views(0).FirstSliceAngle = 100 |
C# |
DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets["chartStock"]; workbook.Worksheets.ActiveWorksheet = worksheet; // 创建图表并指定其位置。 DevExpress.Spreadsheet.Charts.Chart chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.Pie, worksheet["B2:C7"]); chart.TopLeftCell = worksheet.Cells["E2"]; chart.BottomRightCell = worksheet.Cells["K15"]; // 显示类别名称和百分比。 DevExpress.Spreadsheet.Charts.DataLabelOptions dataLabels = chart.Views[0].DataLabels; dataLabels.ShowCategoryName = true; dataLabels.ShowPercent = true; dataLabels.Separator = "\n"; // 设置图表样式。 chart.Style = DevExpress.Spreadsheet.Charts.ChartStyle.ColorGradient; // 隐藏图例。 chart.Legend.Visible = false; // 设置第一个饼图切片的角度 chart.Views[0].FirstSliceAngle = 100; |
您可以在数据标签中设置数值的格式。数据标签中的数字可以以百分比、小数、货币、科学、分数、文本、会计、日期、时间或自定义格式显示。若要应用格式,请使用 DataLabelBase.NumberFormat 属性。此属性检索 NumberFormatOptions 对象。将数字格式代码分配给 NumberFormatOptions.FormatCode 属性。将 NumberFormatOptions.IsSourceLinked 属性设置为 以指示应用的格式与保存数据点值的工作表单元格的数字格式不同。false
下面的示例演示了如何创建簇状柱形图,以及如何将数据标签中显示的数值格式化为百分比值。若要应用数字格式,请将 NumberFormatOptions.IsSourceLinked 属性设置为 false,并将相应的格式代码分配给 NumberFormatOptions.FormatCode 属性。
Vb.Net |
Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets("chartStock") workbook.Worksheets.ActiveWorksheet = worksheet '创建图表并指定其位置。 Dim chart As DevExpress.Spreadsheet.Charts.Chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet("B2:D4")) chart.TopLeftCell = worksheet.Cells("H2") chart.BottomRightCell = worksheet.Cells("N14") '显示数据标签并指定它们在图表中的位置。 chart.Views(0).DataLabels.ShowValue = True chart.Views(0).DataLabels.LabelPosition = DevExpress.Spreadsheet.Charts.DataLabelPosition.Center '设置数据标签格式。 chart.Views(0).DataLabels.NumberFormat.FormatCode = "0%" chart.Views(0).DataLabels.NumberFormat.IsSourceLinked = False |
C# |
DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets["chartStock"]; workbook.Worksheets.ActiveWorksheet = worksheet; // 创建图表并指定其位置。 DevExpress.Spreadsheet.Charts.Chart chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet["B2:D4"]); chart.TopLeftCell = worksheet.Cells["H2"]; chart.BottomRightCell = worksheet.Cells["N14"]; //显示数据标签并指定它们在图表中的位置。 chart.Views[0].DataLabels.ShowValue = true; chart.Views[0].DataLabels.LabelPosition = DevExpress.Spreadsheet.Charts.DataLabelPosition.Center; //设置数据标签格式。 chart.Views[0].DataLabels.NumberFormat.FormatCode = "0%"; chart.Views[0].DataLabels.NumberFormat.IsSourceLinked = false; |
您可以显示单个系列甚至单个数据点的标签。
若要显示特定系列的数据标签,请将 Series.UseCustomDataLabels 属性设置为 。使用 Series.CustomDataLabels 属性获取 DataLabelCollection。使用集合的属性来显示和修改数据标签。true
若要显示单个数据标签,请将 DataLabel 实例添加到 DataLabelCollection 集合中,并将索引设置为所选数据点的索引。将标签的 DataLabelBase.ShowValue 属性设置为(或使用任何其他 DataLabelBase.Show* 属性,具体取决于要在标签中显示的信息)。DataLabel.Text 属性检索用于指定数据标签的自定义文本的 ChartText 对象。使用 ChartText.SetValue 方法为数据标签指定新文本,或利用 ChartText.SetReference 方法从工作表单元格中检索标签的文本。true
DataLabelCollection.SetReference 方法允许您指定为数据标签提供值的单元格区域。您可以使用水平(行)或垂直(列)单元格区域。将 Series.UseCustomDataLabels 属性设置为 。true
下面的代码示例显示了如何使用单元格值作为数据标签:
Vb.Net |
Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets("chartStock") workbook.Worksheets.ActiveWorksheet = worksheet '创建图表并指定其位置。 Dim chart As DevExpress.Spreadsheet.Charts.Chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet("B2:C8")) chart.TopLeftCell = worksheet.Cells("F2") chart.BottomRightCell = worksheet.Cells("L15") '指定图表类型 chart.Style = DevExpress.Spreadsheet.Charts.ChartStyle.ColorGradient chart.Series(0).UseCustomDataLabels = True Dim customDataLabels = chart.Series(0).CustomDataLabels customDataLabels.SetReference(worksheet("D3:D8")) |
C# |
DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets["chartStock"]; workbook.Worksheets.ActiveWorksheet = worksheet; // 创建图表并指定其位置。 DevExpress.Spreadsheet.Charts.Chart chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet["B2:C8"]); chart.TopLeftCell = worksheet.Cells["F2"]; chart.BottomRightCell = worksheet.Cells["L15"]; // 指定图表类型 chart.Style = DevExpress.Spreadsheet.Charts.ChartStyle.ColorGradient; chart.Series[0].UseCustomDataLabels = true; var customDataLabels = chart.Series[0].CustomDataLabels; customDataLabels.SetReference(worksheet["D3:D8"]); |