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了,添加文本框,调整位置就行,没什么好方法,就是硬肝,因为图上的文字排列没有规律可言,调整就是了。中奖的两个半透明圆圈就是插入两个性状,然后调整透明度。
将图中的多个元素调整调整位置即可:

  • 7
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
南丁格尔玫瑰图R语言中可以使用ggplot2包来绘制。首先,你需要安装ggplot2包并加载它。然后,你可以使用geom_bar()函数来创建南丁格尔玫瑰图。在geom_bar()函数中,你需要设置参数stat = "identity"来确保每个柱子的高度表示数据的大小。此外,你还需要设置参数coord_polar()来将坐标系设置为极坐标系。最后,你可以使用其他函数和参数来自定义图表的外观,如添加标题、调整颜色等。以下是一个示例代码: ```R # 安装和加载ggplot2包 install.packages("ggplot2") library(ggplot2) # 创建数据框 data <- data.frame(category = c("A", "B", "C", "D"), value = c(10, 20, 30, 40)) # 绘制南丁格尔玫瑰图 ggplot(data, aes(x = category, y = value, fill = category)) + geom_bar(stat = "identity") + coord_polar() + labs(title = "南丁格尔玫瑰图", x = "类别", y = "数值") ``` 这段代码将创建一个简单的南丁格尔玫瑰图,其中x轴表示类别,y轴表示数值。每个柱子的高度表示数据的大小,颜色表示不同的类别。你可以根据自己的需求进行进一步的自定义和调整。 #### 引用[.reference_title] - *1* [南丁格尔玫瑰图 With ggplot2【R语言】](https://blog.csdn.net/weixin_46128755/article/details/129841707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [R语言-南丁格尔玫瑰图](https://blog.csdn.net/weixin_44788825/article/details/104943249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值