当前位置: 首页 > 后端技术 > Python

全国多地新冠病例数零增长,教你用Python绘制当前疫情最火玫瑰图!

时间:2023-03-26 13:32:36 Python

CDA数据分析师出品近日,新冠肺炎防控成果喜讯不断。今天就来聊聊惊人的疫情可视化地图。据国家卫健委统计,截至3月10日24时,31个省累计治愈出院病例超过6万例,达61475例。3月10日,随着江夏方舱医院、武昌方舱医院“停舱”,武汉14家方舱医院全部停舱。截至3月12日24时,全国13个地区连续16天及以上无新增新冠肺炎确诊病例。看来春天真的来了,疫情好转的势头越来越明显。想必很多朋友都一样,越来越期待摘下口罩,出去玩,踏青,吃火锅,唱歌的那一天。不过在这里C君也要提醒大家,多地0新增病历并不代表零风险。一定要紧,不要过早放松!继续佩戴口罩,做好个人防护,避免人群聚集。相信摘下口罩的那一天不远了!01这彩虹真棒!疫情玫瑰图走红。与此同时,这张最近刷遍微博的疫情直观地图也火了一把!这张来自央视新闻官方微博的图片一经发布就惊艳全场。彩虹配色直观展示了当前全国多地0新增病例数据。一时间,#这条道颜色产品真喜#的微博话题阅读量达到2.6亿,讨论量达3.4万。大家在为疫情好转而欣喜的同时,都在问这张图叫什么名字?太奇妙了。微博上也有各种各样的回答,有的说是饼图、扇形图,还有的说是蜗牛图、漩涡图……其实这张图就叫夜莺玫瑰图。02FlorenceNightingale,享誉世界的白衣天使南丁格尔玫瑰图(Nightingalerosediagram),又称鸡冠花图、极坐标面积图。该图表以统计学家和医学改革家佛罗伦萨南丁格尔的名字命名,他用它来传达克里米亚战争期间士兵的死亡情况。说起南丁格尔的玫瑰图,就不得不说到它的发明者,世界上第一位真正意义上的女护士——弗洛伦斯·南丁格尔。弗洛伦斯·南丁格尔,英国著名护士、统计学家,1820年5月12日出生于意大利的一个英格兰上流社会家庭。南丁格尔在德国学习护理后在伦敦一家医院工作。1853年成为伦敦慈善医院护士长。1850年代英、法、土、俄进行克里米亚战争时,英国士兵的死亡率高达42%。南丁格尔自愿报名,她和38名女志愿护士前往野战医院服务。到达野战医院后,南丁格尔克服种种困难,改善医院后勤服务和环境卫生,建立医院管理制度,提高护理质量,使伤病员死亡率从42%急剧下降到2%。与此同时,南丁格尔不仅展现了非凡的组织能力,还深深感动了对伤病员的关怀和爱心。因此,她也被称为“克里米亚的天使”;夜莺经常在黑暗中提灯巡视病房,又被称为“提灯女郎”。由于南丁格尔的贡献,过去卑微的护士的社会地位和形象得到了极大的提升,成为崇高的象征。“夜莺”也成为护士精神的代名词。03数据可视化先驱南丁格尔的玫瑰图除了出色的医学天赋,南丁格尔还拥有强大的数学天赋,这也让她成为了视觉表现和统计图形方面的先驱。在克里米亚野战医院工作期间,她分析了堆积如山的军事档案,发现在克里米亚战役中阵亡的英军士兵是在战场外感染的疾病,以及在战场上对伤员缺乏适当的照顾,但并没有许多人在战场上受重伤而死。由于当时统计统计的结果往往不被人们重视,她开发了一种色彩缤纷的图表形式——夜莺玫瑰图,使数据更加可观。她用这个图标来代表军队医院的季节性死亡率,向无法阅读统计报告的国会议员报告克里米亚战争的医疗状况。左下方的解释是每个色环的简化翻译。圆心以外的区域代表数字。蓝色区域:死于可避免感染的士兵人数。红色区域:重伤死亡的士兵人数。黑色区域:死于其他疾病的士兵人数。原因1854年10月和1855年4月士兵人数正好等于红黑区1856年1月和2月正好等于蓝黑区1854年11月红区黑线表示黑区大小当月地区正是这种清晰易懂的数据呈现,改变了包括维多利亚女王在内的高层人士的认知,促使他们做出医改决策。普通柱状图的坐标系是直角坐标系,而南丁格尔玫瑰图的坐标系是极坐标系,用圆弧的半径来表示数据的大小。与普通直方图相比,更有冲击力,是一种非常清晰的统计图表。用例夜莺玫瑰图有哪些用例?除了比较不同类别的大小,比如各国制造业指标的比较:Facebook和Twitter的用户比较:也可以用来代表披头士歌曲的基调。还有最近火爆的全国0新彩虹图。04教你用Python画南丁格尔玫瑰图那么你想知道,你是如何画出如此惊艳的南丁格尔玫瑰图的?常用的方法是用Excel,但过程繁琐,还原度低。你知道,一切都可以是Python。除了使用Excel,C君今天还会教大家如何使用Python制作南丁格尔玫瑰图,保证高度还原:左图为原图,右图为pyechart制作。具体步骤如下:我们使用pyecharts包绘制夜莺玫瑰图。如果你还没有安装pyecharts,可以使用下面的代码安装pip。pipinstallpyechartsNightingale玫瑰图类似于饼图。是饼图的变形,用法一样。主要用于需要检查比例的场景。首先我们需要导入我们需要使用的包,其中pandas用于数据组织,pyecharts用于绘图。importpandasaspdfrompyecharts.chartsimportPiefrompyechartsimportoptionsasopts然后准备需要的数据。所用信息来源于国家卫健委官网。排序后的数据以列表的形式存储,其中provinces存储省名。num存储的是连续几天新增零的确诊病例数,color_series列表存储的是后续绘制的颜色。provinces=['北京','上海','黑龙江','吉林','辽宁','内蒙古','新疆','西藏','青海','四川','云南','陕西','重庆','贵州','广西','海南','澳门','湖南','江西','福建','安徽','浙江','江苏','宁夏','山西','河北','天津']num=[1,1,1,17,9,22,23,42,35,7,20,21,16,24,16,21,37,12,13,14,13,7,22,8,16,13,13]color_series=['#FAE927','#E9E416','#C9DA36','#9ECB3C','#6DBC49','#37B44E','#3DBA78','#14ADCF','#209AC9','#1E91CA','#2C6BA0','#2B55A1','#2D3D8E','#44388E','#6A368B''#7D3990','#A63F98','#C31C88','#D52178','#D5225B','#D02C2A','#D44C2D','#F57A34','#FA8F2F','#D99D21','#CF7B25','#CF7B25','#CF7B25']接下来使用pandas将数据降序排列,方便后续绘制和提取数据。#创建数据框df=pd.DataFrame({'provinces':provinces,'num':num})#降序排序df.sort_values(by='num',ascending=False,inplace=True)#提取数据v=df['provinces'].values.tolistd=df['num'].values.tolist最后使用Pyecharts库中的Pie类绘制图形。代码说明如下,配置项可以到pyecharts官网https://pyecharts.org查看。图形在本地html网页中生成。#实例化Pie类pie1=Pie(init_opts=opts.InitOpts(width='1350px',height='750px'))#设置颜色pie1.set_colors(color_series)#添加数据,设置饼图的半径,是否显示夜莺图pie1.add("",[list(z)forzinzip(v,d)],radius=["30%","135%"],center=["50%","65%"],rosetype="area")#设置全局配置项pie1.set_global_opts(title_opts=opts.TitleOpts(title='rosediagramexample'),legend_opts=opts.LegendOpts(is_show=False),toolbox_opts=opts.ToolboxOpts)#设置系列配置项pie1.set_series_opts(label_opts=opts.LabelOpts(is_show=True,position="inside",font_size=12,formatter="{b}:{c}day",font_,font_weight="bold",font_family="MicrosoftYaHei"),)#生成html文档pie1.render('Nightingalerosediagram.html')生成的图如下:最后加上中间的字就大功告成了,对比原图是否高度还原?结语:怎么样,这么漂亮的彩虹玫瑰图你学会用Python制作了吗?灿烂的玫瑰意味着我们终将彻底战胜疫情,大家又可以重新开始丰富多彩的社交生活。不过C君还是要提醒大家,虽然现在的疫情已经有了很大的好转,但是大家千万不能掉以轻心!坚持做好防护,直到疫情彻底解除的那一天。惊人的!更多优质内容,您可以前往:疫情当前,宅家也可以提升自己,为未来积蓄能量——蓄势待发!