肝!用 Highcharts 繪制餅圖,也很強(qiáng)大
來(lái)源 / Python數(shù)據(jù)之道
作者/Peter 整理/陽(yáng)哥
用 Highcharts 繪制餅圖,也很強(qiáng)大
前不久,分享了讀者投稿的文章,較為綜合的介紹了可視化庫(kù) Highcharts ,這個(gè)一個(gè) JavaScript 下的可視化工具,同時(shí)也有 Python 版本。
不少同學(xué)對(duì)這個(gè)工具感興趣,今天來(lái)跟大家介紹下如何用這個(gè)工具來(lái)繪制餅圖。大家可以對(duì)照自己常用的 Python 庫(kù),看看哪些工具更適合自己。
本文中介紹的是如何利用 python-highcharts 繪制各種餅圖來(lái)滿足不同的需求,主要包含:
基礎(chǔ)餅圖 單色+多色餅圖制作 帶上圖例+數(shù)據(jù)的餅圖 雙層餅圖的制作 扇形餅圖

基礎(chǔ)餅圖
首先我們看看整體的效果:
可以很清晰地看到每個(gè)區(qū)塊的名字 當(dāng)我們的光標(biāo)移動(dòng)到某個(gè)區(qū)塊,能夠看到該區(qū)塊占的比例

整理的代碼如下:

單色+多色餅圖
上面的基礎(chǔ)餅圖在 Highcharts 中默認(rèn)是每個(gè)區(qū)塊的顏色是各不相同的,如果我們想每個(gè)區(qū)塊的顏色是相同的,或者某幾個(gè)區(qū)塊的顏色是相同的,該如何操作呢?
單色餅圖
首先看看整體的效果圖:

整體的代碼如下:從導(dǎo)入庫(kù)到數(shù)據(jù)的添加設(shè)置、以及參數(shù)項(xiàng)的配置等

其中,重點(diǎn)的參數(shù)設(shè)置看這里:

Highcharts 中就是通過(guò) Highcharts.getOptions().colors 來(lái)設(shè)置默認(rèn)的顏色。我們改變下設(shè)置,繪制另一種顏色的餅圖:


多色餅圖
如果我們想某幾個(gè)區(qū)塊顯示相同的顏色,可以設(shè)置相同的數(shù)值,首先看看具體的效果圖:


可以看到我們將6個(gè)區(qū)塊的顏色分成了3大類,就是通過(guò)上面的方法來(lái)實(shí)現(xiàn)的。如果我們?cè)O(shè)置成0-5的數(shù)值,即每個(gè)區(qū)塊的顏色各不相同,那么就是基礎(chǔ)餅圖的樣子:


顯示圖例和數(shù)據(jù)的餅圖
上面提到的各種餅圖都是沒(méi)有圖例的,同時(shí)在區(qū)塊中也沒(méi)有直接顯示原始數(shù)據(jù),下面介紹方法來(lái)實(shí)現(xiàn)這兩種效果:


圖例和數(shù)據(jù)顯示的代碼設(shè)置:

雙層餅圖
上面介紹了各種單個(gè)餅圖的制作,下面講解如何利用 python-highcharts 制作雙層餅圖。看看整體的效果:

從上圖中我們可以看到:主要是有5種顏色
藍(lán)色 黑色 綠色 紅色 紫色
數(shù)據(jù)中顯示每個(gè)大類中還有子類,比如:MSIE 父類中還有子類 MSIE6.0、MSIE7.0、MSIE8.0、MSIE9.0。現(xiàn)在我們看看代碼中數(shù)據(jù)的顯示:

可以很清晰地看到:先顯示父級(jí)的數(shù)據(jù),再顯示子級(jí)的數(shù)據(jù)。整體的代碼如下:

扇形圖
上面介紹的都是如何制作各種餅圖,下面介紹一種制作 扇形圖 的方法。首先看看整體的效果:

上面顯示了5個(gè)類別的數(shù)據(jù),同時(shí)顯示了圖例,并且在扇形圖中顯示了數(shù)據(jù)。整體的代碼如下:

重點(diǎn)的設(shè)置部分:

總結(jié)
本文結(jié)合各種實(shí)際案例介紹了如何利用 python-highcharts 來(lái)繪制各種不同需求的餅圖或者扇形圖。通過(guò)上面案例的介紹,我們發(fā)現(xiàn)使用 Highcharts 繪制圖形的主要步驟如下:
導(dǎo)入我們需要的
Highcharts庫(kù),再實(shí)例化一個(gè)Highcharts對(duì)象數(shù)據(jù)項(xiàng)的配置:在繪圖的時(shí)候,數(shù)據(jù)的配置也很重要。
Highcharts中對(duì)數(shù)據(jù)格式要求還是挺高的,而且在數(shù)據(jù)中還可以對(duì)數(shù)據(jù)進(jìn)行效果的設(shè)置圖形參數(shù)設(shè)置:這是整個(gè)繪圖過(guò)程中 最為重要 的部分,主要是包含:圖表類型chart(柱狀圖、餅圖、折線圖等)、標(biāo)題title(主標(biāo)題、副標(biāo)題)、數(shù)據(jù)提示工具tooltip、繪圖選型plotOptions等配置項(xiàng)的設(shè)置
添加數(shù)據(jù)項(xiàng)和配置項(xiàng)。在添加配置項(xiàng)的時(shí)候,我們可以對(duì)最終的圖形進(jìn)行一些效果設(shè)置。
最后是個(gè)人的一點(diǎn)感覺(jué):利用 Highcharts 來(lái)進(jìn)行繪圖的確代碼量很大,基本上畫一個(gè)簡(jiǎn)單的餅圖或者柱狀圖都需要大量的代碼(相對(duì)其他自己使用的可視化庫(kù),比如 pyecharts、plotly_express 等)。
但是它的強(qiáng)大之處,應(yīng)該是在于結(jié)合前端的知識(shí),繪制更多動(dòng)態(tài)效果的圖形,讓圖形的可視化效果更美觀
作者簡(jiǎn)介
Peter,碩士畢業(yè)僧一枚,從電子專業(yè)自學(xué)Python入門數(shù)據(jù)行業(yè),擅長(zhǎng)數(shù)據(jù)分析及可視化。
個(gè)人站點(diǎn):www.renpeter.cn
