查看原文
其他

数据呈现 | R绘图:南丁格尔图,展示全国现制饮品店密度分布

简华 数据Seminar 2021-06-03

南丁格尔玫瑰图,又名极坐标区域图,是南丁格尔在克里米亚战争期间提交的一份关于士兵死伤的报告时发明的一种图表。

南丁格尔玫瑰图,实质上是一种柱状图,其沿圆而不是直线显示的。它是基于极坐标绘制而成的,使用圆弧的半径长短来表示数据的大小(即数量的多少)。

南丁格尔玫瑰图与柱状图、饼图相比:

★ 南丁格尔玫瑰图本质上是柱状图在极坐标上的展示;

柱状图使用矩形的高度表示数值的大小;

南丁格尔玫瑰图使用扇形的半径大小表示数值的大小,饼图使用扇形的弧度表示数据的大小;

南丁格尔玫瑰图可以同时表现的分类多于饼图。




现制饮品店数据


本期,我们将用2018年全国31个省的现制饮品店数据,来绘制南丁格尔玫瑰图,以期展示不同地区的现制饮品店密度分布特点。表1给出了现制饮品店数据集。

表1 全国现制饮品店数量分布状况
省份现制饮品店数量(家)常住人口(万人)密度
北京4862154.20.2256
天津2991559.60.1917
河北7787556.30.103
山西5123718.340.1377
内蒙古48425340.191
............
陕西16063864.40.4156
甘肃5392637.260.2044
青海324603.230.5371
宁夏166688.110.2412
新疆7682486.760.3088

注:密度=现制饮品店数量/常住人口,这里的现制饮品店仅指奶茶店和咖啡店。




绘图代码


基于现制饮品数据集,下面我们用R中ggplot2包来分别绘制柱状图和南丁格尔玫瑰图,比较两者图形的样式差别。


柱状图:geom_bar

## 加载包library(openxlsx)library(ggplot2)
## 读取数据集,利用省份和密度两列数据绘图tea_pro_data<-read.xlsx('tea_pro_data.xlsx')
## 将省份名称,转换因子进行排序tea_pro_data$pro<-factor(tea_pro_data$pro,order=T, levels=c('北京','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江','上海','江苏','浙江','安徽','福建','江西','山东','河南','湖北','湖南','广东','广西','海南','重庆','四川','贵州','云南','西藏','陕西','甘肃','青海','宁夏','新疆'))
## 绘制柱状图ggplot(tea_pro_data,aes(x=pro,y=density))+ geom_bar(position = 'dodge',stat='identity', fill='#FF534D',color='#E03636', alpha=0.5)+ theme_bw()+ labs(x='现制饮品店分布(家/万人)',y=NULL)

左右滑动查看更多


南丁格尔玫瑰图:geom_bar+coord_polar

## 绘制南丁格尔玫瑰图ggplot(tea_pro_data,aes(x=pro,y=density))+ geom_bar(position = 'dodge',stat='identity', fill='#B9DCED',color='#495A80',size=0.25)+ coord_polar()+ scale_y_continuous(expand=c(0,0))+ scale_x_discrete(expand=c(0,0))+ geom_hline(yintercept=0)+ geom_hline(yintercept=2)+ ylim(-0.25,2)+ theme(panel.border = element_blank(), axis.ticks = element_blank(), axis.line = element_blank(), axis.text.x=element_text(face='bold'), axis.text.y = element_blank(), legend.position = c(0.1,0.9), legend.background = element_blank())+ labs(x='现制饮品店分布(家/万人)',y=NULL)

左右滑动查看更多




图形展示


运行上述代码,我们就可以比较柱状图和南丁格尔玫瑰图的样式差别了,效果如下:


柱状图效果:

图注:柱状图


南丁格尔玫瑰图效果:

图注:南丁格尔玫瑰图

从两幅图看,除了样式不同外,两幅图所呈现的结论是一致的。比如,西藏、广东和海南,每万人拥有的现制饮品店数量最多,均在1.5家/万人以上,是爱“喝茶”的第一梯队。紧随其后的是福建和贵州,每万人拥有的现制饮品店数量大约在1家左右。而每万人拥有的现制饮品店数量最少的是河北,等等。




请您思考


最后,小编来考考大家,如何把上面的南丁格尔玫瑰图改成下面的气泡图样式呢?快给我们留言吧!(PS:想学习Python绘制极坐标图形,请回顾往期推文:用Python绘制极坐标图形

图注:带有气泡的南丁格尔图







►往期推荐

回复【Python】👉简单有用易上手

回复【学术前沿】👉机器学习丨大数据

回复【数据资源】👉公开数据

回复【可视化】👉你心心念念的数据呈现

回复【老姚专栏】👉老姚趣谈值得一看


►一周热文

工具&方法丨使用R语言的正确姿势,R包干货奉献

特别推荐丨老姚专栏:漫谈科学三则

学术前沿 | 机器学习如何改变劳动力市场?

工具&方法丨关于交互项的那些事(四):非线性模型中的交互效应

数据呈现 | Stata+R绘图:小提琴图,展示不同地区婚姻市场状况






数据Seminar

这里是大数据、分析技术与学术研究的三叉路口




作者:简华(何年华)审阅:杨奇明编辑:青酱





    欢迎扫描👇二维码添加关注    


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存