Excel 2007/2010:
以Excel 2010为例
1.选择包含数值的区域,即B2:D7区域。与制作其他图表(如柱形图)不同,制作柱形图时,选择数据区域中的某个单元格再插入图表即可,但在制作气泡图时,如果选择了标题所在的第一行,气泡图中的数据可能显示不正确。
2.在功能区中选择“插入”选项卡,在“图表”组中单击“其他图表”,在“气泡图”下选择“气泡图”或“三维气泡图”,本例选择“三维气泡图”。Excel会在工作表中添加一个气泡图。
3.右击某个数据系列点,选择“设置数据系列格式”,弹出“设置数据系列格式”对话框。在Excel 2010中可直接双击某个数据系列点打开该对话框。选择“填充”,勾选“依数据点着色”,这样给每个数据点设置不同的颜色。
下面的步骤可根据实际需要进行设置。
4.修改或添加网格线。选择图表,在功能区中选择“图表工具-布局”选项卡,在坐标轴组中单击“网格线→主要横网格线→其他主要横网格线选项”,弹出“设置主要网格线格式”对话框,选择“线型”,在“短划线类型”右侧的下拉列表中选择某种线型,如“方点”。
用同样的方法设置主要纵网格线。
5.修改气泡的大小表示。按第3步中的方法打开“设置数据系列格式”对话框,选择“系列选项”,在右侧区域中根据需要选择按“气泡面积”或“气泡宽度”来表示气泡大小,还可将气泡大小按比例缩放。此处将气泡大小缩小为原来的80%。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/ruanjianjc/)最后完成气泡图。
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 RangeDim i As IntegerOn Error GoTo line1Set rRng = Application.InputBox("选择包含数据标签的列区域", Title:="选择区域", Type:=8)
Selection.ApplyDataLabelsFor i = 1 To rRng.Rows.CountSelection.Points(i).DataLabel.Text = rRng.Item(i).TextNext iline1:End Sub
2.返回Excel工作表界面,单击气泡图中某个数据系列点选择整个数据系列,如图:
按Alt+F8,打开“宏”对话框,选择“AddLabel”宏并执行。宏运行后会弹出一个“选择区域”对话框,用鼠标选择数据标签所在的列区域,如本例中的A2:A7区域,选择列区域时确保所选区域包含的单元格数量与图表数据系列点数量相同,单击“确定”即可。
三、将文本添加到气泡图的图例中
如上图所示,当气泡图只包含一个数据系列,并选择“依数据点着色”时,图例中的数据点名称都为数值格式。如果要在图例中显示数据区域第一列的文本内容,如“产品代号”,可以在气泡图中将每一行数据作为一个数据系列,并指定每个数据系列的名称为第一列中的各个文本,Excel会自动在图例中显示这些文本内容。
但这种方法在数据较多时比较繁琐,如果用VBA代码来完成则较为快捷。在Excel 2007/2010中,如果数据区域在相邻的四列中,要设置第一列为图例中显示的文本内容,第二列为x轴,第三列为y轴,第四列为气泡大小,选择数据区域中不包含第一行标题的四列,如图:
然后执行下面的代码:
Sub AddBubble()'适用于Excel2007/2010Dim objCht As ChartDim i As IntegerDim iRows As Integer, iCols As IntegerDim rRng As RangeSet rRng = SelectioniRows = rRng.Rows.CountiCols = rRng.Columns.Count
If iCols = 4 ThenSet objCht = ActiveSheet.ChartObjects.Add(100, 80, 400, 250).ChartFor i = 1 To iRowsWith 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 WithNextEnd If
End Sub
在Excel 2003中执行下列代码:
Sub AddBubbleFor2003()'适用于Excel2003Dim objCht As ChartDim rRng As RangeDim i As IntegerDim iRows As Integer, iCols As Integer, irow As Integer, icol As IntegerOn Error GoTo line1Set rRng = SelectioniRows = rRng.Rows.CountiCols = rRng.Columns.Countirow = rRng.Rowicol = rRng.Column
If iCols = 4 ThenrRng.Offset(0, 1).Resize(1, 3).SelectSet objCht = ActiveSheet.ChartObjects.Add(100, 80, 450, 250).ChartobjCht.SetSourceData Source:=Selection
For i = 1 To iRowsWith 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 + 3End WithNextEnd If
line1:End Sub
上述代码根据所选区域数据创建一个三维气泡图,并将各行数据设置为不同的系列,从而在图例中显示各系列名称。