南丁格尔玫瑰图,又被称为极区图,是一种比较高级的图形。其百度百科解释如下:
南丁格尔玫瑰图是弗罗伦斯·南丁格尔所发明的。又名为极区图。是 一种圆形的直方图。 南丁格尔自己常昵称这类图为鸡冠花图(coxcomb),并且用以表达军医院 季节性的死亡率,对象是那些不太能理解传统统计报表的公务人员。
绘制南丁格尔玫瑰图,有很多种方法,比如我们可以使用Python,可以使用R语言,甚至于说,我们可以使用Excel来进行绘制。我在之前的一篇文章以及一个视频种已经介绍了如何使用Excel来绘制一个南丁格尔玫瑰图。有希望了解具体内容的读者,可以阅读我之前的文章或视频。使用Excel绘制的南丁格尔玫瑰图,还是存在着一定的缺陷的。因此,我们最好还是使用专业一些的工具来进行绘制,比如R语言,比如Python。这一次,我们就使用R语言来进行绘制。
这一次,我们使用的数据集依然是原来的那个中国大陆31省级行政区2019年GDP的那个数据集。不过,这次我们还会分享另一个数据集。
废话少说,我们直接给出代码
# 加载包
library("ggplot2")
library("openxlsx")
# 读取数据并查看
w=read.xlsx("E:南丁格尔玫瑰图(讲解用).xlsx")
head(w)
# 绘制条形图
p<-ggplot(data=w,aes(x=province,y=GDP,fill=province))+geom_bar(stat="identity",color="black")
# 将条形图进行极坐标化
p+coord_polar()
# 中间挖空
p+coord_polar()+ylim(-60000,150000)
# 进行排序处理
p<-ggplot(data=w,aes(x=reorder(province,GDP),y=GDP,fill=province))+geom_bar(stat="identity",color="black")
p+coord_polar()+ylim(-60000,150000)
# 进行美化、添加标题等处理
w$label=paste(w$province,w$GDP)
p+coord_polar()+theme_bw()+theme(panel.grid = element_blank(),panel.border= element_blank(),axis.text.y = element_blank(),axis.text.x = element_blank(),axis.ticks = element_blank(),axis.title = element_blank())+annotate("text",x=0, y=-50000, label="各省n2019年nGDP", fontface="bold", colour="steelblue", size=6) +geom_text(aes(label=w$label),size=3,vjust ="left",hjust ="outward",color ="dark blue",fontface="bold" )+guides(fill=F)+ylim(-60000,150000)
# 保存图形
ggsave("F:南丁格尔玫瑰图.jpeg",width=20,units="cm")
最后的效果,如下图所示:
其实,使用R语言绘制南丁格尔玫瑰图还是比较简单的,总共分为四步:
- 加载ggplot包
- 读取数据
- 使用ggplot绘制柱状图,进行极坐标化处理
- 进行适当的美化(排序、添加标题等)
觉得不太过瘾,我们再绘制一个南丁格尔玫瑰图,这次,我们就不详细给出代码了,因为代码只是参数变化了一下,这次,我们直接给出结果:
最后,我们给出这一次所用的资料。提取码是:2018。7天之内有效!