半圈式玫瑰图

刘万祥ExcelPro
刘万祥ExcelPro
刘万祥ExcelPro
17
文章
0
评论
2020-04-1802:05:00 评论 1,478 1221字
摘要

今天帖子中的范例只适合传播用途,在日常工作中实用性并不大,不过还是可以练习一些 Excel 知识和技巧。

杜雨小童鞋昨天写了个贴用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

来源:微博

本文均已和作者授权,如转载请与作者联系。

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: