Previous topicNext topic
Help > 开发指南 > Excel > API > 主要对象 > 图表和图形 >
图表

电子表格文档 API 允许您创建图表。使用图表分析大量数据并显示不同数据集之间的关系。

支持的图表类型

电子表格文档 API 支持以下图表类型:

图表类型 图表子类型 说明

柱形图

2-D Column Charts: 二维柱形图:
Clustered Column 簇状列
Stacked Column 堆积柱
100% Stacked Column 100% 堆积柱
3-D Column Charts: 二维柱形图:
3-D Clustered Column 三维簇状柱
3-D Stacked Column 3-D 堆积柱
3-D 100% Stacked Column 3-D 100% 堆积柱
3-D Column 3-D 色谱柱
Cylinder Charts: 圆柱图:
Clustered Cylinder 簇状圆柱体
Stacked Cylinder 堆叠气缸
100% Stacked Cylinder 100%堆叠气缸
3-D Cylinder 3-D圆柱体
Cone Charts: 圆锥图:
Clustered Cone 簇状圆锥体
Stacked Cone 堆叠锥体
100% Stacked Cone 100% 堆叠锥体
3-D Cone 3-D锥体
Pyramid Charts: 金字塔图:
Clustered Pyramid 簇状金字塔
Stacked Pyramid 堆叠金字塔
100% Stacked Pyramid 100% 堆叠金字塔
3-D Pyramid 3-D 金字塔

折线图

2-D Line Charts: 二维折线图:
Line 线
Stacked Line 堆叠线
100% Stacked Line 100% 堆叠线
Line with Markers 带标记的线条
Stacked Line with Markers 带标记的堆叠线
100% Stacked Line with Markers 100% 带标记的堆叠线
3-D Line Charts: 二维折线图:
3-D Line 3-D线

饼图

2-D Pie Charts: 二维饼图:
Pie 馅饼
Exploded Pie 爆炸馅饼
3-D Pie Charts: 二维饼图:
3-D Pie 3-D饼图
3-D Exploded Pie 3-D 爆炸饼

甜甜圈图

Doughnut 油炸圈饼
Exploded Doughnut 爆炸甜甜圈

条形图

2-D Bar Charts: 二维条形图:
Clustered Bar 簇状条形图
Stacked Bar 堆叠酒吧
100% Stacked Bar 100% 堆叠棒
3-D Bar Charts: 二维条形图:
3-D Clustered Bar 3-D 簇状条形
3-D Stacked Bar 3-D 堆叠棒
3-D 100% Stacked Bar 3-D 100% 堆叠棒材
Cylinder Charts: 圆柱图:
Clustered Horizontal Cylinder 簇状卧式圆柱体
Stacked Horizontal Cylinder 堆叠式卧式气缸
100% Stacked Horizontal Cylinder 100%堆叠卧式气缸
Cone Charts: 圆锥图:
Clustered Horizontal Cone 簇状水平锥体
Stacked Horizontal Cone 堆叠水平锥体
100% Stacked Horizontal Cone 100% 堆叠水平锥体
Pyramid Charts: 金字塔图:
Clustered Horizontal Pyramid 簇状水平金字塔
Stacked Horizontal Pyramid 堆叠水平金字塔
100% Stacked Horizontal Pyramid 100%堆叠水平金字塔

面积图

2-D Area Charts: 二维面积图:
Area 面积
Stacked Area 堆叠面积
100% Stacked Area 100% 堆叠面积
3-D Area Charts: 二维面积图:
3-D Area 3-D 区域
3-D Stacked Area 3-D 堆叠区域
3-D 100% Stacked Area 3-D 100% 堆叠面积

散点图

Scatter 散射
Scatter with Smooth Lines and Markers 使用平滑线条和标记进行散射
Scatter with Smooth Lines 具有平滑线条的散射
Scatter with Straight Lines and Markers 使用直线和标记散射
Scatter with Straight Lines 直线散点

气泡图

Bubble 泡沫
3-D Bubble 3-D 气泡

股票图表

High-Low-Close 最高价-最低价-收盘价
Open-High-Low-Close 开盘-最高价-最低价-收盘价
Volume-High-Low-Close 成交量-最高价-最低价-收盘价
Volume-Open-High-Low-Close 成交量-开盘价-最高价-最低价-收盘价

雷达图

Radar 雷达
Radar with Markers 带标记的雷达
Filled Radar 填充雷达

Excel 2016 图表

Box and Whisker 箱须
Waterfall 瀑布
Histogram 直方图
Pareto 帕累托
Funnel 漏斗
Sunburst 旭日图
Treemap 树状图

SpreadSheet API 还为下面列出的图表提供有限的支持。您可以在 API 中加载/保存这些图表、创建和修改它们,但不能打印这些图表或将这些图表导出为 PDF。

图表元素

下图显示了图表元素。您可以添加或删除这些元素来自定义图表布局。

排列工作表数据以创建图表

