杜雨小童鞋昨天写了个贴用R语言画DT财经最近的一幅星巴克门店数图表,玫瑰图的变化形式(链接),我们也来说说吧。
这种形式的图表,我看到最初来自一幅非常受好评的关于伦敦艺术家的数据新闻作品:
这份作品是如何做的呢,作者介绍是在ggplot里画出初步的图,然后导出pdf,再导入AI继续美化完成,ggplot的代码如下:
ggplot(Data,aes(order,origin))+
geom_segment(aes(xend=order,yend=Age))+
geom_segment(aes(x=order,y=st_age, xend=order, yend=end_age),col="red")+
geom_segment(aes(x=order,y=st_age2, xend=order,yend=end_age2), col="yellow")+
coord_polar()
如果要在 Excel 里做玫瑰图,可以使用雷达图或者圆环图来实现,我们之前写过很多篇帖子,大家有兴趣可以翻翻以前的帖子,可惜的是很多帖子都被搜狐丢失了。例图如下。
今天借DT财经的这个图表,再来介绍一次。
首先,对于这样的数据源,日常工作我们做个常规的柱形图或者条形图就可以了,如下图。做成例图的玫瑰图只适合传播用途的信息图,因为大众喜欢新鲜花哨,但不适合日常工作。
雷达图做玫瑰图的思路,是准备360行的数据源,做带阴影的雷达图即可。这里玫瑰图只有半圈,因此数据源中有180行需要设置为0来占位。
图中,id从1到360,id2从1到20、每个重复9次,D列按id2提取指标数据,每次变化时要归0一次,以使图形断开。E列用来遮挡出中心的圆心,所以D列指标上已提前加上这个圆心。
C6:=CEILING((B6)/$B$3,1)
D6:=IF(C6=C7,IFERROR(INDEX(data!$D$6:$D$25,单序列!C6)+$D$3,0),$D$3)
这里是按原来顺序组织id2数据的,那么做出的图表还需要截图或者拍照后旋转一下。如果不想旋转,可以在准备id2数据时调整一下顺序,先 11~20,后 1~10,出图即是水平的,如下图。
这里只使用了一个序列,因此图表只能填一种颜色,要分开填色的话,序列也要准备多个,需要分离,可以如下图准备数据。
图中,增加E~X列20个序列,E6的公式,注意混合地址的写法:
E6:=IF($C6=E$5,$D6,NA())
用框内数据做雷达图,即得到20个序列的玫瑰图,可以分开设置颜色,这里略去了。按照我们以往的做法,图表的标签等都是需要使用辅助数据去显示的,考虑到信息图多是一次性的,不需要周期更新,所以可以复制图表后贴到PPT里取消组合后进行编辑排版,这些后续步骤这里也略去了。
做的过程中发现,2016版显示雷达图的边缘都是坑坑洼洼的,没有之前版本光滑,应该是不足。
End.
作者:刘万祥ExcelPro
来源:微博
本文均已和作者授权,如转载请与作者联系。
- 我的微信公众号
- 微信扫一扫
- 我的微信公众号
- 微信扫一扫
评论