这今天被这张图表刷屏了,这个图表叫“南丁格尔玫瑰图”。
南丁格尔玫瑰图是弗罗伦斯·南丁格尔所发明的。弗罗伦斯·南丁格尔,英国护士和统计学家,出生于意大利的一个英国上流社会的家庭。在德国学习护理后,曾往伦敦的医院工作。于1853年成为伦敦慈善医院的护士长。
南丁格尔玫瑰图
又名为极区图。是一种圆形的直方图。
在19世纪50年代的克里米亚战争中,南丁格尔使用这种图表揭示英军死亡的主要原因实际是在战场外感染疾病,以及在战场上受伤后没有适当的护理而伤重致死,真正死在战场上的人反而不多。
汇报对象是那些不太能理解传统统计报表的公务人员,甚至成功打动了维多利亚女王,从而成功改善了战地医院的卫生条件,为伤员们解决了必须的物资资源,英军伤员的死亡率因此迅速下降。
我们再来看看一些网友做的玫瑰图案例。
那如何使用Python绘制玫瑰图呢?
我们继续使用
PyEcharts
v1.x
版本进行绘制玫瑰图。
导入需要使用的模块:
1import pandas
2from pyecharts import options as opts
3from pyecharts.charts import Pie
导入数据
1# 导入数据
2data = pandas.read_excel(
3'C:/Python/rose.xlsx',
4sheet_name='1')
导入的数据是这样的,颜色可以改为自己喜欢的颜色,使用的是十六进制码。
长按识别下方二维码,并关注公众号
回复“
MG
”获取案例数据
接下来就画玫瑰图啦
1def pie_rosetype() -> Pie:
2 c = (
3 Pie()
4 .add(
5 series_name="",
6 data_pair=[list(z) for z in zip(data['省份'],data['天数'])],
7 # 饼图的半径,数组的第一项是内半径,第二项是外半径
8 # 默认设置成百分比,相对于容器高宽中较小的一项的一半
9 radius=["20%", "75%"],
10 # 是否展示成南丁格尔图,通过半径区分数据大小,有'radius'和'area'两种模式。
11 # radius:扇区圆心角展现数据的百分比,半径展现数据的大小
12 # area:所有扇区圆心角相同,仅通过半径展现数据大小
13 rosetype="area",
14 label_opts=opts.LabelOpts(is_show=False),
15 )
16 .set_colors(list(data['颜色']))
17 .set_global_opts(
18 title_opts=opts.TitleOpts(title="各省市零新增天数"),
19 legend_opts=opts.LegendOpts(is_show=False))
20 )
21 return c
22pie_rosetype().render('玫瑰图.html')
画出的玫瑰图效果如下: