前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel:为敬畏生命而生的南丁格尔玫瑰图

Excel:为敬畏生命而生的南丁格尔玫瑰图

作者头像
数据小磨坊
发布2020-03-30 17:53:46
2.1K0
发布2020-03-30 17:53:46
举报
文章被收录于专栏:数据小魔方

长得像饼图又不是饼图,长得像堆积簇状图又非簇状图,这种有着极坐标的怪异统计图,有着一个美丽的名字—南丁格尔玫瑰图。

说到南丁格尔玫瑰图,这里有着一段为敬畏生命而存的历史。

19世纪50年代,英国、法国、土耳其和俄国进行了克里米亚战争,英国的战地战士死亡率高达42%。弗罗伦斯·南丁格尔主动申请,自愿担任战地护士。她率领38名护士抵达前线,在战地医院服务。当时的野战医院卫生条件极差,各种资源极度匮乏,她竭尽全力排除各种困难,为伤员解决必须的生活用品和食品,对他们进行认真的护理。仅仅半年左右的时间伤病员的死亡率就下降到2.2%。每个夜晚,她都手执风灯巡视,伤病员们亲切地称她为“提灯女神”。战争结束后,南丁格尔回到英国,被人们推崇为民族英雄。

出于对资料统计的结果会不受人重视的忧虑,她发展出一种色彩缤纷的图表形式,让数据能够更加让人印象深刻。这种图表形式有时也被称作「南丁格尔的玫瑰」,是一种圆形的直方图。南丁格尔自己常昵称这类图为鸡冠花图(coxcomb),并且用以表达军医院季节性的死亡率,对象是那些不太能理解传统统计报表的公务人员。她的方法打动了当时的高层,包括军方人士和维多利亚女王本人,于是医事改良的提案才得到支持。

今天我们就来学习,如何制作最美的南丁格尔玫瑰图

相信不少人看过类似的南丁格玫瑰图表

也有不少的思路和方法

但是很多都是用的圆环图

制作合符要求的数据后

还需要手工的去删除某些数据

并手工的去一块一块填充颜色

今天我就教大家一种不一样的方式

雷达图之—— 南丁格尔玫瑰图

雷达图?…… Are you joking me?

对的,你没看错

我们选的就是第三种填充型雷达图

上图的填充雷达图

数据只有零散的几个点

如果我们将雷达网阵分割成360份

然后再将360份等分成N份

在每一份的连续区域上

标记相同的数值

在等份间隔处用0值标记

将会达到什么效果呢?

你没猜错

就是南丁格玫瑰图表

下面就让我们来动手试试

1

等系列的南丁格尔玫瑰图

假设我们需要做一个三层的图表

数据如下所示

那么我们需要做的就是,构造我们需要的数据源

怎么构造

请听慢慢道来

由上图可以看到,我们的数据有A-h共8个系列

系列值都为1

各系列百分比不尽相同

我们使用等系列玫瑰图

这样我们开始构造辅助数据

构造系列

将360度均分为8份

得到系列a角度区间为0-45,系列b角度区间为45-90……

列F9-F369构建0-360度

在G4输入=G2/SUM($G$2:$N$2)

意义:计算对应系列在极坐标360°中所占区间大小,等于该区间大小/所有区间大小之和

在G5输入= =360*SUM($F$4:F4))

意义:计算对应系列起点在极坐标360°中的位置,等于其之间所有系列所占区间的右端点,及之间区间所占区域大小之和,由于系列a之间没有区间,所有应该为零,因此我们取$F$4:F4区间,F4为文本值,求和为0,正好符合我们的需求

同理G6输入=360*SUM($G$4:G4)

意义:该系列值的在极坐标中的右端点

在G9输入=IF(AND($F9>=G$5,$F9<=G$6),G$3,0)

意义:如果角度落在对应的区间内,则取对应区间系列的百分比值,否则为零

将公式填充G9:N369区域

添加雷达图

选中G8:N369区域,插入填充雷达图

删除多余元素

添加图表标题

即可得到南丁格尔玫瑰图

至此,基本图表已经制作完毕

那么我们来思考一个问题

如果我们要添加系列名称

该如何操作

这时候

我们发现,在构建数据源时

还有部分数据没有使用

其实也可以用右边的数据替代

因为他们的值是相等的

选中图表,以添加数据的方式将这部分数据添加到图表中

并将添加的数据的图表格式设置为饼图

原来的数据还是保持为雷达填充图

我们发现,添加数据并按要求设置好格式,图表也没有什么变化

但是

当我们选中新加入的饼图

并添在图表外侧添加数据标签

会得到下图

将对应标签的值更改为系列值

即可得到我们最终的南丁格尔玫瑰图

同样我们还有很多变种玩

2

不等系列的南丁格尔玫瑰图

如不等系列的南丁格尔玫瑰图

思路和方法一致

只是在构造角度区间时候

主意各区间的比重

在此就不做太多阐述

贴出数据源及数据构造的过程

数据源

数据构造过程

使用同样的方法添加图表,标签,即可得到不等系列南丁格尔玫瑰图

3

不等多数据系列的南丁格尔玫瑰图

至此

你再思考下

比如你有这样的需求

你需要比较2013、2014及2015年

整年之间及每年各月份之间的数据对比

那么我们可不可以使用南丁格尔玫瑰图呢

答案是肯定可以的

那么效果是怎么样的呢

将2013,2014,2015构造成3个大系列

并将每个大数据系列虚拟划分为12个小系列

数据源如下

数据构造方法

在H列构造0-360°极坐标

构建辅助虚拟类别

在I2输入 =IF($H2=0,1,CEILING($H2/(360/(COUNTA(A:A)-1)))

意义:将对应角度转换到对应虚拟类别,如果H2等于0,归属到类别1,

公式解读:$H2/(360/(COUNTA(A:A)-1)

意义:将H列的角度装换为[0,12]之间的数值

(COUNTA(A:A)-1)

统计有多少个类别

(360/(COUNTA(A:A)-1))

将360度评分为(COUNTA(A:A)-1)个类别

$H2/(360/(COUNTA(A:A)-1))

将J2对应角度转换到对应类别区间[n-1,n]值

公式解析:CEILING($H2/(360/(COUNTA(A:A)-1)),1)

意义:该函数为根据参数P2,对P1向上取到P2的整数倍。即将角上步骤转换后的角度区间再次转换为对应的区间虚列值,如0.23属于第一个区间(0,1),该函数将0.23向上取整为1的整数被,转换为类别1。

在J2输入=INDEX($B$2:$D$13,$I2,MATCH(J$1,$B$1:$D$1,0))

意义:根据虚拟类别的值找到对一个的值

公式解读:匹配$B$2:$D$13区域内,row为$I2,colum为MATCH(J$1,$B$1:$D$1,0)的值

将公式填充到J2:L362

选中J2:L362插入填充型雷达图

调整层级关系

便可得到如下图形

利用复制数据添加饼图

设置标签值

即可得到最终多系列多类别--南丁格尔玫瑰图

最后通过利用图层的概念,使用图表叠加的方法可以实现,网格线在数据系列的上层:

好消息

我们即将推出Excel原图表插件EasyCharts2.0版本:EasyShu。这些南丁格尔玫瑰图只需要一键即可生成。一下就是效果图:

Github

https://github.com/Easy-Shu/Beautiful-Visualization-with-R

百度云下载

https://pan.baidu.com/s/1ZBKQCXW9TDnpM_GKRolZ0w

提取码:jpou

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据小魔方 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档