爆款風玫瑰圖:新冠肺炎全球疫情形勢

2021-02-21 YuLabSMU

最近人民日報新媒體發布的「新冠肺炎全球疫情形勢」圖,很多人想重複,但畫不出來。這其實是幾行代碼的事情而已。

這個圖,大名叫風玫瑰圖,用R畫起來分分鐘的事情。但你畫出來的,可能很醜,要畫出爆款,還是有點門檻的。

這個圖確診數是取過對數,這一點容易,而顏色的映射,也是取對數的,不然的話,前三是紅的,其它全綠了。然後標國家和確診數目,字體還要旋轉相應的角度,這一點可能是最難的。當然細節上還有一點,就是中間還要空一個白洞。如果你知道怎麼加白洞,那麼加兩圈淡淡的圈也容易了。

首先我們用nCov2019包中的全球歷史數據,兩三行代碼就能拿到。

海外新冠數據
require(nCov2019)
y = load_nCov2019(lang='zh')
d = y['global']

過濾數據

過濾一下,只拿上一天的數據,並排除中國,只留海外數據,然後這裡又進一步過濾,只保留海外前40的數據。

require(dplyr)
dd <- filter(d, time == time(y) & country != '中國') %>%
arrange(desc(cum_confirm))

dd = dd[1:40, ]
dd$country = factor(dd$country, levels=dd$country)

畫圖

相關焦點