[資料視覺化 Data Visualization]Part8 – 圓餅圖

持續努力在家自主封城,加油~

很重要說三次!!!

減少外出與聚會,勤洗手,做好個人衛生!

減少外出與聚會,勤洗手,做好個人衛生!

減少外出與聚會,勤洗手,做好個人衛生!

今天來談談,想要看看一些市占率或是公司產品該怎麼看呢?比較方便的就是一塊大餅,看你佔了多少份額,所以今天就來談談圓餅圖怎麼畫吧,這大概也是這系列倒數三個圖了,之後可能就採不定時方式更新!

本次展示是透過全球手機市占率,展現圓餅圖的用法.

資料來源 : 全球手機市佔最新排名出爐:蘋果暌違 4 年登頂、華為慘跌!

0. 目標
圓餅圖靜態

圓餅圖靜態

1. 載入所需要的元件
from pyecharts.charts import Pie #畫圓餅圖當然是要找Pie這個元件啊 
from pyecharts import options as opts
2. 定義初始化資料
#初始化資料
#品牌名稱
Brands=['Other','Apple','Samsung','Xiaomi','OPPO','Huawei',]
#銷售金額
Sales=['130442.8','79942.7','62117.0','43430.3','34373.7','34373.7',]
3. 開始畫圖摟
pie=(
    Pie()
    .add(
        "",
        [list(z) for z in zip(Brands, Sales)] ,
    )
)
pie.render_notebook() #jupyernotebook專用
基礎圓餅圖

基礎圓餅圖

4. 什麼也太快了吧,上面這樣就畫好了?不過有些地方看不懂~
[list(z) for z in zip(Brands, Sales)]

這次用了一個手法,就是用zip這個函數將Brands與sales兩個打包成一個pyecharts可以讀的資料,並且放在list中變成:

#Pie要讀取資料的格式
[('data1','vale1'), ('data2','value2')....]

#
[
  ('Apple','79942.7'),
  ('Samsung','62117.0'),
  ('Xiaomi','43430.3'),
]
5. 什麼,你覺得不夠好看?好吧,透過rich函數加點html在裡面
pie=(
    Pie()
    .add(
        "",
        [list(z) for z in zip(Brands, Sales)] ,
        #此段定義圓餅圖要呈現Lable的式樣
        label_opts=opts.LabelOpts(
            formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c}  {per|{d}%}  ",
            background_color="#eee",
            border_color="#aaa",
            border_width=1,
            border_radius=4,
            #透過rich產生圖說內的式樣
            rich={
                "a": {"color": "#999", "lineHeight": 22, "align": "center"},
                "abg": {
                    "backgroundColor": "#e3e3e3",
                    "width": "100%",
                    "align": "right",
                    "height": 22,
                    "borderRadius": [4, 4, 0, 0],
                },
                "hr": {
                    "borderColor": "#aaa",
                    "width": "100%",
                    "borderWidth": 0.5,
                    "height": 0,
                },
                "b": {"fontSize": 16, "lineHeight": 33},
                "per": {
                    "color": "#eee",
                    "backgroundColor": "#334455",
                    "padding": [2, 4],
                    "borderRadius": 2,
                },
            },
        )
    )
)

pie.render_notebook() #jupyernotebook專用
6.完成一張美美又會動的元餅圖啦
圓餅圖完成品

圓餅圖完成品

按照往例寫在後頭:

身為一個IT與企業人,取之網路用之網路,也想為社會上盡一些力量,做點CSR(企業社會責任 Corporate Social Responsibility),透過我小小的力量,藉此拋磚引玉,我整理了相關視覺化資料簡報(目前約一百多頁)與怎麼畫圖表的程式碼都已經寫成Step by Step的Jupyter Notebook教學文件,有些會陸續在Blog說明,但若各位賢達也想給予鼓勵做些公益,歡迎到任何慈善公益團體捐款(E.g 罕見疾病、脊髓損傷、唐寶寶、愛貓愛狗…etc,比較小型的公益團體),讓愛心可以分散力量發揮出去,並且透過留言聯繫我,提供捐款證明,我將此份文件無償提供給您參考(文件會陸續更新,以當下最新版本提供).

ps 給醫護鼓勵打氣也可以啊~

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *