教你做超惊艳的南丁格尔玫瑰图
其實早在今年初,疫情還很嚴重的時候,人民日報發布的這個圖就吸引了廣大數據分析者的注意。
今天我們就把這個圖的前因后果以及怎么做一次性講清楚。
玫瑰圖的前世今生
這個圖學名:南丁格爾玫瑰圖,是弗羅倫斯·南丁格爾女士發明的,又名為極區圖、雞冠花圖。
要說到南丁格爾女士,也是很傳奇,她首先是一位護士,其次也是一名統計學家,更是英國皇家統計學會的第一位女性會員。
19世紀50年代,英國、法國、土耳其和俄國進行了克里米亞戰爭。南丁格爾主動申請,自愿擔任戰地護士。當時的醫院衛生條件極差,甚至連干凈的水源與廁所都沒有,傷士死亡率高達42%,直到 1855 年衛生委員會來到醫院改善整體的衛生環境后,死亡率才戲劇性地降至 2.5% 。當時的南丁格爾注意到這件事,認為政府應該改善戰地醫院的條件來拯救更多年輕的生命。
出于對資料統計的結果會不受人重視的憂慮,她發明出一種色彩繽紛的圖表形式,讓數據能夠更加讓人印象深刻。
這張圖就是南丁格爾當時報告這件事時所用的圖表,以表達軍醫院季節性的死亡率,從整體上來看: 這張圖是用來說明、比較戰地醫院傷患因各種原因死亡的人數,每塊扇形代表著各個月份中的死亡人數,面積越大代表死亡人數越多。
這張圖里有一大一小兩個玫瑰圖,右側較大的玫瑰圖,展現的是1854 年 4 月至 1855 年 3 月的數據;而左側的玫瑰圖,展現的則是 1855 年 4 月至 1856 年 3 月的數據,以1855 年4 月做為分界,將24 個月的資料切分為左右兩張圖再用黑色線條連結,是因為這大約便是衛生委員會來改善環境時的日期,也因此我們可以比較兩個年度的死亡人數與其原因的概略比例。
- 灰色的區域的面積明顯大于其他顏色的面積。這意味著大多數的傷亡并非直接來自戰爭,而是來自糟糕醫療環境下的感染。
- 衛生委員到達后(1855年3月),死亡人數明顯的下降。
她的方法打動了當時的高層,包括軍方人士和維多利亞女王本人,于是醫事改良的提案才得到支持,因該圖的外形酷似一朵綻放的玫瑰,因此“南丁格爾玫瑰圖”也就由此而來。
和餅圖的區別
餅圖是用角度的大小體現數值或占比
南丁格爾玫瑰圖是用扇形的半徑表示數據的大小,各扇形的角度則保持一致??梢哉f南丁格爾玫瑰圖實際上是一種極坐標化的圓形直方圖。它夸大了數據之間差異的視覺效果,適合展示數據原本差異小的數據
制作方法
用Excel、Python都可以實現,分別來講解。
用Excel
Excel圖表里本身是沒有南丁格爾玫瑰圖這個模板的,但是我們可以用雷達面積圖來做,也可以用圓環圖,這里我用雷達面積圖來做。
step1:添加輔助列1
這里有12個國家,雷達圖是按照極坐標來劃分的,那么一個國家在極坐標里的占比就是360/12=30。
step2:做輔助列2
每一個國家后的累計數據復制30次,均復制到輔助列2上,也就是說輔助列2應該有360條數據。
step3:填充雷達圖
對其插入雷達面積圖,同時將輔助列1添加進去。
并將復制列1更改為圓環圖,圓環圖是用來加標簽的。
將圓環圖填充為無色,并設置標簽格式,最后得到如圖所示的南丁格爾玫瑰圖:
網上有很多用Excel做玫瑰圖的教程,不過說實話,沒有對比,單純用一組數據做這個南丁格爾玫瑰圖,是為了顯擺嗎?柱形圖它不是更簡單直觀嗎
用Python
用Python里的pyecharts來作圖,首先要安裝pyecharts,安裝完以后可按如下代碼制作。
import pandas as pd
from pyecharts.charts import Pie
from pyecharts import options as opts
# 讀入數據,需要更改
df = pd.read_excel("30.xlsx")
v = df['疫情地區'].values.tolist()
d = df['新增'].values.tolist()
#設置顏色
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']
# 實例化Pie類
pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
# 設置顏色
pie1.set_colors(color_series)
# 添加數據,設置餅圖的半徑,是否展示成南丁格爾圖
pie1.add("", [list(z) for z in zip(v, d)],radius=["30%", "135%"],center=["50%", "65%"],rosetype="area")
# 設置全局配置項
pie1.set_global_opts(title_opts=opts.TitleOpts(title='玫瑰圖示例'),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=":{c}例", font_style="italic",font_weight="bold", font_family="Microsoft YaHei"),)
# 生成html文檔
pie1.render("南丁格爾玫瑰圖.html")
完成后效果如下:
在線
在線制作永遠是滿足臨時性需求最方便快捷的,這里推薦兩個在線制作的網站。
花火:hanabi.data-viz.cn
選擇基礎玫瑰圖,也可選擇圓環狀的。
點擊上傳數據
點擊右邊的圖表設置,可以設置顏色、字體、標題、圖例等具體信息。
總感覺這個圖這么小呢,是我做的不對嗎?
圖之典:tuzhidian.com
這個網站很好用,強推。
選擇南丁格爾玫瑰圖
這個網站的好處就是它會告訴你每一個圖表怎么用以及它的應用場景
還告訴我們和餅圖、柱形圖的區別
往下滑,可以看到不同工具的制作教程,當然這里我們需要線上制作。
點擊進去按需制作即可。
以上就是本篇文章的全部內容了,喜歡的小伙伴就點個在看吧~
我是可樂,更多精彩內容可關注公眾號:可樂的數據分析之路
或加我微信:data_cola
總結
以上是生活随笔為你收集整理的教你做超惊艳的南丁格尔玫瑰图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 201512-5 矩阵
- 下一篇: NEC Programming Cont