前言
这是2017年EasyCharts团队第一篇文章。我们是一支热爱数据分析与可视化的青年团队,更多精彩内容敬请关注我们的微信公众号!
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/578962e93110259693b8e5e38abac8ff.png)
也祝大家新的一年里学习进步,工作顺利,加薪不断,能在公司里金鸡独立、一枝独秀!
今天跟大家分享的图表是——子弹图(bullet chart)!
▽▼▽
名字听起来是不是很高大上呀,这个图表是用于日常绩效评估的,可以从图表中了解到各个项目的目标及实际进程等各项指标!在项目管理中经常会用到!
●●●●●
至于方法嘛,坦白的说,一点儿也不难,都是些之前推送过的文章里常用的技巧方法(次坐标轴、复合图表类型)。
先看下作图数据:
其中后三列数据只作为图表中绩效评估的衡量指标,前两列数据作为图表中的核心指标。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/728e0e44f2f55b86f7bd76764eaa6422.png)
选中所有数据区域,插入——图表——堆积柱形图。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/0a3a2c20b4ce06b4465ad4f826c1d9fd.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/5521cf02ece94a3d87c84a7e0deb727e.png)
默认输出的图表行列并非我们所要的效果,需要调出选择数据菜单,互换行列位置。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/e40c2ed10383809f9fbd57b608078b9c.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/c09366f02f98495a3aae6c23c3afdd04.png)
我们需要对输出的默认堆积柱形图进行进一步的修改。首先需要将目标值系列的图表类型更改为带散点的折线图,具体方法如下。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/bde1ab88cfcd251ad6630ab55362612c.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/eef6d82ca1d03fe4d328b86fb7806e17.png)
并对更改成带数据点的折线图的目标值数据系列,进行更多的格式设置,隐藏其折线,将数据点更改为小横线。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/bd2bdc3c82a421613a14a9ceffd2306b.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/38ce031abdaf770a6bfafa87a9350b10.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/d0aabc7b077f820503a6f0c4edbf226e.png)
然后开启实际值数据序列的次坐标轴,并调整该系列数据系列间距(320%)。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/75e88fb85a10918143f1f37bca240845.png)
现在图表已经大体完成,剩余的任务是美化和修改各元素格式(字体、配色、排版)。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/17e7d2eefa863171ab034eeed4efb748.png)
最后大功告成啦~
今天要跟大家分享的技巧是子弹图(Bullet Chart)在条形图中的实现!
▽▼▽
前一节分享了子弹图(柱形形式)的 制作技巧,这一片接着讲解子弹图在条形图中的实现方式!
●●●●●
原数据是一致的,只是想要做成条形图,需要额外增加一列辅助数据(G列)。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/198dc39791690ad82dd271a64018f9d8.png)
然后选择A~F列数据区域,插入——图表——堆积条形图。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/81ca672bd7fcb03259c8495d259165e5.png)
很明显软件默认输出的并非我们想要的条形图,行列位置颠倒了。
这时候需要调出选择数据菜单,互联行列位置。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/fe536f6166262bd153a23eaf853a5f99.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/9568ac2b7d8ce4872e4a2b49ea73e829.png)
接下来的一步是,反转条形图的数据序列顺序(默认的与原数据区域是相反的)。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/d82d4922e4641de8909309725d95b61c.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/65adc75d62814931bb00ad9c6add4f56.png)
这时候关键的步骤来了,选中实际数据序列,更改图表类型为散点图,然后从新指定他的横轴(B列)、纵轴(G列)。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/5230d282e0421a2ca8e9f0e8e83afbf3.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/aa204bd8dd654ab5af5a0eb242e9cef2.png)
同样的步骤,选择目标数据序列(Object所在的C列),更改为散点图,然后从新指定它的横轴(C列),纵轴(G列)。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/204a9575d696b6d531a5b5e2736c6e71.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/e4c34da40dc3dc2be821642030d4c14b.png)
此时图表会变成如下所示的样子。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/49122052ad6a7459d9591c2969762edb.png)
此时选择实际(Actual)数据序列,在图表设置菜单中,调用误差线设置菜单,设置其横轴负误差线,自定义,选择误差线范围为其自身的值(A列值)。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/4f9fbe66e5dc8469463392115a392baa.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/c1faf8d2b022a93a2bd0517e44140de2.png)
删除垂直误差线,并调整水平误差线的格式、线条粗细、颜色等。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/2b52b4eaeec2988581b755a0b908d980.png)
插入一个垂直短线段(线条填充红色),并复制,贴入(直接选中Object序列)即可!
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/2287a491b79d5837350e56aee1377fad.png)
最后修改背景中的三个序列填充颜色(general、good、excellent)(注意颜色填充为同色系不同色调的)。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/b0b8e9605c380cb051b71a26788d422b.png)
删除掉图表中不必要的冗余元素,修改字体、配色!
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/e92ad9a09935b932a8cdea583700b375.png)
还要跟大家分享了关于sparklines迷你图插件的的第一类图表类型,尺度(Scales)图表类型,今天要分享的是第二个图表类型——在项目标管理中使用频率非常高的子弹图(Bullet)。
当然这些图表在之前的excel图表教程中都已经分享过具体做法及数据结构,有兴趣可以自己参阅往期教程。
下面是打开sparklines插件的bullet图表菜单:
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJDQzA1MTVGNkE2MjExRTRBRjEzODVCM0Q0NEVFMjFBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJDQzA1MTYwNkE2MjExRTRBRjEzODVCM0Q0NEVFMjFBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkNDMDUxNUQ2QTYyMTFFNEFGMTM4NUIzRDQ0RUUyMUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkNDMDUxNUU2QTYyMTFFNEFGMTM4NUIzRDQ0RUUyMUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6p+a6fAAAAD0lEQVR42mJ89/Y1QIABAAWXAsgVS/hWAAAAAElFTkSuQmCC)
以下是官方指导文档中的关于子弹图的参考示例:
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJDQzA1MTVGNkE2MjExRTRBRjEzODVCM0Q0NEVFMjFBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJDQzA1MTYwNkE2MjExRTRBRjEzODVCM0Q0NEVFMjFBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkNDMDUxNUQ2QTYyMTFFNEFGMTM4NUIzRDQ0RUUyMUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkNDMDUxNUU2QTYyMTFFNEFGMTM4NUIzRDQ0RUUyMUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6p+a6fAAAAD0lEQVR42mJ89/Y1QIABAAWXAsgVS/hWAAAAAElFTkSuQmCC)
函数内前三个标红的参数是该函数的必备参数(不能省略:想想也是,想要做这种绩效评价指标,你得告诉图表你的现状(实际值)、目标(目标值)以及值范围才能建立起完整的绩效评价体系)。
后面的黑色参数应该可以省略(可以省略并不代表在写函数的时候可以不用去管,只是可以不输入参数,但是仍然需要你给对应参数位置留空(用逗号隔开)。)
下面是每一个参数的具体含义及控制的图表元素:
Measure:程度,测量,就是你的指标变量,控制子弹图中的那条颜色最深最细的长条。
Target:目标,控制图表中红色竖线。
Maxi:最大值范围,控制整个图表的数据显示范围。
Good、Bad:优、劣;控制图表中位于图表底部的指标优劣范围,一般用很浅中性色系填充。
Forecast:预测;控制图表中位于中心位置最细的小条,用于与指标变量和目标值进行对比。
TickUnit:刻度线,显示在图表底部短线。
ColorScheme:颜色,控制图表底层good、bad以及最大值前的三段矩形区域颜色。
Vertical:垂直轴,该参数可以控制图表显示方向,默认为False,也就是水平。(一般常用水平,看着比较舒服)。
以下是完整的子弹图函数语法公式:(不熟练的情况还是需要打开函数输入框,如果很熟练的话,你可以直接在单元格中输入整条语法)
=bulletchart(D3,85,100,80,60,83,10,9868950)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/fe3eda4bd2b4fbd295b5998e5f179934.png)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/a0f1fa2009f6cdeee609e95e56df217f.png)
下面可以看下将Vertical参数修改成True会变成什么样子?
=bulletchart(D3,85,100,80,60,83,10,9868950,TRUE)
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/22ce60f219b3ad7479103d4f3a5d80f8.png)
果然效果也是很不错的,只是修改一个参数而已,这款神器果然了得,如果是在excel中使用内置图表来做,估计你得忙大半天。
第一个图表完成之后,就像在excel中填充函数公式一样,批量向下填充第一个图表单元格中的公式。
一排整齐划一的迷你字段图就出炉了。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/6607d68e4762f00a4ac926a9a16fd0ab.png)
至于倒子弹图(Reverse Bullet),打开看了一下,语法与刚才做的普通子弹图语法参数均一样,可是输完参数跑的时候VBA报错,不知何故。也有可能是输入参数非法(没有仔细研读变量类型限制信息),如果哪位感兴趣的小伙伴儿知道怎回事也希望可以分享给我,不胜感激!
所幸我们经常用到该图表普通的(方向朝右)形式的场合比较多一点儿,以上讲解已经能够满足日常使用需要。
![Clipboard Image.png](https://ask.hellobi.com/uploads/article/20170206/1dc06411b94abb5ddc8ff645c776fddf.png)