Excel中制作气泡图及为气泡图的系列数据点添加文本数据标签
Excel中的散点图可以显示两组数据之间的关系,而气泡图则可以显示三组数据之间的关系。气泡图和三维气泡图 气泡图与 XY 散点图类似,但是它们对成组的三个数值而非两个数值进行比较。第三个数值确定气泡数据点的大小。您可以选择气泡图或者三维气泡图子类型。
气泡图中沿横坐标轴(x 轴)方向显示一组数值数据,沿纵坐标轴(y 轴)方向显示第二组数值数据,而第三组数值数据则用气泡的大小来显示。与散点图一样,其三组数据都必须为数值,不同的是气泡图中的每个数据点都对应三个数据。本文介绍在Excel中制作气泡图的方法以及快速为气泡图的系列数据点添加文本数据标签和快速在气泡图的图例中添加文本的方法。
简述
制作气泡图,在Exce的不同版本中各有不同,但大同小异,下面以Excel 2010为例为大家介绍下具体的制作步骤。有时我们需要在气泡图中给每个数据点添加文本数据标签,由于Excel没有提供直接的方法来给气泡图添加文本数据标签,所以可以用VBA代码来给所选择的数据系列添加指定区域中的文本数据标签,如果要在图例中显示数据区域第一列的文本内容,如“产品代号”,也可使用VBA代码来完成。
一、气泡图的基本制作步骤
假如某公司的部分产品有如图所示的三组数据,数据在A1:D7区域中,要用气泡图来显示其销售量、增长率及市场份额三者之间的关系。
Excel 2007/2010:
以Excel 2010为例
1.选择包含数值的区域,即B2:D7区域。与制作其他图表(如柱形图)不同,制作柱形图时,选择数据区域中的某个单元格再插入图表即可,但在制作气泡图时,如果选择了标题所在的第一行,气泡图中的数据可能显示不正确。
2.在功能区中选择“插入”选项卡,在“图表”组中单击“其他图表”,在“气泡图”下选择“气泡图”或“三维气泡图”,本例选择“三维气泡图”。Excel会在工作表中添加一个气泡图。
3.右击某个数据系列点,选择“设置数据系列格式”,弹出“设置数据系列格式”对话框。在Excel 2010中可直接双击某个数据系列点打开该对话框。选择“填充”,勾选“依数据点着色”,这样给每个数据点设置不同的颜色。
下面的步骤可根据实际需要进行设置。
4.修改或添加网格线。选择图表,在功能区中选择“图表工具-布局”选项卡,在坐标轴组中单击“网格线→主要横网格线→其他主要横网格线选项”,弹出“设置主要网格线格式”对话框,选择“线型”,在“短划线类型”右侧的下拉列表中选择某种线型,如“方点”。
用同样的方法设置主要纵网格线。
5.修改气泡的大小表示。按第3步中的方法打开“设置数据系列格式”对话框,选择“系列选项”,在右侧区域中根据需要选择按“气泡面积”或“气泡宽度”来表示气泡大小,还可将气泡大小按比例缩放。此处将气泡大小缩小为原来的80%。
最后完成气泡图。
Excel 2003:
1.选择包含数值的区域,即B2:D7区域。单击菜单“插入→图表”,弹出“图表向导”对话框。在对话框中选择图表类型为“气泡图”,子图表类型为“三维气泡图”,单击“完成”。
Excel在当前工作表中插入一个气泡图。
2.双击某个数据系列点,弹出“数据系列格式”对话框,选择“选项”,根据需要设置气泡大小,此处将气泡大小缩小为原来的80%,勾选“依数据点分色”,单击“确定”。
3.选择图表,单击菜单“图表→图表选项→网格线”,在“数值(X)轴”下勾选“主要网格线”,单击“确定”。在图表中分别双击“数值(X)轴主要网格线”和“数值(Y)轴主要网格线”,在弹出的“网格线”格式对话框中设置网格线样式。最后根据需要修改图表背景颜色、调整图表大小等。
二、在气泡图中为数据点添加文本数据标签
有时我们需要在气泡图中给每个数据点添加文本数据标签,由于气泡图中的三组数据都为数值,在气泡图中给数据点添加数据标签时,数据标签也显示为数值,有些不太直观。例如在上图中,我们就希望给每个数据点添加A2:A7区域所包含的“产品代号”文本标签:
Excel没有提供直接的方法来给气泡图添加文本数据标签。当气泡图中仅包含一个系列时,可以用下面的VBA代码来给所选择的数据系列添加指定区域中的文本数据标签。方法是:
1.按Alt+F11,打开VBA编辑器,在代码窗口中粘贴下列代码:
Sub AddLabel()
'为气泡图数据系列添加文本数据标签
Dim rRng As Range
Dim i As Integer
On Error GoTo line1
Set rRng = Application.InputBox("选择包含数据标签的列区域", Title:="选择区域", Type:=8)
Selection.ApplyDataLabels
For i = 1 To rRng.Rows.Count
Selection.Points(i).DataLabel.Text = rRng.Item(i).Text
Next i
line1:
End Sub
2.返回Excel工作表界面,单击气泡图中某个数据系列点选择整个数据系列,如图:
按Alt+F8,打开“宏”对话框,选择“AddLabel”宏并执行。宏运行后会弹出一个“选择区域”对话框,用鼠标选择数据标签所在的列区域,如本例中的A2:A7区域,选择列区域时确保所选区域包含的单元格数量与图表数据系列点数量相同,单击“确定”即可。
三、将文本添加到气泡图的图例中
如上图所示,当气泡图只包含一个数据系列,并选择“依数据点着色”时,图例中的数据点名称都为数值格式。如果要在图例中显示数据区域第一列的文本内容,如“产品代号”,可以在气泡图中将每一行数据作为一个数据系列,并指定每个数据系列的名称为第一列中的各个文本,Excel会自动在图例中显示这些文本内容。
但这种方法在数据较多时比较繁琐,如果用VBA代码来完成则较为快捷。在Excel 2007/2010中,如果数据区域在相邻的四列中,要设置第一列为图例中显示的文本内容,第二列为x轴,第三列为y轴,第四列为气泡大小,选择数据区域中不包含第一行标题的四列,如图:
然后执行下面的代码:
Sub AddBubble()
'适用于Excel2007/2010
Dim objCht As Chart
Dim i As Integer
Dim iRows As Integer, iCols As Integer
Dim rRng As Range
Set rRng = Selection
iRows = rRng.Rows.Count
iCols = rRng.Columns.Count
If iCols = 4 Then
Set objCht = ActiveSheet.ChartObjects.Add(100, 80, 400, 250).Chart
For i = 1 To iRows
With objCht.SeriesCollection.NewSeries
.ChartType = xlBubble3DEffect
.Name = rRng.Item((i - 1) * 4 + 1)
.XValues = rRng.Item((i - 1) * 4 + 2)
.Values = rRng.Item((i - 1) * 4 + 3)
.BubbleSizes = rRng.Item((i - 1) * 4 + 4)
End With
Next
End If
End Sub
在Excel 2003中执行下列代码:
Sub AddBubbleFor2003()
'适用于Excel2003
Dim objCht As Chart
Dim rRng As Range
Dim i As Integer
Dim iRows As Integer, iCols As Integer, irow As Integer, icol As Integer
On Error GoTo line1
Set rRng = Selection
iRows = rRng.Rows.Count
iCols = rRng.Columns.Count
irow = rRng.Row
icol = rRng.Column
If iCols = 4 Then
rRng.Offset(0, 1).Resize(1, 3).Select
Set objCht = ActiveSheet.ChartObjects.Add(100, 80, 450, 250).Chart
objCht.SetSourceData Source:=Selection
For i = 1 To iRows
With objCht
.SeriesCollection.NewSeries
.ChartType = xlBubble3DEffect
.SeriesCollection(i).Name = rRng.Item((i - 1) * 4 + 1)
.SeriesCollection(i).XValues = rRng.Item((i - 1) * 4 + 2)
.SeriesCollection(i).Values = rRng.Item((i - 1) * 4 + 3)
.SeriesCollection(i).BubbleSizes = "=" & ActiveSheet.Name & "!R" & irow + i - 1 & "C" & icol + 3
End With
Next
End If
line1:
End Sub
上述代码根据所选区域数据创建一个三维气泡图,并将各行数据设置为不同的系列,从而在图例中显示各系列名称。