Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > Chart图表 >
如何:显示数据标签并设置其格式

创建图表后,可以在数据点旁边显示标签。如果标签显示点值,则控件会在数据源更新后自动刷新它们。您还可以在标签中显示自定义(未绑定)信息。

显示图表中所有序列和点的标签

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"]);