在不等半径扇形图(南丁格尔玫瑰图)日志中,引用了一个比较facebook和twitter的信息图表,很多人询问如何制作。该图是具有堆积特征的玫瑰图,用该日志思路就可以制作出来,只是需要多准备一些数据系列。
我制作了一个模板文件,填入数据即可获得精美的堆积式玫瑰图,本篇日志即介绍这个模板的构建方法。写这篇日志的时候发现,做这个图还算容易,但要把作图原理和步骤描述清楚却真不容易,欢迎大家多提宝贵意见。
【作图思路】
还是使用雷达图来制作,每个扇区的每个堆积部分都是一个雷达图序列。
有人可能会问,雷达图不是多边形的吗,怎么能做成扇形图呢?我们可以这样想,当年祖冲之是怎么求圆周率的?对了,就是用多边形逼近圆形的。现在我们也是用多边形来逼近圆形,只要数据点足够,多边形就变成了圆形。也不要太多,360个点就足够了。
【作图步骤】
1、组织作图数据。
本例的作图难度并不大,关键在于作图数据的组织,其中不乏精巧之处。建议打开模板文件对照阅读。
假设有12个维度的数据,每个维度有不同的分类数,相关数据输入在B6:N20区域。不同维度的分类数可不相同,如性别只有男女2类,收入则可分为6个档次。
雷达图不支持堆积形式,必须自己先对数据进行“堆积”转换。将分项数据转换为逐步累加的累计值,这样某项图形高出前一图形的部分,正好与该项的值对应。
考虑到扇形图中心部分比较小,不便于观察比较,可以在中心留下一个圆心,从圆心外围开始比较数据。因此在转换之前,我们设置一个圆心参数C26,可以自由控制是否需要绘制圆心,以及绘制多大的圆心。
转换区域的公式为:
C29:=IF(C15=0,0,SUM(C$15:C15)+$C$26),注意堆积数据加上了圆心半径参数。复制到整个转换区域C29:M34。
对第N列的维度12,因为可能要用来绘制圆心,需要做特殊处理:
N29:=IF($C$26=0,IF(N15=0,0,SUM(N$15:N15)+$C$26),C26)
N30:=IF($C$26=0,IF(N15=0,0,SUM(N$15:N16)+$C$26),0),复制到N34。
也就是在需要绘制圆心时,N29指定为圆心半径,N30:N34指定为0,否则均同前按普通扇区处理。
第36~38行放每个扇区的角度数,起、止角度。可通过这里控制玫瑰图的扇区数,也就是前面维度的个数。甚至还可以通过这里控制做弧度不等的玫瑰图。
现在准备作图数据。数据比较多,可选择另外一个工作表展开。
第5、6行放对维度和分项的索引编号,便于后续引用。共12*6列。
注意第6行的索引编号方法,是逆序的6、5、4、3、2、1。这是因为图表里后面的序列会遮盖住前面的序列,这里将分项的索引号逆序编排,以使同一维度上的多个堆积序列,图形上半径长的在“后面”,半径小的在“前面”,避免相互遮挡。
第8、9行放每个堆积扇区的起止角度数据,根据第5、6行的索引编号引用转换过来:
C8:=INDEX(Data!$C$37:$N$37,作图数据!C5),向右复制。
C9:=INDEX(Data!$C$38:$N$38,作图数据!C5),向右复制。
第11行放每个堆积扇区的半径,也是根据第5、6行的索引编号引用转换过来:
C11:=INDEX(Data!$C$29:$N$34,作图数据!C6,作图数据!C5),向右复制。
从B14往下填充序列1~360,作为图表数据点的判断依据。从C13开始往右填充公式:C13:="f"&C5&C6,作为各序列的名称。
整个C14:BV373区域为作图数据源,共360行*12*6列,输入公式为:
C14:=IF(AND($B14>C$8,$B14<C$9),C$11,0),即对处于起止角度之间的数据点赋值为相应的值。拖拉复制到整个360行*12*6列区域。
2、用整个360*12*6的数据区域做填充型雷达图。
此时得到的图表黑乎乎的看不清,清除数据标签和数值轴,即可看到堆积玫瑰图的雏形。
3、对图表进行格式化。
根据需要,对各扇区进行颜色填充。若是使用2007以上版本,格式化出老外例图的样式完全没有鸭梨。
4、手工添加标签数据等信息。可使用文本框、链接或拍照等方式。
本例中使用了C36:N36的数据加入图表做饼图,以显示圆形的灰色底衬,以及外围的维度名称标签,有兴趣者自行研究,这里不再细述。
OK,一份堆积式玫瑰图完成了。
此前日志的单层玫瑰图,其实可以看做是这个堆积式的简化形式,就是分类项目只有1个而已。因此本模板也可以取代前一日志的模板。
【模板使用】
本模型设计已经比较完善,现在要做一个玫瑰图,你只需填入数据,调整相关参数,即可自动得到一份精美的堆积式玫瑰图。可适用于Excel2003/2007/2010。使用步骤:
1、在B6:N20填入相关原始数据。模板支持12个维度,多出的可以填0。不足的可以自行扩展,需要了解整个模型的原理。不过太多就不好了。
2、若需要绘制圆心,在C26处填入参数,建议是30%。不需要圆心则填0。
3、根据维度的个数,也就是需要绘制扇区的个数,设置C36处的扇区角度参数。
4、得到玫瑰图,检查其正确性,添加数据标签等信息,完成。
上图即是利用此模板,仿制的那个facebook分析的图表。是不是比原图还要漂亮,相信这是在Excel中完成的吗:)
【注意事项】
堆积玫瑰图的优缺点和适用场合:
优点:可在一个图表中集中反映多个维度方面的百分比构成数据,幅面小,信息量大,形式新颖,吸引注意力,够高级,够给力:)
缺点:非常见图表形式,多数人不易看懂。图形存在误导因素,同样的半径长度,越往外面积越大,但实际是以长度代表数值。
适用场合:适合书面研读,不太适合PPT讲解。适合商业杂志、财经报刊等媒体做信息图表用途,传统工作场合需慎用,可能会给人用力过猛、炫技、夸张的感觉。