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

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

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

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

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

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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
Circos图神器--circlize包
circlize包是由德国癌症中心的华人博士Zuguang Gu开发,这个R包包含两个文件,一个是介绍绘制简单圈图的方法,另一个专门介绍基因组数据绘制圈图。
作图丫
2022/03/29
5.4K0
Circos图神器--circlize包
肿瘤免疫细胞浸润与临床相关性分析
Profiles of immune infiltration in colorectal cancer and theirclinical significant: A gene expression- based study
DoubleHelix
2020/04/07
6.9K0
R代码-九象限图绘制
在多组学联合分析中,需要用得到九象限图来对两个组学获得得基因结果进行可视化,例如下面这样得,因此这两天主要是对这个内容进行整理。
小胡子刺猬的生信学习123
2022/09/08
2.2K1
R代码-九象限图绘制
使用corrplot包绘制相关性图及美化!
R语言的corrplot包提供了一种可视化相关矩阵的探索性工具,支持自动变量重排序以帮助发现变量间的隐藏模式。
生信医道
2025/04/08
2800
使用corrplot包绘制相关性图及美化!
如果你觉得相关性热图不好看,或者太简陋
就有粉丝提问,把单细胞亚群使用 AverageExpression 函数做成为了亚群矩阵,是不是忽略了单细胞亚群的异质性呢?毕竟每个单细胞亚群背后都是成百上千个具体的细胞啊。代码如下所示:
生信菜鸟团
2021/07/29
4730
如果你觉得相关性热图不好看,或者太简陋
R- 组合图(折线+条形图)绘制
就是下面这张图,在途中用条形图展示了不同季节样本浮游动物的组成情况,同时使用带误差棒的折线图来表示浮游动物生物量的变化,相当于在一幅图中同时展示了群落的相对丰度和绝对丰度。
DataCharm
2021/02/22
3.5K0
R- 组合图(折线+条形图)绘制
【画图】如何批量展现基因表达相关性?
现在已经有明确的实验证明,跟SARS病毒一样,新冠状病毒2019-nCoV与宿主细胞的ACE2受体结合[1]。上次教程已经给大家演示了,GTEx数据库有人各组织中基因表达谱数据,下载整理这个数据可以绘制出ACE2受体在人体组织中的表达量情况以及可能的功能有哪些。
Chris生命科学小站
2023/02/28
4890
【画图】如何批量展现基因表达相关性?
R语言绘制圈图、环形热图可视化基因组实战:展示基因数据比较
heatmap()的输入应该是一个矩阵(或者一个将被转换为单列矩阵的向量)。如果矩阵被分割成组,必须用split参数指定一个分类变量。注意spilt的值应该是一个字符向量或一个因子。如果它是一个数字向量,它将被转换为字符。
拓端
2021/09/29
5.4K0
【工具】NPM用最接近配对校正组学数据的潜在批效应
批效应(BEs)是组学数据中的主要噪声源,经常掩盖真实的生物信号。BEs在现有数据集中仍然很常见。目前的BE校正方法大多依赖于特定的假设或复杂的模型,可能无法充分检测和调整BE,从而影响下游分析和发现能力。为了解决这些挑战,我们开发了NPM,这是一种基于最近邻匹配的方法,可以调整BEs,并且在广泛的数据集中可能优于其他方法。
生信学习者
2025/04/02
900
基于直方图和散点图延伸出来的其他绘图细节
图形是一个有效传递分析结果的呈现方式。R是一个非常优秀的图形构建平台,它可以在生成基本图形后,调整包括标题、坐标轴、标签、颜色、线条、符号和文本标注等在内的所有图形特征。本章将带大家领略一下R在图形构建中的强大之处,也为后续更为高阶图形构建铺垫基础。
1480
2019/07/01
6570
基于直方图和散点图延伸出来的其他绘图细节
R语言画图
R自带的画图工具,R绘图基础图形系统的核心,plot()函数是一个泛型函数,使用plot时真正被调用的时函数依赖于对象所属的类。
靓且有猫
2024/07/21
1822
R语言入门之折线图
在R语言中可以使用基本绘图函数lines(x, y, type=)来绘制线条,这里参数x和y分别是数值型向量,代表着横坐标和纵坐标的数据,参数type=主要是用来控制线条的类型。
生信与临床
2020/08/06
2.2K0
R语言入门之折线图
R in action读书笔记(15)第十一章 中级绘图 之二 折线图 相关图 马赛克图
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference (mm)",main="orange tree 1growth")
Ai学习的老章
2019/04/10
6990
R in action读书笔记(15)第十一章 中级绘图 之二 折线图 相关图 马赛克图
Shapes and line types for R
Solution Note that with bitmap output, the filled symbols 15-18 may render without proper anti-alia
学到老
2018/03/16
1.5K0
Shapes and line types for R
「R」自己动手进行R基础绘图
基本绘图和R本身一样古老,但对大多数用户来说,它仍然是神秘的。他们可能使用plot(),甚至知道其参数的完整列表,但大多数人从未完全理解它。本文试图通过为外行提供友好的介绍来揭开基础图形的神秘面纱。
王诗翔呀
2022/12/30
1K0
「R」自己动手进行R基础绘图
R-三维散点图绘制绘制
上期我们说了气泡图。如果我们将气泡图的三维数据绘制到三维坐标系[1]中,通常称其为三维散点图,即用在三维X-Y-Z图上针对一个或多个数据序列绘出三个度量的一种图表。
DataCharm
2021/02/22
2.4K0
R-三维散点图绘制绘制
R语言画图par() 函数参数详解
R有着非常强大的绘图功能,我们可以利用简单的几行代码绘制出各种图形来,但是有时候默认的图形设置没法满足我们的需要,甚至会碰到各种各样的小问题:如坐标轴或者标题出界了,或者图例说明的大小或者位置遮挡住了图形,甚至有时候默认的颜色也不能满足我们的需求。如何进行调整呢?这就用到了“强大”的函数par()。我们可以通过设定函数par()的各个参数来调整我们的图形,这篇博文就是对函数par()的各个参数进行一下总结。
孙小北
2024/01/30
4090
生存资料校准曲线的绘制
前面我们已经讲过logistic模型的校准曲线的画法,这次我们学习生存资料的校准曲线画法。
医学和生信笔记
2022/11/15
8860
生存资料校准曲线的绘制
R语言︱画图
point加点;axis右边坐标轴,mtext右边坐标轴的名称,text给出本文。
悟乙己
2019/05/26
1.3K0
R语言入门系列之二
在进行正式的数据分析之前,通常要对数据进行处理。而读取数据仅仅是最简单的,之后还要进行数据的筛选、排序、转换等。数据框是最方便的数据存储、管理对象。R有很多内置的示例数据集包括向量、矩阵数据框等,可以使用data()进行查看,接下来我们以R内置数据mtcars(32辆汽车在11个指标上的数据)为例进行分析,如下所示:
SYSU星空
2022/05/05
4.2K0
R语言入门系列之二
推荐阅读
相关推荐
Circos图神器--circlize包
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档