1. 程式人生 > >pyecharts實現星巴克門店分佈視覺化分析

pyecharts實現星巴克門店分佈視覺化分析

專案介紹

使用pyecharts對星巴克門店分佈進行視覺化分析:

  • 全球門店分佈/擁有星巴克門店最多的10個國家或地區;
  • 擁有星巴克門店最多的10個城市;
  • 門店所有權佔比;
  • 中國地區門店分佈熱點圖。

資料背景

該資料集來源Kaggle,囊括了截至2017/2月份全球星巴克門店的基礎資訊,其中包括品牌名稱、門牌地址、所在國家、經緯度等一系列詳細的資訊。

資料說明

欄位名稱 型別 解釋說明
Brand Object 品牌名稱,資料字典中包含了星巴克旗下的子品牌
Store Number Object 門店編號,獨立且唯一
Store Name Object 門店名稱,示例:“北京建國門內大街店”
Ownership Type Object 門店所有權型別,如:Company Owned
Street Address Object 門店所在的街道地址
City Object 門店所在的城市名稱
State/Province Object 門店所在的省份地區
Country Object 門店所在的國家或地區,如:US,代表美國
Postcode Object 門店所在地址的郵政編碼
Phone Number Object 門店的聯絡電話
Timezone Object 門店所在地的時區
Longitude Float64 門店地址的經度
Latitude Float64 門店地址的緯度

視覺化

  • 匯入包以及資料
import pyecharts
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
data = pd.read_csv('directory.csv')
#讀取檔案
Country = pd.read_csv('Country.csv')
#用於替換星巴克門店資訊中Country欄位簡寫
data = pd.merge(data,Country,left_on='Country',right_on='國際域名縮寫',how = 'left')

星巴克門店全球分佈

  • 截止資料採集時間,目前星巴克總共在全球73個國家和地區設有門店,合計25249家。
temp = data.groupby('Countries and Regions')['Brand'].count().reset_index()
temp.columns = ['國家或地區','計數']

Map = pyecharts.Map("世界地圖 - 不帶標記點")
Map.add("國家或地區",temp['國家或地區'], temp['計數'], maptype="world", is_visualmap=True,style='heatmap',
              is_map_symbol_show=False, visual_text_color='#000')
Map

  • 我們可以看見,門店主要還是集中在美洲,亞洲,歐洲,非洲目前只有摩洛哥,埃及南非設有門店。
  • 另外有意思的一點,整個澳大利亞只有22家星巴克門店,難道是澳大利亞人不愛喝咖啡嗎,其實正好相反,因為澳大利亞人太鍾愛咖啡了,澳大利亞人對咖啡的講究,就像中國人對茶的挑剔一樣,對於星巴克這種過於商業化的連鎖品牌有些難以生存。
  • 其實除了澳大利亞其實還有一個國家更過分,只是由於面積小不容易被注意到,那就是義大利,一家星巴克也沒有(查了一下新聞,星巴克似乎17年3月在義大利開設了一家)。

擁有星巴克門店最多的10個國家或地區

temp = data.groupby('City')['Brand'].count().reset_index()
temp = temp.nlargest(10,'Brand')
temp.columns = ['城市','計數']

bar = pyecharts.Bar("星巴克門店數量TOP10城市", "來源:kaggle",width=1200,height=600)
bar.add("門店數量", temp['城市'], temp['計數'],mark_point=['max'])
bar

  • 畢竟是美國的品牌,美國星巴克門店數量還是遠多於其他國家,其次是我們國家,總計2734家,目前應該更多了。

擁有星巴克門店最多10個城市

  • 看到上面的統計,我們可能會想到擁有星巴克門店最多的城市應該是紐約或者洛杉磯這些美國的超級城市,其實最後統計結果還有點意外。
temp = data.groupby('City')['Brand'].count().reset_index()
temp = temp.nlargest(10,'Brand')
temp.columns = ['城市','計數']

bar = pyecharts.Bar("星巴克門店數量TOP10城市", "來源:kaggle",width=1200,height=600)
#bar.use_theme('vintage')
bar.add("門店數量", temp['城市'], temp['計數'],mark_point=['max'])
bar

  • 排名第一的既不是紐約也不是洛杉磯,而是上海,擁有542家星巴克門店遠遠領先其他城市;
  • 第二是首爾,韓國5000W人口擁有近1000家星巴克門店,首爾出現在第二的位置不算意外,第三是北京,第四才是美國的紐約。
  • 第10名西雅圖,是星巴克總部所在地,除了這個原因,也許西雅圖程式設計師也貢獻了不少營業額。

所有權分佈

這個需要提前解釋一下,目前星巴克門店的經營方式氛圍如下4類:

  • Company Owned:公司獨資直營,這也是星巴克門店最多的經營方式
  • Licensed: 許可經營
  • Joint Venture: 合資經營,比如:國內江浙滬地區的星巴克最早就是由星巴克與統一集團聯手經營,17年7月的時候星巴克已收回所有權
  • Franchise:授權經營,類似麥當勞的經營模式
temp = data.groupby('Ownership Type')['Brand'].count().reset_index()
temp = temp.nlargest(10,'Brand')
temp.columns = ['Ownership Type','計數']

chart = pyecharts.Pie("星巴克門店所有權分佈", "來源:kaggle", title_pos='center')
chart.add("佔比", temp['Ownership Type'], temp['計數'], is_random=True,
              radius=[30, 75], rosetype='radius',
              is_legend_show=False, is_label_show=True)
chart

中國區分佈

  • 我們接下來通過熱點圖看下星巴克門店在中國區內的分佈情況;
temp = data[data['Country']=='CN'].groupby('City')['Brand'].count().reset_index()
#防坑,門店資訊中城市格式不統一,無法使用pyecharts自帶的經緯度,自定義新增門店檔案自帶的經緯度
position = dict(zip(data['City'].values,data[['Longitude','Latitude']].values.tolist()))
chart = pyecharts.Geo("全國門店分佈熱點圖", "來源:Kaggle", title_color="#fff", title_pos="center",
width=800, height=600, background_color='#404a59')
chart.add("", temp['City'], temp['Brand'], visual_range=[0, 80], type='heatmap',
        visual_text_color="#fff", is_visualmap=True,is_legend_show=False,
       geo_cities_coords = position)
chart

  • 毫無意外的最紅的三個區域——長三角,珠三角北京
  • 中部城市以成都/武漢為首。
  • TOP20榜單,看看有沒有你所在的城市:
城市 數量
上海市 542
北京市 234
杭州市 117
深圳市 113
廣州市 106
香港 104
成都市 98
蘇州市 90
南京市 73
武漢市 67
寧波市 59
天津市 58
重慶市 41
無錫市 40
西安市 40
佛山市 33
東莞市 31
廈門市 31
青島市 28
常州市 26

最後

總體來說,星巴克門店主要還是分佈在發達國家和地區,當然也與不同國家地區的文化有關,我們還是不能武斷地因為哪個城市,哪個國家星巴克更多就斷定更發達。
另外echarts是由百度團隊開發的JavaScript視覺化圖表庫,目前python中可以直接通過pyecharts呼叫,除了豐富的圖表還具有傳統圖表不具有的互動性,強烈推薦各位使用。
---
skr~skr~~~