上一帖介绍了斜率图的简单做法和优化做法,学员们练习的图表都很漂亮!下面是学员阿思猫的作品。
本帖介绍第3种做法,能交互式突出显示的智能斜率图,这个做法比较极客,属于Excel作图的高阶程度。
图表和交互功能的主要特征有:
根据指标的上升或者下降,折线图自动分为两组,用不同颜色区别显示,方便阅读和理解。
两侧标签均显示类别名称和指标,分别左右对齐,也是方便阅读。
左侧表格里的类别名称带有单选框按钮,选择后,表格和图表都能突出显示。
本例我们使用散点图来制作,包括折线图和数据标签。并且,考虑在左侧列表上增加单选按钮,给图表增加动态交互的功能。
要实现这些效果,需要多少组数据呢?
上升和下降的折线图,2组散点图,根据指标升降计算分别准备。
左右分别对齐的数据标签,2组散点图。
突出显示的折线图和标签,1组散点图。
顶上的指标名称标签,1组散点图。
因此总共需要6组散点图xy数据。
为方便理解,本帖把数据组织和制作步骤合起来讲解。
1、两组分色的折线图
两组分色的折线图,用两组散点图来绘制,根据指标是上升还是下降来判断,准备K、L和M、N两组xy数据。
一个散点图序列要实现分段的效果,每个线段需要3个数据点,即左侧起点(before)、右侧止点(after)、空。为方便简化不费脑地写公式,我准备了3列辅助id数据,
* id1,1到36*3=108
* id2,1到36,每个重复3次
* id3,1到3,重复36次
对于上升的部分,xy取值公式如下:
x值,K7:=IF(INDEX($F$7:$F$42,I7)>=0,CHOOSE(J7,1,2,NA()),NA()),意思是,如果是上升,则按id3每123依次取值 1、2、空值。
y值,L7:=IF(INDEX($F$7:$F$42,I7)>=0,CHOOSE(J7,INDEX($D$7:$D$42,I7),INDEX($E$7:$E$42,I7),NA()),NA()),意思是,如果是上升,则按id3每123依次取值 起点值、止点值、空值。
下降的部分则刚好相反:
x值,M7:=IF(INDEX($F$7:$F$42,I7)
y值,N7:=IF(INDEX($F$7:$F$42,I7)
以上公式都要下拉到36*3=108行。
为实现断开的效果,要筛选出所有id3=3的行,删除清空其xy数据,删除后取消筛选。这样散点图就不会绘制这些数据点,得到断开的线段。
作图步骤1:现在,以 K6:N114 区域插入带折线和标记的散点图,就得到如下的图表。注:2013以上版本可以这样一次插入,2010版本前需要先用K、L列做散点图后,再添加M、N列数据。对上升和下降的折线图,可以使用具有涵义的红绿色来表示,也可以都使用灰色。
2、左右两侧的数据标签
两侧分别左右对齐的数据标签,也是使用两组散点图来显示,只需要与数据源一致的行数,Q~V列。
以左侧标签为例,xy和标签的取值如下,右侧标签与此类似。
x值,Q列,全取1。右侧标签则全取2
y值,R列,取起点的指标。右侧标签则取止点的指标
标签值,S列,取名称列+起点值,=C7&" "&TEXT(D7,0)
作图步骤2:图表添加1个序列,指定xy数据为Q、R列,添加数据标签,指定为S列,在左。同样方式添加右侧标签序列,指定数据标签为V列,在右。
3、表格里的选择按钮
现在,考虑把数据源的C列分类名称,添加单选框按钮,提供给用户选择,给图表添加交互功能。
作图步骤3:插入一个单选框按钮,文字清空,锚定 对齐到B7单元格,结果链接到$B$6,然后下拉复制B7到B42,得到36个单选框按钮。试着选择这些单选框,选择结果会反映在$B$6。
不过,我做的时候,是利用自己写的自定义宏按钮,可以一键批量插入单选框,非常高效,演示如下图。
这个做法我们在《向经济学人学图表第2季》里有介绍类似做法,那里是一键批量插入对齐在单元格里的复选框。想学习这个一键高效的方法,可以参加经2季课程。
4、图表里的突出显示
然后准备用来突出显示当前选中类别的辅助数据,X~Z列。
x取值分别为1、2,y取值则根据单选框的结果B6来提取,分别为 Y7:=INDEX(D7:D42,B6),Y8:=INDEX(E7:E42,B6),数据标签为类别名称+指标。
作图步骤4:图表里再添加1个序列,指定xy为X、Y列,添加数据标签指定为Z列,两个标签分别靠左和靠右,黄色填充。这个散点图的线条可以粗点,亮色,并添加个末端箭头。
现在选择表格上的单选框,图表中应该有动态突出显示。
5、顶上的指标名称标签
顶上的指标名称标签,可以直接使用文本框来画,不过这里我们还是使用散点图来显示,能更加精准对齐。准备xy数据,AB~AD列。
x取值分别是1、2,y取值,=COUNTA(C7:C42)+1。不过,这里因为是排名,y轴需要逆序类别后符合阅读习惯,因此这里直接取0。数据标签AD列,则直接引用指标名称。
作图步骤5:图表里再添加1个序列,指定xy为AB、AC列,添加数据标签指定为AD列,两个标签分别靠左和靠右。
6、左侧表格的突出显示
用户选择后,我们给左侧表格也添加一个突出显示的效果,反馈用户选择。根据选择突出显示行,是使用了条件格式,我们在《向经济学人学图表第2季》里也有过介绍。
作图步骤6:选中表格 C7:E42,条件格式,使用公式的条件格式,=ROW(C7)-6=$B$6(注意这里$B$6的写法,是固定的),设置条件格式为黄色填充。
7、完成和检查图表
作图步骤7:最后,清除图表中不必要的元素,格式化图表,检查图表的正确性,测试单选按钮选择不同的类别,检查表格和图表的突出显示是否正确。
至此完成图表。诶,写教程比做范例要更费脑费时啊,因为要考虑怎样讲解才简单、清晰、易懂,新手也都可以看得懂、学得会。
本例属于Excel高级作图,综合运用到很多知识点:
构图思路,重要
多序列的散点图做法,不断添加新序列
散点图标签的添加,对齐,xy标签工具
index,choose,text,row 等函数运用
单选框按钮的制作,锚定与复制技巧,或者自定义宏按钮
条件格式,绝对地址与相对地址的原理
难度指数:★★★★★,属于综合性高级作图
实用指数:★★★★★,适合两个时期数据升降变化的反映和比较,如 before vs after
End.
作者:刘万祥(中国统计网特邀认证作者)
本文为中国统计网原创文章,需要转载请联系中国统计网(小编微信:itongjilove),转载时请注明作者及出处,并保留本文链接。