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~~~
pyecharts实现星巴克门店分布可视化分析的更多相关文章
- pandas实战——对星巴克数据的分析
一.实验对象 实验对象为星巴克在全球的门店数据,我们可以使用pandas对其进行简单的分析,如分析每个国家星巴克的数量,根据门店数量对国家进行排序等. 二.数据分析 1.读取数据并获取数据行列数 首先 ...
- 【Python可视化】使用Pyecharts进行奥运会可视化分析~
项目全部代码 & 数据集都可以访问我的KLab --[Pyecharts]奥运会数据集可视化分析-获取,点击Fork即可- 受疫情影响,2020东京奥运会将延期至2021年举行: 虽然延期,但 ...
- 如何获取(GET)一杯咖啡——星巴克REST案例分析
英文原文:How to GET a Cup of Coffee 我们已习惯于在大型中间件平台(比如那些实现CORBA.Web服务协议栈和J2EE的平台)之上构建分布式系统了.在这篇文章里,我们将采取另 ...
- 爬虫综合大作业——网易云音乐爬虫 & 数据可视化分析
作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ...
- 【分享】纯jQuery实现星巴克官网导航栏效果
前言 大冬天的没得玩,只能和代码玩. 所以就无聊研究了一下星巴克官网,在我看来应该是基本还原吧~ 请各位大神指教! 官网效果图 要写的就是最上方的会闪现的白色条条 效果分析 1.在滚动条往下拉到一定距 ...
- python3 对拉勾数据进行可视化分析
上回说到我们如何如何把拉勾的数据抓取下来的,既然获取了数据,就别放着不动,把它拿出来分析一下,看看这些数据里面都包含了什么信息.(本次博客源码地址:https://github.com/MaxLyu/ ...
- 【方法】纯jQuery实现星巴克官网导航栏效果
前言 大冬天的没得玩,只能和代码玩. 所以就无聊研究了一下星巴克官网,在我看来应该是基本还原吧~ 请各位大神指教! 官网效果图 要写的就是最上方的会闪现的白色条条 效果分析 1.在滚动条往下拉到一定距 ...
- ubuntu之路——day3(本来打算做pytorch的练习 但是想到前段时间的数据预处理的可视化分析 就先总结一下)
首先依托于一个场景来进行可视化分析 直接选了天池大数据竞赛的新人赛的一个活跃题目 用的方式也是最常用的数据预处理方式 [新人赛]快来一起挖掘幸福感!https://tianchi.aliyun.com ...
- python学习笔记(14):可视化分析
一.Matplotlib 1.用于创建出版质量图表的绘图工具库 2.目的的为Python构建一个Matlab式的绘图接口 3.import matplotlib.pyplot as plt:pyplo ...
随机推荐
- [UWP] 为WinRT组件创建Nuget包
Nuget 是 dotnet 开发中必不可少的包管理工具,但不仅仅局限于 dotnet 项目,在 VS 中使用 C++ 开发的时候,也可以使用 Nuget 来引用第三方组件.同样也可以用 Nuget ...
- P3665 [USACO17OPEN]Switch Grass
题目描述 N个点M条边的无向图,每个点有一个初始颜色,每次改变一个点的颜色,求改变后整张图上颜色不同的点之间的距离最小值. 思路 考虑整张图的距离最小值一定是一条边,而不可能是一条路径,那么显然这条边 ...
- sshd服务及基于密钥远程登陆(无需密码)
上一条博客说明了用sshd服务远程登陆另一个系统,但是需要密码,如果不用密码呢?有没有简便的方法呢?下面为大家介绍一下,也就是基于密钥的安全验证:需要在本地生成”密钥对“后将公钥传送至服务端,进行公共 ...
- Java高性能反射工具包ReflectASM
ReflectASM 使用字节码生成的方式实现了更为高效的反射机制.执行时会生成一个存取类来 set/get 字段,访问方法或创建实例.一看到 ASM 就能领悟到 ReflectASM 会用字节码生成 ...
- 『题解』Codeforces446C DZY Loves Fibonacci Numbers
更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description In mathematical terms, the sequence \( ...
- 『数据结构』RMQ问题
RMQ(Range Minimum/Maximum Query),即区间最值问题. 对于长度为 n 的数列 A ,回答若干查询 RMQ(A,i,j)(i,j<=n) ,返回数列 A 中下标在 i ...
- STM32中断系统
1.中断介绍: 1.1 中断概念 CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂 时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序 或中断处理程 ...
- python——自行实现sorted函数
仿照内建函数sorted,自行实现一个sort函数,能够为列表进行排序 看下面实例的前提是掌握 0.掌握sorted函数的用法.1.函数基本概念.2.函数是如何传参的.3.掌握三元表达式.4.掌握内建 ...
- netty服务端的创建
服务端的创建 示例代码 netty源码中有一个netty-example项目,不妨以经典的EchoServer作为楔子. // 步骤1 EventLoopGroup bossGroup = new N ...
- 这份最新Python面试精选问题你会几道?
相信很多小伙伴学python以后都想进大厂,但是进大厂前你得了解些大厂面试题,可以在面试前复习下,以下是精选的5道python面试题: 第一. Python 的特点和优点是什么? Python 可以作 ...