R语言-南丁格尔玫瑰图
简介
南丁格尔玫瑰图(Nightingale rose chart)即极坐标柱形图,是一种圆形的柱形图。由弗罗伦斯-南丁格尔所发明,普通柱形图的坐标系是直角坐标系,而南丁格尔玫瑰图的坐标系是极坐标系。南丁格尔玫瑰图是在极坐标下绘制的柱形图,使用圆弧的半径长短表示数据的大小。美国各数据类别或间隔在径向图上划分为相等分段,也就是极坐标系的角度相等,而每个分段延伸多远(与其所代表的数值成正比)取决于极坐标轴线。因此,从极坐标延伸出来的每一环可以当做标尺来使用,用来表示分段的大小并代表数值的高低。
特点
(1)由于半径和面积是平方的关系,南丁格尔玫瑰图将会将数据的比例夸大,所以适合用于比较数值大小接近的数据。
(2)由于圆形有周期特性,所以南丁格尔玫瑰图特别适用于X轴变量是环状周期型序数的情况,比如月份、星期、日期等,或者直接用于展示分类序数的数据。
(3)南丁格尔玫瑰图是将数据以圆形排列展示,而柱形图是将数据横向排列展示。所以在数据量较多时,使用南丁格尔玫瑰图更能够节省绘图空间。
所以南丁格尔玫瑰图的主要缺点在于面积较大的外围部分更加引人注意,这跟数值的增量成反比。
操作
在R语言中,从直角坐标系转换到极坐标系,只需要添加一条坐标系的语句:coord_polar(theta='x’start=0),其中theta表示将X轴或Y轴映射到极坐标系。
实例——南丁格尔玫瑰图
南丁格尔玫瑰图,做出来简单,但是要美化起来,算得上是艺术了。所幸,我们有示范的案例:
链接
先上一下自己做的图:
作图:应用到的所有软件包括:R、Excel、PPT、Ps。这4个是在作图中涉及到的所有的软件,主要的只是R和PPT,其它的都是辅助用。并且这张图不是直接生成的,而是多个元素的集合,而主要的元素是通过不同的方式获得。可以看到图中的几个元素:玫瑰图主体、左上角文字、右上角文字、每个柱子的标签。
第一步:
收集整理数据:
4列数据,观测的数量就是当天的数据。前两个可以在各种官方网站获得;第三列是玫瑰图中每个玫瑰瓣的颜色,如果对自己绘图审美有信心,可以自行配色,上图的数据是通过Ps在示例中提取出的每个瓣对应的16进制颜色;第四列是通过Ps测量的每个瓣的长度。
第二步:R语言绘图
数据准备好之后,我们就在R中绘制玫瑰图主体:
library(ggplot2)
my_data <- read.csv('玫瑰图数据.csv',header = T, stringsAsFactors = F)colour <- as.vector(t(my_data$RGB))ggplot(my_data,aes(x=国家,y=长度))+geom_bar(aes(fill=factor(长度)),width=1,stat = 'identity')+scale_fill_manual(values = colour)+coord_polar(theta = 'x',start = 0,direction = 1)+ylim(-0.5,12)+theme(panel.grid=element_blank(),panel.background=element_blank(),axis.text=element_blank(),axis.ticks=element_blank(),axis.title=element_blank(),legend.position = 'none')
作图的思路就是先做出柱状图,然后换算极坐标系即可。上述代码geom_bar()函数生成柱状图,scale_fill_manual()函数根据我们提取的颜色映射到每根柱子上,coord_polar()函数调整极坐标系,ylim()函数是为了图形中间的空格,theme()函数作用于主题。其中的参数就不谈了,之前的图形语法里有详细介绍。
这是做出来单独玫瑰图元素的样子。
第三步:组合元素
组合元素主要就是将上面说的玫瑰图主体、左上角文字、右上角文字、每个柱子的标签组合起来,这就有很多的软件可以实现了,PPT、Ps、Illustrator 等,最轻巧的就是PPT了,添加文本框,调整位置就行,没什么好方法,就是硬肝,因为图上的文字排列没有规律可言,调整就是了。中奖的两个半透明圆圈就是插入两个性状,然后调整透明度。
将图中的多个元素调整调整位置即可:
R语言-南丁格尔玫瑰图相关推荐
- R语言ggplot绘制鸡冠花图(南丁格尔玫瑰图)
南丁格尔玫瑰图也就是鸡冠花图,一种极坐标的柱状图.图形的大小跟变量分组的数值呈正比.从极坐标延伸出来的每一环可以当做标尺来使用,用来表示分段的大小并代表数值的高低. 首先绘制柱状图 bar<- ...
- 【Python数据分析——使用matplotlib制作南丁格尔玫瑰图】
目录 一.介绍 二.相关库 三.数据准备 四.pyecahrts代码实现 五.matplotlib代码实现 一.介绍 玫瑰图是弗罗伦斯·南丁格尔所发明的.又名为极坐标面积图,是一种圆形的直方图. 南丁 ...
- python+matplotlib绘制南丁格尔玫瑰图
实验:绘制南丁格尔玫瑰图 本实验有一定难度,有人说matplotlib绘图和matlab大同小异,我看除了一些函数名相同之外,其他的像参数和使用方法很不一样.另外我不知道是不是在matlab中画玫 ...
- tableau实战系列(三十九)-教你如何优雅的做图表展示-南丁格尔玫瑰图
前言 饼图是常用的分析图表之一,但当分析的数据类别过多时,饼图就会因为分区密集,大大降低其可视化效果(如下图). 遇到这种情况,可以考虑使用南丁格尔玫瑰图.事实上,它的可视化呈现很不错. 如果觉得玫瑰 ...
- 26.27.28.29.极区图(南丁格尔玫瑰图)、维恩图 (Venn diagram)、面状图(Area chart)、树地图
26.极区图(南丁格尔玫瑰图) 27.维恩图 (Venn diagram) 28.面状图(Area chart) 29.树地图 26.极区图(南丁格尔玫瑰图) 极区图(又名南丁格尔玫瑰图)呈放射延伸状 ...
- Python数据可视化之南丁格尔玫瑰图(亲测)
文章目录 1. 什么是南丁格尔玫瑰图 2. 南丁格尔玫瑰图的绘制 1. 什么是南丁格尔玫瑰图 央视新闻用来展示疫情0增长天数的图就是南丁格尔玫瑰图. 南丁格尔玫瑰图(Nightingale rose ...
- python画玫瑰图_央视都在用的“南丁格尔玫瑰图”,原来Python也可以画
前一阵子,我看到央视新闻中,有一张比较好看数据图,如下: 后来才知道这叫"南丁格尔玫瑰图",是南丁格尔护士在克里米亚战争期间提交的一份关于士兵死伤报告时发明的一种图表. 我心想能不 ...
- staruml顺序图生成协作图_一个工具箱 之 南丁格尔玫瑰图生成器
南丁格尔玫瑰图是一种圆形的直方图,由弗罗伦斯·南丁格尔所发明,又名为极区图.出于对资料统计的结果会不受人重视的忧虑,她发展出一种色彩缤纷的图表形式,让数据能够更加让人印象深刻. 南丁格尔玫瑰图将柱图转 ...
- excel实战应用案例100讲(五)-excel实现南丁格尔玫瑰图制作
"提灯女神"南丁格尔 今天故事的主人公,是被誉为"护理事业的创始人和现代护理教育的奠基人"的弗洛伦斯·南丁格尔(Florence Nightingale). 读 ...
最新文章
- python3 数学常量
- SCART接口保护 ESD二极管选型
- upload-labs_pass20-move_uploaded_file函数特性
- linux运维趋势 37期刊为啥没有,linux运维常见问题
- python 上下文管理器
- Mysql库及表的基本概念、增删查改操作以及表的约束、多表联查
- 湖仓一体是否会掀起金融业的下一波数字浪潮?
- mysql json字符串_mysql如何截取一个json字符串?
- Shopee跨境电商开店高频问题解答
- euraka动态改变元数据无需重启服务
- 《WiscKey: Separating Keys from Values in SSD-conscious Storage》阅读笔记
- mpp新增一个字段_ormpp--一个很酷的Modern C++ ORM库
- 「米聊」突然复活,雷布斯真的是出其不意
- 使用3ds Max2022来制作简单的动漫头像
- 苹果5G芯片研发失败:继续依赖高通,还要担心被起诉?
- html table 固定表头和列
- 【传感器模块】 HC-SR501 人体红外感应模块 热释电 红外传感器
- windows系统安装配置mysql8,并设置远程访问
- 统计学基础_13描述性统计
- 序列3:序列方法实操上