创建图表时,电子表格会根据源范围内的行数和列数在图表上绘制数据:

如果源范围的行数多于列数,则第一列为类别轴(X 轴)提供标签,第一行包含系列名称。序列值按列排列。

如果源范围中不包括标签和/或序列名称,则图表将在类别轴上显示数据点的序列号,并使用默认序列名称(系列 1、系列 2、...、系列 N)。

如果源范围的列数多于行数,或者行数和列数相同,则第一行为类别轴(X 轴)提供标签,第一列包含系列名称。序列值按行排列。

如果源范围中不包括标签和/或序列名称,则图表将在类别轴上显示数据点的序列号,并使用默认序列名称(系列 1、系列 2、...、系列 N)。

可以使用 ChartObject.SwitchRowColumn 方法更改用于在图表上绘制数据序列的默认方向(无论序列值是从列还是行中获取),或者使用 direction 参数调用 ChartObject.SelectData 方法来指定如何检索序列值。

下表列出了如何在工作表上排列数据以创建特定图表。

图表类型 数据排列
折线图、柱形图、条形图、面积图、曲面图或雷达图

在列或行中:

饼图

使用排列在一列或一行中的单个值系列。另一列或另一行包含数据标签。

甜甜圈图

在一列或多列或行中,并且一列或一行包含数据标签。

散点图或气泡图

在列或行中。将 x 值放在第一列或第一行中,将相应的 y 值放在相邻的列或行中。

对于气泡图,添加指定气泡大小的列或行。

 

 
 
 
 
股票图表

以与股票图表名称相同的顺序排列的列或行。


创建图表

图表集合 (ChartCollection) 将图表存储在工作表中。可以使用 Worksheet.Charts 属性访问工作表的图表集合,并使用集合的 ChartCollection.Add 方法创建图表。ChartType 枚举值指定图表类型。

使用以下方法之一指定图表的数据:

使用ChartCollection.Add方法

将包含图表数据的单元格区域传递给 ChartCollection.Add 方法。有关如何组织源范围内的数据以创建特定图表的信息,请参阅以下部分:排列工作表数据以创建图表。

Vb.Net
Dim chart As DevExpress.Spreadsheet.Charts.Chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet("B2:F6"))

C#
DevExpress.Spreadsheet.Charts.Chart chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered, worksheet["B2:F6"]);


调用 ChartObject.SelectData方法

将包含图表数据的单元格区域传递给 ChartObject.SelectData 方法。此方法还允许您指定数据方向:序列值是按列 (ChartDataDirection.Column) 排列还是按行 (ChartDataDirection.Row) 排列。

Vb.Net
'创建一个列图表
Dim chart As DevExpress.Spreadsheet.Charts.Chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered)
'为图表选择数据并指定数据方向。
chart.SelectData(worksheet("B2:F6"), DevExpress.Spreadsheet.Charts.ChartDataDirection.Row)

C#
// 创建一个列图表
DevExpress.Spreadsheet.Charts.Chart chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered);
// 为图表选择数据并指定数据方向。
chart.SelectData(worksheet["B2:F6"], DevExpress.Spreadsheet.Charts.ChartDataDirection.Row);


向系列添加数据

使用 SeriesCollection.Add 方法重载将数据系列添加到图表的系列集合 (ChartObject.Series) 中。通过这些方法,您可以绘制非连续像元区域中包含的数据。您可以显式指定每个系列的名称、参数和值。

Vb.Net
'创建一个列图表
Dim chart As DevExpress.Spreadsheet.Charts.Chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered)
'向图表中添加两个数据系列.
chart.Series.Add(worksheet("D2"), worksheet("B3:B6"), worksheet("D3:D6"))
chart.Series.Add(worksheet("F2"), worksheet("B3:B6"), worksheet("F3:F6"))

C#
// 创建一个列图表
DevExpress.Spreadsheet.Charts.Chart chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered);
// 向图表中添加两个数据系列.
chart.Series.Add(worksheet["D2"], worksheet["B3:B6"], worksheet["D3:D6"]);
chart.Series.Add(worksheet["F2"], worksheet["B3:B6"], worksheet["F3:F6"]);


ChartData 对象指定在图表上绘制的数据。您还可以使用数字、字符串或布尔文本数组作为图表的数据源。ChartData 支持从 CellValue 对象数组进行隐式转换。您可以使用这些对象来指定数值、字符串或布尔值,而无需强制转换。使用 ChartData.FromArray 方法将 CellValue 类型数组转换为图表数据,或将这些数组直接分配给序列的参数和值。

Vb.Net
'创建一个列图表
Dim chart As DevExpress.Spreadsheet.Charts.Chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered)
'添加绑定到一组文字数据的序列。
Dim literalSeries As DevExpress.Spreadsheet.Charts.Series = chart.Series.Add(New DevExpress.Spreadsheet.CellValue() { "Jan", "Feb", "Mar", "Apr", "May", "Jun" }, New DevExpress.Spreadsheet.CellValue() { 50, 100, 30, 104, 87, 150 })

