R可视化:最近很火的玫瑰图竟然还不会做?

前一阵子,《人民日报》每天会以图表的形式通报疫情的情况,相信大家都看到过,它长下面酱紫:

图片来源:人民日报

很酷炫有木有!

南丁格尔玫瑰图的由来

先简单介绍一下这种图。

这种图表叫做南丁格尔玫瑰图(Nightingale Rose chart),对,就是那位伟大的护士——弗罗伦斯·南丁格尔发明的,这位女神不光是一位伟大的护士,还是一位统计学家。

当时,处于克里米亚战争期间。人们对资料统计的结果非常不重视,出于忧虑,她发明出一种色彩缤纷的图表形式,让数据能够更加使人印象深刻,这种图表形式就是「南丁格尔的玫瑰」(以下简称玫瑰图),又名极坐标面积图,是一种圆形的直方图。

南丁格尔自己常称这类图为鸡冠花图,并且用它来表达军医院季节性的死亡率,主要是方便那些不太懂传统统计报表的公务人员理解。

玫瑰图的使用场景

那玫瑰图一般用在什么场景呢?

仔细观察一下,不难发现其实玫瑰图和饼图类似,用法也一样,主要适用于多组对比数据的场景中。两者唯一的区别是:饼图是通过角度判别占比大小,而玫瑰图可以通过半径大小或者扇形面积大小来判别。

下次跟老板汇报工作的时候是不是又可以有新花样了?嘻嘻~

玫瑰图的制作

1. 在线制作网站

听说可以不用研究代码在线制作,各位小伙伴有没有高兴到笑出来?

祭出今天的神器网站——花火 Hanabi!(http://hanabi.data-viz.cn/index )

这是一个在线图表制作网站,网站提供了多种图表模板,并且完成后都可以免费导出。

首先打开网页,可以看到有很多图表模板。模仿《人民日报》制作玫瑰图,因此选择图中基础玫瑰图(环)就可以。


图片来源:网站截图

选择饼图 ->基础玫瑰图(环)
点进去后是主界面,页面右侧是菜单栏。


图片来源:网站截图

点击菜单栏“数据编辑”就可以编辑或上传自己的数据啦~


网站截图

颜色、添加百分比、画布大小都是可以自己调整的~

导出

最后一步,就是将我们制作完成的玫瑰图导出了,点击页面右上方「导出」,可以选择导出的尺寸以及文件格式。

2. 用R制作玫瑰图

客观先别走!有没有硬核又有追求的小伙伴想了解下用R怎么画玫瑰图的?

上面介绍了,这种图又名极坐标面积图,是一种圆形的直方图。

首先,你有一个直方图/柱状图,然后把坐标轴变为极坐标就成了玫瑰图。这就是用ggplot2作图的思想。

1. 举个例子,随机造一组示例数据吧:

# 示例数据
set.seed(9876)
DF <- data.frame(variable = 1:10, value = sample(10,replace = TRUE))
DF
   variable value
1         1     7
2         2    10
3         3     5
4         4     9
5         5     7
6         6     2
7         7    10
8         8     3
9         9     2
10       10     3

2. 先画个普通barplot看一看

library(ggplot2)   #说起画图怎能少了ggplot2
ggplot(DF, aes(factor(variable), value, fill = factor(variable))) + geom_bar(width = 1,stat = "identity")
barplot

3. 把上面的barplot坐标极化,完成✅

ggplot(DF, aes(factor(variable), value, fill = factor(variable))) + geom_bar(width = 1,stat = "identity") +
    scale_y_sqrt() +
    coord_polar(start = 3 * pi / 2)

其实也不复杂,对吧~

想看更多请关注公众号:

公众号:生信频道

你可能感兴趣的:(R可视化:最近很火的玫瑰图竟然还不会做?)