Python数据可视化

  • Pyecharts(三) —— 星巴克门店分布
    • 一、背景
    • 二、数据可视化
      • 2.1 星巴克全球分布图
      • 2.2 门店数量在前15的城市
      • 2.3 门店所有权占比
      • 2.4 星巴克在中国的分布
        • 2.4.1 根据经纬度绘制热力地图
        • 2.4.2 国内星巴克门店最多的20个城市

Pyecharts(三) —— 星巴克门店分布

大家可以关注知乎或微信公众号的share16,我们也会同步更新此文章。

一、背景

   该数据集囊括了截至2017-02月全球星巴克门店的基础信息,其中包括品牌名称、门牌地址、所在国家、经纬度等一系列详细的信息。
   点此下载数据集

二、数据可视化

2.1 星巴克全球分布图

import pandas as pd
from pyecharts.charts import *
import pyecharts.options as opts
df = pd.read_csv('/XXXXXX/星巴克.csv')a = list(df.所在国家.value_counts().to_dict().items())
map = Map()
map.add('',list(df.所在国家.value_counts().to_dict().items()),maptype='world',is_roam=False,is_map_symbol_show=False,label_opts=opts.LabelOpts(is_show=False))
map.set_global_opts(title_opts=opts.TitleOpts(title='星巴克全球分布图',pos_left='center'),visualmap_opts=opts.VisualMapOpts(max_=14000))
map.render_notebook()map.set_global_opts(title_opts=opts.TitleOpts(title='星巴克全球分布图',pos_left='center'),visualmap_opts=opts.VisualMapOpts(range_text=['门店数量'],is_piecewise=True, #分段显示pieces=[{'min':1000},{'min':500,'max':1000},{'min':100,'max':500},{'max': 100}]))
map.render_notebook()


# 空值填充
df_t = df.fillna(value=dict(county_name='NA', city_name='NA'))
df_t = df_t.groupby(['所在国家', '所在城市'])['品牌名称'].count().reset_index()data = []
country = []
# 数据处理成Pyecharts需要的格式
for idx, row in df_t.iterrows():if row['所在国家'] in country:data[-1]['children'].append(dict(name=row['所在城市'], value=row['品牌名称']))else:data.append(dict(name=row['所在国家'], children=[dict(name=row['所在城市'], value=row['品牌名称'])]))country.append(row['所在国家'])tree = TreeMap()
tree.add('星巴克门店',data,leaf_depth=1,  # 叶子节点深度 国家和城市两层,深度为1label_opts=opts.LabelOpts(position="inside",formatter='{b}:{c}门店'),  # 标签设置levels=[  # 针对每一层的样式设置opts.TreeMapLevelsOpts(treemap_itemstyle_opts=opts.TreeMapItemStyleOpts(border_color="#555",border_width=4,gap_width=4)),opts.TreeMapLevelsOpts(color_saturation=[0.3, 0.6],   # 颜色饱和度范围treemap_itemstyle_opts=opts.TreeMapItemStyleOpts(border_color_saturation=0.7,gap_width=2,border_width=2))])tree.set_global_opts(title_opts=opts.TitleOpts(title="各国/地区星巴克门店数量(可点击下钻到城市)"),legend_opts=opts.LegendOpts(is_show=False))
tree.render_notebook()

   从地图上看,星巴克门店主要集中于美国,其次在亚洲的中国、日本;非洲、大洋洲几乎看不到星巴克门店的存在,其中的原因可能是消费水平考虑或当地居民不喜欢星巴克这种商业咖啡。

   从上述数据a中能看到,星巴克的门店基本覆盖了美国整个领土,远远领先其他国家,总门店数已达13000余家;除美国之外,中国是拥有星巴克门店最多的国家,门店数3128家;门店数量前五的国家是美国、中国、加拿大、日本、韩国,可以看出星巴克主要市场集中于北美和亚洲市场。

2.2 门店数量在前15的城市

c = df.groupby('所在城市').品牌名称.count().reset_index().sort_values('品牌名称',ascending=False).iloc[:15,:]
x_c,y_c = list(c.所在城市),list(c.品牌名称)b = Bar()
b.add_xaxis(x_c)
b.add_yaxis('',y_c,label_opts=opts.LabelOpts(position='right'))
b.set_global_opts(xaxis_opts=opts.AxisOpts(position='top'),yaxis_opts=opts.AxisOpts(is_inverse=True),visualmap_opts=opts.VisualMapOpts(is_show=False,max_=300,dimension=0,range_color=['#FFE7D3','#7A0616'] )) #range_color-可省略b.reversal_axis()
b.render_notebook()

2.3 门店所有权占比

#radius:设置内外径的大小来实现圆环的效果
#rosetype:可取值radius或aread = df.groupby('门店所有权').品牌名称.agg('count').sort_values(ascending=False)
p = Pie()
p.add('',list(d.to_dict().items()),radius=['10%','45%'],rosetype='area',label_opts=opts.LabelOpts(formatter="{b}:{d}%") )
p.render_notebook()

2.4 星巴克在中国的分布

2.4.1 根据经纬度绘制热力地图

df_china = df[df.所在国家=='China']
a = df_china.groupby(['经度','纬度']).品牌名称.count()
jwd,data = [],[]
for i,j in list(a.to_dict().items()):jwd.append((str(i[0])+'-'+str(i[1]),i[0],i[1]))data.append((str(i[0])+'-'+str(i[1]),j))''' 绘制地图热力图,必须max_或颜色等'''
geo = Geo()
for i in jwd:geo.add_coordinate(i[0],i[1],i[2])
geo.add_schema(maptype='china',is_roam=False)
geo.add('',data,type_='heatmap',is_large=True, # 当图表数据量大时可设置为Trueblur_size=10,  # 光晕大小point_size=2,   # 点的大小)
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_show=False,max_=1))
geo.render_notebook()

2.4.2 国内星巴克门店最多的20个城市

df_china = df[df.所在国家=='China']
b = df_china.groupby('所在城市').品牌名称.count().sort_values(ascending=False).reset_index().iloc[:20,:]
x_b,y_b = list(b.所在城市),list(b.品牌名称)bar = Bar()
bar.add_xaxis(x_b)
bar.add_yaxis('',y_b,label_opts=opts.LabelOpts(position='right'))
bar.set_global_opts(xaxis_opts=opts.AxisOpts(position='top'),yaxis_opts=opts.AxisOpts(is_inverse=True),visualmap_opts=opts.VisualMapOpts(is_show=False,max_=300,dimension=0))bar.reversal_axis()
bar.render_notebook()

谢谢大家

Pyecharts(三) —— 星巴克门店分布相关推荐

  1. [好文!!!]pyecharts实现星巴克门店分布可视化分析

    pyecharts实现星巴克门店分布可视化分析 项目介绍 使用pyecharts对星巴克门店分布进行可视化分析: 全球门店分布/拥有星巴克门店最多的10个国家或地区: 拥有星巴克门店最多的10个城市: ...

  2. 基于pycharts星巴克门店分布可视化分析

    # 导入项目所需的模块 import pandas as pd from pyecharts.charts import * from pyecharts import options as opts ...

  3. 数据分析实战——星巴克门店数量可视化分析

    星巴克门店分布可视化分析 项目介绍:使用python对星巴克门店分布进行可视化分析 数据背景:数据源来自与Kaggle: Starbucks Locations Worldwide | Kaggle, ...

  4. 【pandas】星巴克门店数据集分析

    文章目录 一.数据集 二.实现 导包 1.查看星巴克旗下有多少品牌 2.查看全世界一共有多少个国家和地区开设了星巴克门店,显示门店数量排名前10和后10的国家和地区. 3.用柱状图绘制排名前10的分布 ...

  5. python数据分析综合案列--星巴克门店数据分析及可视化

    本实训针对一组关于全球星巴克门店的统计数据,分析了在不同国家和地区以及中国不同城市的星巴克门店数量. 获取数据,数据放在directory.csv 这个案例主要分为以下几个部分: 数据清洗和预处理:使 ...

  6. 可口可乐发布全新品牌理念;百胜中国要开1000家Lavazza咖啡店;全球“最绿”星巴克门店开业 | 食品饮料新品...

    沃尔玛.联合利华.百胜中国.麦当劳中国.可口可乐.百事公司.星巴克.SHAKE SHACK.和府"小面小酒".别样肉客.美国New Age Meats等企业最新动态. 新店开业 麦 ...

  7. 全球最为“绿色”的一家星巴克门店9月30日在上海开业

    上海2021年9月29日 /美通社/ -- 全球最为"绿色"的一家星巴克门店 -- 星巴克向绿工坊(以下简称"向绿工坊")将于9月30日在上海前滩太古里正式开业 ...

  8. 星巴克凭什么在中国卖得比美国还贵?

    一边是商家层层加价,另一边是消费者"被大款",这其中的关系还真有些微妙.要处理好这层关系,我们需要一双"无形的手"来发挥作用:一只是市场调控之手,让暴利没有生存 ...

  9. 星巴克中国门店突破6000家,上海继续领跑全球,开出第1000家 | 美通社头条

    美通社消息:星巴克开出了在上海的第1000家门店,也是中国内地的第6000家门店.上海也因此成为全球首个星巴克门店数量破千的城市,继续在星巴克店数上领跑全球. "星巴克回来了!"在 ...

最新文章

  1. android 使用xml定义自己的View
  2. 北斗导航 | 北斗三号之RDSS短报文之双向零值
  3. Java黑皮书课后题第6章:*6.36(几何:正多边形的面积)正多边形…计算正多边形面积的公式是area = (n*s*s) / (4*Math.tan(Math.PI / n))。输入边 长显示面积
  4. 用台球杆击球,这个击球力道能传递到10米之外的球上吗?
  5. 一作发14篇SCI,累计IF60,博士前两年,他也曾走过弯路
  6. 事务回退机制 android,【Android基础】——Fragment-使用方法
  7. android 内存测试
  8. select下拉列表
  9. 字符串劈分(含中文)
  10. 南大计算机学硕复试,2017年南京大学计算机科学与技术系考研复试名单
  11. 关于阿里云aca和acp哪个好?阿里云认证证书有含金量吗?
  12. 微型计算机的安装步骤,技嘉微型电脑BRIX BSi3H-6100黑苹果安装详细教程
  13. 计算机学前教育教案,学前教育视唱练耳教案
  14. 校企勾结?京东被指压榨实习生:不结薪资、暴力对待、校方威胁...
  15. 根据设备不同,加载不同尺寸图片
  16. Linux/Centos nethogs 按进程监控网络带宽
  17. 01. Web漏洞靶场的搭建
  18. 摩尔斯电码(Python字典实现)
  19. iOS 第三方dSYM定位BUG
  20. 字符串处理 | 北邮OJ | 101. IP地址

热门文章

  1. 【Computer Vision】基于VGG-16实现中草药分类
  2. oracle数据库报12514,数据库报ORA-12514,12514报错
  3. 有源信号分辨率太高,导致投影扩展到第二显示器黑屏问题解决
  4. 判断list集合不为空的方法,返回的是size == 0
  5. 张小龙演讲干货:微信的未来在哪?这里有7个答案
  6. springboot+app基于安卓的移动数字图书馆的设计与实现毕业设计源码030911
  7. Nginx配置有条件的301跳转的方法
  8. 解决hadoop namenode 无法启动
  9. JDK8版本JAVA运行错误:找不到或无法加载主类 HelloJava的原因及解决方案
  10. 程序员黄话,看得懂的都开车好几年了,羞羞羞~