存档在 ‘Excel2007图形与图表’ 分类中.

《Excel 2007图表完全剖析》品读

excel2007chart
年初,人民邮电出版社推出了一系列从国外引进的有关Excel 2007的图书,《Excel 2007图表完全剖析》就是其中的一本。最近,利用空余时间将该书通读了一遍,有些许收获,在这里与大家共享。
一、该书的作者
在开始介绍这本书之前,先谈谈该书的作者─—Bill Jelen。我想,对Excel有一定研究的人,一定知道这位大名鼎鼎的人,享有“Excel先生”美誉的一位Excel MVP,有着近20多年Excel使用经验,为多个知名公司提供Excel方面的服务,负责着一个每年近千万次访问量的Excel专业网站─—mrexcel.com。
(该网站不定期地推出Excel知识技术竞赛活动,很多答案十分优秀,可在其网站上下载这些作品)
了解了书的作者,就可以知道其作品不会让读者失望。是的,本书是一本优秀的介绍Excel 2007图表制作技术和技巧方面的图书。
二、该书的内容结构
该书共14章和1个附录,篇幅中等,对Excel有一定了解的读者花上两天左右的时间就可以通读该书,并有收获。我认为该书分为几大块,其中:
第1-2章介绍了新的Excel 2007图表界面。
第3-6章介绍了Excel中各种内置的图表类型及其适用,并配置了大量的示例和制图技巧。
第7章介绍了很多图表技巧,创建使用通常的技术制作不出来的图表。
第8章专门介绍了Excel 2007中得到增强的数据透视图。
第9-11章介绍了Excel 2007中使用图表工具之外的可视化表现方法和工具。
第12章介绍了在其它软件中使用Excel图表。
第13章介绍了使用VBA创建Excel图表,特别指出了在Excel 2007中的新元素,并提供了许多列表。
第14章较有趣,归纳了一些使用Excel图表欺骗人的小把戏。
附录A介绍了一些实用且顶级的图表资源。
根据上面列出的结构,读者可以从头到尾的阅读,也可以选读。例如,对Excel图表精通的人,可能想了解高级图表技巧,因而可直接阅读第7章。但我建议,绝大多数读者应通读全书,因为整本书中都有很多实用的专业图表知识。
三、该书的一些特点
1、书中内容相当丰富,穿插介绍了很多实用图表技术和技巧。
2、作者对Excel图表有着极其深刻的认识,这可从第3-6章介绍各种内置图表看出来。在这几章中,不是平铺直叙地介绍各种图表,而是以各种图表的适用情况对图表进行分类,以实用的角度介绍了各种图表的适用场合以及一些优缺点,让读者在表达数据时,能够选择正确的图表类型。
3、书中有很多实用案例的介绍,并很详细地说明了其制作步骤。
4、以Excel来表达专业图表设计师制作的图表。
5、介绍了Excel 2007中数据条、色阶、图标集、SmartArt图形和形状等仿图表功能,使用Excel 2007的新功能,在不使用图表的情况下,创建可观的可视化效果。
6、较详细地介绍了使用VBA在Excel 2007中创建图表。
7、指出了Excel 2007中的新功能,以及与以前版本Excel的不同,同时点出了图表专家的建议,指出了制作图表的一些原则。
8、书中有很多很有创意的图表。
四、部分内容指引
下面的一些技术和技巧是我认为较好的,不是很全面,具体请大家参阅该书。
1、第2章中使用基于日期的坐标轴来显示时间。
2、第3章中:1)理解基于日期的坐标轴与基于类别的坐标轴;2)像专业人士一样设计图表:在图表中使用装饰性元素。
3、第4章中创建瀑布图。
4、第5章中:1)在散点图中添加标签;2)比较折扣与销量之间的关系;3)像专业人士一样设计图表:使用成对条形图来比较3个变量;4)像专业人士一样设计图表:创建成对的比较图表;5)像专业人士一样设计图表:雷达图;6)像专业人士一样设计图表:Zelazny图表。
5、第6章中:1)创建OHLC图;2)创建包含成交量与竞争对手股价的烛柱图。
6、第7章中:1)使柱形与条形悬浮;2)将系列转换为网格线;3)使用虚构的XY系列将几个图表显示在单个图表中;4)创建动态图表;5)温度计图表;6)基准图;7)增量图。
7、第9章中:1)使用条件格式在工作表单元格中创建图表;2)使用滚动条控件创建图表;3)创建“茎叶”图表。
8、第11章中:将SmartArt转换为形状以创建动态图。
9、第13章中:在用户窗体中创建动态图表。
五、一些错别字
在书中,特别是后面的一些章节,出现了一些错别字或漏字,不过不妨碍阅读与理解。在这里,不一一列出。

