99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火玫瑰圖!
全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火玫瑰圖!
2020-04-28
收藏
全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!

CDA數(shù)據(jù)分析師 出品


近日,新冠肺炎防控成果的好消息不斷。


今天我們聊聊,驚艷的疫情直觀圖。


據(jù)國(guó)家衛(wèi)健委數(shù)據(jù)統(tǒng)計(jì), 截止至3月10日24時(shí),31省區(qū)市累計(jì)治愈出院病歷超6萬(wàn),達(dá)到61475例。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


3月10日,隨著江夏方艙醫(yī)院和武昌方艙醫(yī)院“休艙大吉”,武漢14家方艙醫(yī)院全部休艙。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


截止到3月12日24時(shí),全國(guó)13地連續(xù)16天及以上無(wú)新增新冠肺炎確診病例。


看來(lái)春天真的是來(lái)了,疫情好轉(zhuǎn)的勢(shì)頭已經(jīng)愈發(fā)明顯。想必許多小伙伴也一樣,越來(lái)越期待摘下口罩的那天,出門玩耍,出游踏青,吃起火鍋唱起歌。


不過(guò)C君在這里也要提醒大家,多地病歷0新增不代表零風(fēng)險(xiǎn),一定要繃住,不要過(guò)早的松懈!繼續(xù)戴好口罩,做好個(gè)人防護(hù),避免人群聚集,相信摘下口罩的那天也就不遠(yuǎn)啦!


01
這道彩虹真贊!疫情玫瑰圖火了


與此同時(shí),最近刷遍微博的這個(gè)疫情直觀圖火了!來(lái)自央視新聞官微的這個(gè)圖一經(jīng)發(fā)出就令人驚艷,彩虹的配色,直觀的展現(xiàn)出目前全國(guó)多地病例0新增的數(shù)據(jù)。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


一時(shí)間#這道彩虹真贊#的話題在微博上閱讀達(dá)到2.6億,討論3.4萬(wàn)。大家在欣喜疫情好轉(zhuǎn)的同時(shí),都在問(wèn)這個(gè)圖叫什么呀?真太驚艷了。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


微博上也出現(xiàn)了各種解答,有的說(shuō)是餅圖,扇形圖,甚至還有的說(shuō)是蝸牛圖,漩渦圖的…其實(shí)準(zhǔn)確的來(lái)說(shuō),這個(gè)圖叫做南丁格爾玫瑰圖。


02
享譽(yù)全球的白衣天使佛羅倫斯?南丁格爾


南丁格爾玫瑰圖(Nightingale rose diagram)又名雞冠花圖、極坐標(biāo)區(qū)域圖。統(tǒng)計(jì)學(xué)家和醫(yī)學(xué)改革家佛羅倫斯?南丁格爾 (Florence Nightingale) 曾在克里米亞戰(zhàn)爭(zhēng)期間使用這種圖表傳達(dá)士兵身亡情況,故得名。

說(shuō)起南丁格爾玫瑰圖,就不得不聊一聊它的發(fā)明者,世界上第一個(gè)真正的女護(hù)士——弗羅倫斯·南丁格爾。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


弗羅倫斯·南丁格爾是著名的英國(guó)護(hù)士和統(tǒng)計(jì)學(xué)家,于1820年5月12日出生于意大利一個(gè)來(lái)自英國(guó)上流社會(huì)的家庭。南丁格爾在德國(guó)學(xué)習(xí)護(hù)理后,曾往倫敦的醫(yī)院工作。于1853年成為倫敦慈善醫(yī)院的護(hù)士長(zhǎng)。


19世紀(jì)50年代,英國(guó)、法國(guó)、土耳其和俄國(guó)進(jìn)行了克里米亞戰(zhàn)爭(zhēng),當(dāng)時(shí)英國(guó)戰(zhàn)士的死亡率高達(dá)42%。南丁格爾主動(dòng)申請(qǐng),她和38名女性志愿者護(hù)士的工作人員,前往戰(zhàn)地醫(yī)院服務(wù)。


