你好,我是庄振运。
这一讲我们来探讨一下如何把性能数据合情合理地展示出来,让别人一目了然。如果你想有效地说服别人,那么你展示的过程就要像讲一个有趣的故事,娓娓道来,让别人爱听才行。
数据的展示根据场景有不同的目的,所以不能千篇一律,需要量体裁衣。每一种场景下,数据展示要根据你的具体目的、听众的特点和内容的特点而采用合适的图表。然后用这些图表做支持,把一个精美的数据分析的“故事”讲出来。
我们先理清一下性能数据展示的目的是什么。
我们前面讲过,性能工作相对复杂,牵扯的模块和构件较多,而且有时候也要牵扯几个不同的部门。数据分析有时是为了性能优化,有时是为了根因分析等等。所以性能数据展示的目的也就有很多种,主要有如下三种:
目标不同,听众不同,如何展示数据自然也就不能相同。但不管如何,都要做到有根有据,条理清楚,层次分明。这样大家才会被你和你展示的数据所说服。具体来讲,你希望你的听众:
目的清楚了,下面就是怎么做了。但是我们必须认识到,相对于一般数据的展示,性能数据的展示有其独到的特点、挑战和难点:
在考虑用什么方式来展示数据时,的确有些讲究,这就需要多借鉴别人的经验。在这方面,我总结了下面六条经验。
数据往往是枯燥的,所以我们要想办法变枯燥未有趣。用图表来展示数据就是一个好方法,但关键是要用合适的图表来展示不同的数据。
虽然数据图表的种类很多,但常用的就10种左右。我来简单地给你总结一下这几种常用的图表,分别适合什么情况和表示什么样的数据。
表格你一定经常用,它的优点是可以结构化的方式显示大量信息;不幸的是,这个优点恰恰也是缺点。很多用户其实对数据的趋势比具体的数值更有兴趣,这种情况下用表格就不是那么直观。
如果我们希望针对一个变量,显示一段时间内这个变量的变化或趋势,线图就最合适了。比如我们经常表示的时间序列图就是最直白的线图。
另外,它也适用多个变量的情况,可以很直观地显示两个或多个变量之间的关系,比如趋势和相关性。
对于一个变量的概率数据,我们经常会显示这两个互相关联的图。二者可以看作是稍微特殊的线图。
PDF:概率密度函数(Probability Density Function)是连续型随机变量的概率密度函数(或简称为密度函数)。就是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数。
CDF: 累积分布函数 (Cumulative Distribution Function),又叫分布函数,是概率密度函数PDF的积分。换句话说,PDF就是CDF的导数。CDF能完整描述一个实随机变量X的概率分布。
我们举一个前面讲过的例子,比如标准正态分布。它的PDF和对应的CDF是这个样子。
面积图类似于线图,但两者之间有细微的差别。面积图的重点是阴影线下方的区域。
如果想用面积图表示几组数据,那么具体也有两种选择:可以选择采用叠加面积图或非叠加面积图。
比如下图就是一个叠加面积图,它显示了几个产品在不同季度的单季产量和总产量。
用于比较不同类别的数量,比较容易理解。如果你想表示好几个变量,那么也可以选择叠加方式来显示。
比如下面这个柱状叠加图,显示的是和上面的面积图同样的数据,只是表示的方法不同。
散点图显示沿两个轴绘制的两个变量的值,用点的模式揭示它们之间存在的任何相关性。比如两个变量分别是CPU使用量和客户吞吐率,那么我们可以期望散点图会显示比较强的同一趋势。
气泡图类似于散点图,但它可以显示三个数据项之间的变化。除了两个变量分别为是横轴和纵轴外,气泡的大小代表第三个变量。
我们举一个例子。比如一个公司里面有十个互联网产品,每个产品运行在不同数目的服务器上面。这些产品分别有不同的内存使用率和网络使用率。假设我们想分析一下产品的内存和网络的使用情况,然后决定下一个季度购买什么样的服务器。我们就可以用气泡图来表示,网络和内存的使用率来作为横轴和竖轴,气泡的大小代表每个产品的服务器数目。
通过这个气泡图,我们非常直观地发现,某个产品的气泡比其他产品都大,而且它的两种资源使用率都很低。整体来言,下个季度新采购的服务器可以不需要那么多内存和网络资源。
当需要显示比例数据或者百分比时,饼图最佳。由于饼图表示零件与整个实体之间的大小关系,因此零件需要总和必须为有意义的整体。
一个适合饼图表示的性能数据例子是客户请求的来源分布。但你在使用时需要注意的是,饼图最好用来显示六个或更少的类别。如果太多类别的话反而描述不清楚。
举一个前面讲面积图时候用过的例子,公司的四种产品在春季的销售分布,就可以用下面这个饼图表示。
树形图对于显示类别和子类别之间的层次结构和比较值非常有用,同时也能保留较多细节。树形图可以帮助我们很直觉地感知哪些区域最重要。另外,还可以通过将颜色编码的矩形嵌套在彼此内部,来更好地实现目的,并用加权以反映它们在整体中的份额。
比如下面这个树形图,它描绘了一个国外的产品,采用不同营销渠道的价值,然后按国家/地区细分。
这里的营销渠道包括Email、Social Media、AdWords等。从这个图中,你一眼就能看出从营销渠道上来看,AdWords是最成功的营销渠道,因为它对应的面积最大。但是从国家层面来讲,美国(United States)是所有渠道中最有价值的目的地,同样是因为对应的面积最大。
热表以表格格式来表示数据,其中每个格子是用颜色,而不仅仅是用数字来展示。这些颜色分别对应包含定义的范围,如绿色代表小的值,黄色代表一般的值和红色代表大的值。
比如分析几台服务器的在一天里面CPU的使用率。我们可以把每台服务器在每个时段的CPU使用率分为小、较小、中等、较大和大等几个范围。然后相应地着色。
我们看下图,横坐标代表时段,纵坐标是服务器,每个值就是CPU使用率。
虽然每个使用率其实是数字,但是把数字编码为颜色的好处是,颜色编码格式使数据更容易理解。比如,我们马上就可以看出早上10点的时候,服务器1和5的CPU使用率很高,因为它们的格子是红色。
我们都学过宋朝的词人柳永的词,他有两句词是这么写的:
“便纵有千种风情,更与何人说?”
这里他其实是在感叹自己虽有满腹经纶和深厚情感,但无人可以诉说。我们虽然不是词人,但在做过性能测试或者根因分析后,可能经常会有很多新奇的发现,希望向同事和领导讲解。
但是性能问题往往牵涉很广,描述起来并不容易,别人可能很难理解。这时候我们的感觉就是“我有千种风情”,可是如何说啊?
希望通过这一讲,能让你对在图文并茂地来“诉说”这方面能有些提升。
欢迎你在留言区分享自己的思考,与我和其他同学一起讨论,也欢迎你把文章分享给自己的朋友。