制作当天的时间系列图表

本文作者为Scott Ruble,Excel开发团队成员,着重于数据可视领域。
有时,用户需要创建单天按分钟或小时产生的数据的图表。虽然实际上很容易获得,但不是非常明显。典型的案例是餐馆接受电话定单,希望按顺序缩短顾客等待的时间。但受到许多因素的影响,其中一个很大的因素是许多人同时订餐。同样,需要在繁忙时多人接电话。关键是确定繁忙的时间和等待人数。
此时,使用下面的数据集。为了使示例简单,仅显示了在上午11点到下午4:30,餐馆最繁忙时段的数据。数据反映了在此时间多少人在等待电话。同时,注意到在时间的间隙没有人等待。
示例数据
SourceDataTableList
首先,讲解一下人们常犯的一些错误。可能首先倾向于创建下面所示的折线图,然而,仔细观察后可能发觉并不能真实地反映数据的原意。在1:12PM到3:59PM之间没有人等待。但是,该图表显示统一的数据标记,即使时间明显不同(由红色标记显示)。因为折线图默认的轴是使用等间隔的分类轴。
1pic
不要被分类轴固有的限制所妨碍,下一步可能想要轴类型改为位于轴格式对话框中的“日期轴”。
结果图表如下所示,但不能够进一步满足意图。所有的数据都堆到了一天内。因为日期轴最小的单位是天。
2pic
创建该图表的关键是反映的单位要比天更小(例如小时或分钟),使用XY(散点)图。这将是合适的,因为XY散点图的水平轴是数值轴,并且时间本身被编码为系列数。下面是特定的步骤,创建时间系列图表反映真实的时间跨距。
步骤
1)选择数据,单击功能区“插入”选项卡。
2)在功能区“图表”组内,单击“散点图”下拉图标。
3)选择图表类型:“带直线和数据标记的散点图”。
4)选择并删除图例。
生成如下所示的图表。
3pic
为使图表填充整个绘图区,需要明确设置水平轴的开始点和结束点。
5)在水平轴上单击右键,选择“设置坐标轴格式”。
6)显示如下所示的对话框,对“最小值”单击“固定”选项按钮,并输入 “0.45833”。
7) 对“最大值”单击“固定”选项按钮,并输入“0.70833”。
4pic
Excel允许为坐标轴选项指定时间值。时间值是24小时中的百分数,例如,11:AM被表示为11/24 = 0.45833。对最大值,已经四舍五入到5:00PM,对应于17点(17/24 = 0.70833)。这些设置将生成如下所示的图表。正如所看到的,散点图与刚才生成的折线图完全不同。
这种转换时间为十进制的技术是很熟悉的,因为Excel 2003允许直接在坐标轴选项最大值/最小值区域输入日期和时间如“1/1/07 11:00 AM”,Excel将计算为合适的十进制表示。但这在Excel 2007中不能正常工作,但将在随后的版本中修复。
5pic
总之,无论何时需要创建一个时间系列图表,其单位小于一天,避免使用折线图、柱形图、条形图、或面积图类型。而是使用散点图精确地反映时间跨距。

Excel 2007图表图案填充

在Excel 2007中,图表图案填充已不可用。但是,如果在一个黑白打印机上打印图表,则这项功能是有用的。虽然在以前Excel版本中创建的图表将继续显示图案填充,但是没有办法使用Excel 2007 UI来应用图案填充。
Microsoft的Eric Patterson通过创建一个加载项解决了这个问题,您可以参考下面的译文。
这个加载项在图表工具的格式选项卡中创建了一个新的名为Patterns的组。该组中有一个控件,当单击该控件时,显示应用到所选图表元素中可用的图案。
addintab1111
addintab12222 
主要为黑白打印机来使用图案填充。
- - - - - - - - - - - - - - - - - - - - -
下文将讨论在图表数据点中应用图案填充,并包括一个示例加载项。
概述
在Excel 2007中,对图表元素应用图案填充的界面(有利于应用图片和纹理填充的界面)已被移除了。在以前的Excel版本中带有图案填充的图表格式仍然保留,并且在Excel里打开该图表时会显示图案填充。
这里是一个带有应用了图案填充的图表:
FormatChart2 
Excel 2007中移除了可应用图案填充的界面,但可以通过Excel的对象模型来支持这些图案填充。FillFormat.Patterned方法可用于对图表元素应用图案填充,例如系列中的数据点。本文将介绍如何使用该对象模型来创建上面显示的图表,也提供了对图表元素应用图案填充的界面的示例加载项。
带有RibbonX和VBA代码的示例加载项点击这里下载。
使用Visual Basic立即窗口应用图案
让我们以一个示例饼图开始,来演示如何应用图案格式。创建该图表之后,单击Q1饼图切片将立即选择整个系列,并选择Q1数据点。如下图所示:
originalchart 
当选择了Q1数据点后,通过按Alt+F11激活VBE。在VBE中,按Ctrl+G显示并移动到立即窗口。
在立即窗口里,输入下列语句并按回车键:
selection.fill.patterned (4)
这将对所选图表元素显示第4个索引的图案。此时,图表将更新如下:
FormatChart1
重复该过程
对其它的3个数据点重复上面的过程来完成图表。依次选择它们,切换到VBE,然后为每个数据点输入Selection.Fill.Patterned命令。这里,分别为Q2、Q3和Q4使用索引值为26、15和12代表的图案。此时,该图表如下所示:
FormatChart2
示例加载项
接下来,演示如何创建一个加载项,在Excel里使用库控件快速地应用图案填充。
RibbonX
我们将使用RibbonX代码开始。如果不熟悉RibbonX,那么简要的解释是RibbonX是定义Ribbon外观的XML。在这里,RibbonX将定义想要放置库的位置,以及在该库中的项目(包括图片)。关于RibbonX的更多信息,请参见本站中的相关技术文章。
我们将创建的RibbonX驻留在该文档中,必须使用工具获取文档中的RibbonX。本例中使用的工具是“Office 2007 Custom UI Editor”,具体介绍请参见《定制Excel 2007功能区的工具和资源》。
下载并安装该工具后,打开前面所下载的“PatternUI.xlam”文档,将看到下图所示的界面:
UITool 
要创建这段XML,在UI编辑器里使用“插入图片”命令开始并选择以前已创建的每个图案填充的图片。要确保命名这些文件,与对象模型里的图案的索引值相匹配。
一旦添加了图标,然后在Ribbon XML里输入指定的图表选项卡(ChartToolsFormat)和组名(Patterns)。在功能区里的Patterns(图案)组里,指定包括在库里的项目,与之前已添加的图标一致。这里选择库的大小为8列和7行。
这是一段XML,重复Gallery(库)的所有54个元素:
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui“>
 <ribbon>
  <contextualTabs>
   <tabSet idMso=”TabSetChartTools” >
    <tab idMso=”TabChartToolsFormat” >
     <group id=”customGroup” label=”Patterns” insertAfterMso=”GroupShapeStyles”>
      <gallery id=”PatternGallery” image=”Pattern54″ size =”large” columns=”8″ rows=”7″ onAction=”InsertPattern” >
         <item id=”Pattern1″ image=”Pattern1″/>
         <item id=”Pattern2″ image=”Pattern2″/>
         <item id=”Pattern3″ image=”Pattern3″/>
       .
       .
       .
在输入所有的Ribbon XML之后,使用UI编辑器中的“产生回调(Generate Callbacks)”命令,会产生下面的回调:
callbacks11 
这个回调可以被输入到VBE中的模块里。
VBA代码
在VBA的代码模块里,只需要添加2行代码到回调中。第1行是一个非常简单的错误检查,避免万一企图使用库来应用格式而选择无效的对象时产生的错误。第2行是与上面输入到立即窗口里相同的命令。在本实例中,Patterned方法的参数是“index+1”。Index是返回的库的索引。索引值基于0,因此使用“+1”来确保库索引值与图案索引值相匹配。
‘Callback for PatternGallery onAction
Sub InsertPattern(control As IRibbonControl, id As String, index As Integer)
    On Error Resume Next
    Selection.Fill.Patterned (index + 1)
End Sub
完成该加载项
最后一步是使用“另存为”命令作为一个加载项保存该文件。
最后的成果
定义RibbonX和VBA代码之后,打开该加载项。选择一个图表后,在“图表工具”的“格式”选项卡中的“Pattens”组里显示图案下拉表。要使用某图案,则先选择一个图表系列或数据点,然后单击其中的一个库项目。

在Excel 2007中创建组合图表

通常,创建比较不同类型数据的图表是有用的。例如,想要比较交易量的分配价格,或者销售量的税,或者失业率和消费指数,或者其它一些事情。
要快速且清晰地显示不同类型的数据,绘制一些在不同坐标轴上带有不同图表类型的数据系列是很有帮助的。看下面的示例。
假设您在一个制造公司工作,想要分析超过前几个月的销售单价和每个月的总销售收入,并且希望识别哪里出现了问题,例如高的销售单价而低的交易额,从而显示可以进行进一步折扣的单价。
可以制作两个不同的图表,一个绘制每月的销售单价,一个绘制每月的交易额。但是,将要单独分析两个图表。因此,我们更愿意创建像下面所示的图表。
1
图1
使用正确的操作,可以很容易制作这样的图表。下面首先将介绍两个主要的步骤(改变图表系列类型和添加坐标轴),然后介绍如何将两者结合完成最终的图表。
步骤1:在工作表中输入下面的数据:
2
图2
单击功能区“开始”选项卡中“套用表格格式”命令,选择其中的样式,将数据格式为一个表。建立表后,更容易读取数据,也可以执行一些更高级的操作如筛选数据。(这里只是顺便提一下这个功能,后面的内容没有用到)
3
图3
组合不同的图表类型
创建带有多种类型图表的第1步实际上是只建立一种类型的图表。这里,想创建的图表带有柱状和折线,但将以规则的柱状图开始。(注:事实上与开始的图表类型无关,但如果使用许多系列,则应选择应用主要系列的图表类型,这样,以后可以少一些工作量)
步骤2: 选择在步骤1中所输入的数据,在功能区“插入”选项卡中插入柱形图(如下图所示)。
4
图4
现在,创建了一个带有两个系列的柱状图,均绘制在相同的坐标轴上,但与我们刚才的意图不相符,因为在交易额和销售单价之间的比例不同,我们甚至看不到销售单价系列。
5
图5
下一步将“交易总额”系列的图表类型改为折线。
步骤3:选择某系列。选择想要改变为不同类型的系列,本例中为“交易总额”系列。
选择系列: 可以有多种方法选择一个数据系列,这里只简要讲述其中最常用的两种。注意,选择某系列而不是整个图表或单个的数据点。
方法1:单击图表中想要选中的系列。注意,不要单击图例文本“交易总额($)”,而是单击图表中红色的柱状条之一。现在,应该看到系列高亮显示,如图所示。(注意,在红色柱状条中的小蓝色的圈)
6
图6
方法2:单击功能区中“图表格式”选项卡或者“图表布局”选项卡(注意,仅当选择图表时这些选项卡才出现)。在这些选项卡最左侧部分,有一个名为“当前所选内容”的组,其中有一个名为“图表区”的下拉菜单。
7
图7
单击该下拉菜单,选择想要改变的系列,在本例中,选择系列“交易总额($)”。
8
图8
步骤4: 改变所选择系列的图表类型。
首先,在功能区的“设计”选项卡中,单击功能区最左侧的“更改图表类型”。
9
图9
此时将弹出“更改图表类型”对话框,在其中选择想要的新类型。在本例中,选择折线图,单击“确定”。
10
图10
现在,已创建了一个带有两种类型(柱状和折线)的图表。实际上,您可以重复上面介绍的过程,为不同的数据系列应用不同的图表类型,从而组合多种图表类型。
11
图11
添加第二个坐标轴
上面的图表仍难以分析,因为交易总额的比例是远大于销售单价的比例。结果,难以读取销售单价,并且柱状图也不可分辨。所以,交易总额应该移到第二个坐标轴中,允许坐标轴有不同的比例。
步骤5: 选择想要放置在第二个坐标轴上的数据系列。在本例中,是“交易总额”系列。(如何选择数据系列参见步骤3)
步骤6: 在“格式”或“布局”选项卡中,在左侧“当前所选内容”中,确保下拉框中为“系列’交易总额’”,然后单击“设置所选内容格式”。
12
图12
步骤7: 在弹出的“设置数据系列格式”对话框中,打开“系列选项”,单击“次坐标轴”,然后单击“关闭”。
13
图13
现在已成功的为图表添加了第二个坐标轴。
14
图14
完成格式设置
下面介绍的内容将对已完成了组合图表进行格式设置。
步骤8: 将图例移到底部。单击功能区中的“图表布局”选项卡,然后单击“图例”,选择“在底部显示图例”。
15
图15
步骤9: 改变第二个坐标轴标签来显示货币符号。在坐标轴标签上单击右键,选择“设置坐标轴格式”。
16
图16
然后,单击“设置坐标轴格式”对话框左侧的“数字”选项卡,单击类别列表中的“货币”,在“格式代码”中设置格式后单击“添加”,最后单击“关闭”。
17
图17
步骤10: 添加坐标轴标题。在功能区“布局”选项卡中,选择“坐标轴标题”。在下拉菜单中,选择“主要纵坐标轴标题”,然后选择“旋转过的标题”。输入标题。对“次要纵坐标轴”进行相同的操作。
18
图18
步骤11: 添加图表标题。在功能区“布局”选项卡中,单击“图表标题”,输入标题名。
最后,完成的图表如下:
1
图19
对更多的数据系列重复上面的步骤,应用不同的类型,可以创建更复杂的图表。

标签: 没有标签