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 ...
随机推荐
- 题解 【洛谷】AT654
题解 AT654 [役人[错题已隐藏]] 此题题面没搬过来, 会日语的dalao可以自行去ATCoder查看. 给出此题的JavaAC代码: public class Main { public st ...
- JavaScript权威指南----一个JavaScript贷款计算器
废话不多说上例子代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- T3hack大部分随机化数据
1000 2000 1 2 1269 1 3 7707 1 4 3329 4 5 6789 1 6 6691 3 7 -1 1 8 2037 6 9 5427 6 10 5690 4 11 4847 ...
- 洛谷P3452 [POI2007]BIU-Offices的思考
这题就是坑人的,因为way我前一半存正图,后一半存反图,导致一般扩大两倍过不了,而是要扩大四倍,就是这个坑!!!!! #include<iostream> #include<cstd ...
- [UWP]为番茄钟应用设计一个平平无奇的状态按钮
1. 为什么需要设计一个状态按钮 OnePomodoro应用里有个按钮用来控制计时器的启动/停止,本来这应该是一个包含"已启动"和"已停止"两种状态的按钮,但我 ...
- 你知道MySQL中的主从延迟吗?
前言 在一个MySQL主备关系中,每个备库接受主库的binlog并执行. 正常情况下,只要主库执行更新生成所有的binlog,都可以传到备库并被正常的执行,这样备库就能够达到跟主库一样的状态,这就是最 ...
- nyoj 257 郁闷的C小加(一)(栈、队列)
郁闷的C小加(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 我们熟悉的表达式如a+b.a+b*(c+d)等都属于中缀表达式.中缀表达式就是(对于双目运算符来说 ...
- pat 1084 Broken Keyboard(20 分)
1084 Broken Keyboard(20 分) On a broken keyboard, some of the keys are worn out. So when you type som ...
- nyoj 60-谁获得了最高奖学金 (逻辑判断)
60-谁获得了最高奖学金 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:8 submit:17 题目描述: 某校的惯例是在每学期的期末考试之 ...
- Pashmak and Graph(dp + 贪心)
题目链接:http://codeforces.com/contest/459/problem/E 题意:给一个带权有向图, 找出其中最长上升路的长度. 题解:先按权值对所有边排序, 然后依次 u -& ...