C#
// 创建一个列图表
DevExpress.Spreadsheet.Charts.Chart chart = worksheet.Charts.Add(DevExpress.Spreadsheet.Charts.ChartType.ColumnClustered);
// 添加绑定到一组文字数据的序列。
DevExpress.Spreadsheet.Charts.Series literalSeries = chart.Series.Add(new DevExpress.Spreadsheet.CellValue[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun" }, new DevExpress.Spreadsheet.CellValue[] { 50, 100, 30, 104, 87, 150 });

以下主题包含有关如何在代码中创建图表的更多示例:

组合图表

每个图表都有一个关联的 ChartView。创建图表时会自动创建此对象。它合并了相同类型的数据序列 (ChartView.Series) 并包含自定义选项。ChartView 对象是 Chart.Views 集合的成员。一个图表可以有多个 ChartView 对象(组合图表)。若要创建组合图,请使用 Series.ChangeType 方法更改现有序列的类型。如果指定的类型与其他序列类型不兼容,则电子表格将清除 ChartViewCollection 并创建一个新的 ChartView 对象以显示所有图表系列。此对象的类型与修改后的数据序列相同。以下主题包含兼容图表类型的列表,并介绍如何创建组合图表:如何:创建和修改图表。

修改图表并调整其设置

创建图表后,您可以使用电子表格图表 API 成员更改图表的布局和外观。

下表列出了您可以在图表上执行的操作。

执行此任务 使用这些 API 成员
更改图表的源数据 Chart.SelectData
Series.Arguments
Series.Values
如何:创建和修改图表
添加或删除数据序列 SeriesCollection.Add
SeriesCollection.Remove
SeriesCollection.RemoveAt
SeriesCollection.Clear
如何:创建和修改图表
更改图表上的数据方向 Chart.SwitchRowColumn 如何:创建和修改图表
更改数据序列的顺序 Series.BringForward
Series.SendBackward
Series.BringToFront
Series.SendToBack
如何:创建和修改图表
更改图表类型 Chart.ChangeType 如何:创建和修改图表
更改序列类型 Series.ChangeType 如何:创建和修改图表
在单独的工作表(图表工作表)上创建图表
或将现有图表移动到新图表工作表
Workbook.ChartSheets
ChartSheetCollection.Add
Chart.MoveToNewChartSheet
如何:创建图表工作表
如何:将图表移动到图表工作表
显示或隐藏主轴,调整它们的位置和方向 Chart.PrimaryAxes
Axis
Axis.Visible
Axis.Position
Axis.Scaling.Orientation
如何:更改图表轴的显示
添加轴标题 Axis.Title
Axis.Title.Visible
Axis.Title.SetValue
Axis.Title.SetReference
如何:更改图表轴的显示
更改轴缩放比例,以及在轴上设置数字格式 Axis.Scaling
AxisScaling.Min
AxisScaling.Max
AxisScaling.LogScale
AxisScaling.LogBase
Axis.NumberFormat
如何:更改图表轴的显示
显示辅助轴 Series.AxisGroup
AxisGroup.Secondary
Chart.SecondaryAxes
如何:更改图表轴的显示
显示或隐藏网格线 Axis.MajorGridlines
Axis.MinorGridlines
如何:更改图表轴的显示
添加图表标题 Chart.Title
ChartTitle.Visible
ChartTitle.SetValue
ChartTitle.SetReference
如何:显示图表标题
显示或隐藏图表图例,指定其位置,自定义图例条目 Chart.Legend
Legend.Visible
Legend.Position
Legend.CustomEntries
如何:显示或隐藏图表图例
显示 整个图表的数据标签或单个系列/数据点 ChartView.DataLabels
DataLabelPosition
Series.UseCustomDataLabels
Series.CustomDataLabels
如何:显示数据标签并设置其格式
数字格式应用于数据标签 ChartView.DataLabels.NumberFormat 如何:显示数据标签并设置其格式
应用图表样式 Chart.Style 如何:设置图表元素的格式
填充图表元素 ShapeFormatBase.Fill
ShapeOutlineFill.SetNoFill
ShapeOutlineFill.SetSolidFill
ShapeOutlineFill.SetGradientFill
ShapeFill.SetPatternFill
如何:设置图表元素的格式
如何:更改序列点的外观
设置图表元素轮廓的格式 ShapeFormatBase.Outline
ShapeOutlineFill.SetSolidFill
ShapeOutlineFill.SetNoFill
ShapeOutline.Width
ShapeOutline.CapType
ShapeOutline.Dashing
ShapeOutline.JoinType
ShapeOutline.CompoundType
如何:设置图表元素的格式
设置图表元素文本的格式 Chart.Font
ShapeTextFormat.Font
如何:设置图表元素的格式
对图表应用保护 Chart.Options.Protection 如何:保护图表

另见
电子表格图表示例
如何:在电子表格文档 API 中创建 Excel 2016 图表