到達(dá)戰(zhàn)地醫(yī)院后,南丁格爾克服種種困難,改善醫(yī)院后勤服務(wù)和環(huán)境衛(wèi)生,建立醫(yī)院管理制度,提高護(hù)理質(zhì)量,使傷病員死亡率從42%,急劇下降到2%。同時(shí)南丁格爾不僅表現(xiàn)出非凡的組織才能,而且對(duì)傷病員的關(guān)懷愛(ài)護(hù)感人至深。因此她也被稱為被稱為“克里米亞的天使”;南丁格爾經(jīng)常在黑夜中提燈巡視病房,又被譽(yù)為“提燈女士”(The Lady with the Lamp)。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


由于南丁格爾的貢獻(xiàn),讓昔日地位低微的護(hù)士,社會(huì)地位與形象都大為提高,成為崇高的象征?!澳隙「駹枴币渤蔀樽o(hù)士精神的代名詞。


03
數(shù)據(jù)可視化先驅(qū)南丁格爾玫瑰圖


除了出色的醫(yī)護(hù)才能,南丁格爾也有很強(qiáng)的數(shù)學(xué)天分,這也讓她在之后成為視覺(jué)表現(xiàn)和統(tǒng)計(jì)圖形的先驅(qū)。


在克里米亞的戰(zhàn)地醫(yī)院工作時(shí),她分析過(guò)堆積如山的軍事檔案,發(fā)現(xiàn)在克里米亞戰(zhàn)役中,英軍死亡的原因是在戰(zhàn)場(chǎng)外感染疾病,及在戰(zhàn)場(chǎng)上受傷后缺乏適當(dāng)護(hù)理而傷重致死,真正死在戰(zhàn)場(chǎng)上的人反而不多。


由于當(dāng)時(shí)資料統(tǒng)計(jì)的結(jié)果往往不受人重視,她發(fā)展出一種色彩繽紛的圖表形式——南丁格爾玫瑰圖,讓數(shù)據(jù)能夠更加讓人印象深刻。她用這個(gè)圖標(biāo)來(lái)表達(dá)軍醫(yī)院季節(jié)性的死亡率,向不會(huì)閱讀統(tǒng)計(jì)報(bào)告的國(guó)會(huì)議員,報(bào)告克里米亞戰(zhàn)爭(zhēng)的醫(yī)療條件。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


左下說(shuō)明簡(jiǎn)譯


  • 各色塊圓餅區(qū)均由圓心往外的面積來(lái)表現(xiàn)數(shù)字
  • 藍(lán)色區(qū)域:死于原本可避免的感染的士兵數(shù)
  • 紅色區(qū)域:因受傷過(guò)重而死亡的士兵數(shù)
  • 黑色區(qū)域:死于其它原因的士兵數(shù)
  • 1854年10月、1855年4月的紅黑區(qū)域恰好相等
  • 1856年1月與2月的藍(lán)、黑區(qū)域恰好相等
  • 1854年11月紅色區(qū)域中的黑線指出該月的黑色區(qū)域大小


正是這種清晰易懂的數(shù)據(jù)展現(xiàn)形式,改變了當(dāng)時(shí)包括維多利亞女王在內(nèi)的高層人士的認(rèn)知,導(dǎo)致他們做出醫(yī)事改革的決策。


普通柱形圖的坐標(biāo)系是直角坐標(biāo)系,而南丁格爾玫瑰圖的坐標(biāo)系是極坐標(biāo)系,使用圓弧的半徑長(zhǎng)短表示數(shù)據(jù)的大小。比起一般的柱狀圖,它要更有沖擊性,是非常一目了然的統(tǒng)計(jì)圖。


用例


那南丁格爾玫瑰圖都有哪些用例呢?


除了對(duì)比不同分類的大小,如各國(guó)制造指數(shù)的對(duì)比:


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!

Facebook 和 Twitter的用戶對(duì)比:


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


還可以用于表示披頭士歌曲的音調(diào)。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


還有最近火了的全國(guó)各地0新增彩虹圖。


04
教你用Python畫出南丁格爾玫瑰圖


那么你想知道,怎么才能做出如此驚艷的南丁格爾玫瑰圖嗎?


常見(jiàn)的方法有用Excel,然而做起來(lái)過(guò)程繁瑣還還原度低。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


要知道,萬(wàn)物皆可Python。


除了用Excel,今天C君就來(lái)教教你,怎么用Python做南丁格爾玫瑰圖,保證高還原度:


左圖是原圖,右圖是用pyechart做的。


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


具體步驟如下:


我們使用pyecharts包進(jìn)行南丁格爾玫瑰圖的繪制,如果你沒(méi)有安裝pyecharts,可以使用以下代碼進(jìn)行pip安裝。

pip install pyecharts


南丁格爾玫瑰圖和餅圖類似,算是餅圖的一種變形,用法也一樣,主要用在需要查看占比的場(chǎng)景中。


首先需要導(dǎo)入我們需要使用的包,其中pandas用于數(shù)據(jù)整理,pyecharts用于繪圖。


import pandas as pd
from pyecharts.charts import Pie
from pyecharts import options as opts


然后準(zhǔn)備需要的數(shù)據(jù),所用信息來(lái)自于國(guó)家衛(wèi)健委官方網(wǎng)站,整理之后的數(shù)據(jù)使用列表的形式進(jìn)行存儲(chǔ),其中provinces存儲(chǔ)省份名稱,num存儲(chǔ)確診病例連續(xù)多日零新增的數(shù)字,color_series列表存儲(chǔ)顏色用于后續(xù)的繪圖使用。


provinces = ['北京','上海','黑龍江','吉林','遼寧','內(nèi)蒙古','新疆','西藏','青海','四川','云南','陜西','重慶',
'貴州','廣西','海南','澳門','湖南','江西','福建','安徽','浙江','江蘇','寧夏','山西','河北','天津']
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']


接下來(lái)使用pandas對(duì)數(shù)據(jù)進(jìn)行降序排列以方便后續(xù)的繪圖,并提取數(shù)據(jù)。


# 創(chuàng)建數(shù)據(jù)框
df = pd.DataFrame({'provinces': provinces, 'num': num})


# 降序排序
df.sort_values(by='num', ascending=False, inplace=True)


# 提取數(shù)據(jù)
v = df['provinces'].values.tolist
d = df['num'].values.tolist


最后使用Pyecharts庫(kù)中的Pie類進(jìn)行圖形的繪制,代碼說(shuō)明如下,其中的配置項(xiàng)可以在pyecharts官網(wǎng) https://pyecharts.org

進(jìn)行查看。圖形生成在本地的html網(wǎng)頁(yè)中。


# 實(shí)例化Pie類
pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))


# 設(shè)置顏色
pie1.set_colors(color_series)


# 添加數(shù)據(jù),設(shè)置餅圖的半徑,是否展示成南丁格爾圖
pie1.add("", [list(z) for z in zip(v, d)],
radius=["30%", "135%"],
center=["50%", "65%"],
rosetype="area"
)


# 設(shè)置全局配置項(xiàng)
pie1.set_global_opts(title_opts=opts.TitleOpts(title='玫瑰圖示例'),
legend_opts=opts.LegendOpts(is_show=False),
toolbox_opts=opts.ToolboxOpts)


# 設(shè)置系列配置項(xiàng)
pie1.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="inside", font_size=12,
formatter=":{c}天", font_,
font_weight="bold", font_family="Microsoft YaHei"
),
)


# 生成html文檔
pie1.render('南丁格爾玫瑰圖.html')


生成的圖如下:


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


最后,再自己加一下中間的字就大功告成,對(duì)比一下原圖,是不是還原度很高呢?


全國(guó)多地新冠病例0增長(zhǎng),教你用Python畫出當(dāng)下疫情最火<a href='/map/meiguitu/' style='color:#000;font-size:inherit;'>玫瑰圖</a>!


結(jié)語(yǔ):


怎么樣,用Python作出如此絢爛的彩虹玫瑰圖,你學(xué)會(huì)了嗎?絢爛玫瑰,意味著我們終將完全戰(zhàn)勝疫情,大家又可以開(kāi)始豐富多彩的社會(huì)生活。


不過(guò)C君還是要提醒大家一下,雖然目前疫情大有轉(zhuǎn)好,但大家一定不能掉以輕心!堅(jiān)持做好防護(hù)哦,直到疫情完全解除的那一天。奧利給!

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }