如何在Excel中画出如此美妙又实用的图?

梦似曾见 549 2022-09-26

本文转载自网络公开信息

大家知道,Excel中的散点图可以显示两组数据之间的关系,而气泡图则可以显示三组数据之间的关系。

气泡图中沿横坐标轴(x 轴)方向显示一组数值数据,沿纵坐标轴(y 轴)方向显示第二组数值数据,而第三组数值数据则用气泡的大小来显示。与散点图一样,其三组数据都必须为数值,不同的是气泡图中的每个数据点都对应三个数据。

一、气泡图的基本制作步骤

假如某公司的部分产品有如图所示的三组数据,数据在A1:D7区域中,要用气泡图来显示其销售量、增长率及市场份额三者之间的关系。

以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

上述代码根据所选区域数据创建一个三维气泡图,并将各行数据设置为不同的系列,从而在图例中显示各系列名称。


本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表班牛的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
上一篇:京东如何发货?怎么选择发货地址?(京东在哪里选择发货地址)
下一篇:京东如何延迟发货?延迟发货会怎样?(怎么让京东延迟发货)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~