pyechart练习二:星巴克门店分布

一、概述

数据集:25601行×13列

二、可视化

1、星巴克全球分布图

(1)普通地图

由于包或数据格式错误,地图无法显示区域颜色。

import pandas as pd
from pyecharts.charts import *
import pyecharts.options as opts
df = pd.read_csv('./directory.csv')a = list(df.Country.value_counts().to_dict().items())
print(a)
map = Map()
map.add('', list(df.Country.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('bbb.html')

 

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('ccc.html')

 

(2)各国/地区星巴克门店数量(可点击下钻到城市)

# 空值填充
df_t = df.fillna(value=dict(county_name='NA', city_name='NA'))
df_t = df_t.groupby(['Country', 'City'])['Brand'].count().reset_index()data = []
country = []
# 数据处理成Pyecharts需要的格式
for idx, row in df_t.iterrows():
if row['Country'] in country:
data[-1]['children'].append(dict(name=row['City'], value=row['Brand']))
else:
data.append(dict(name=row['Country'], children=[dict(name=row['City'], value=row['Brand'])]))
country.append(row['Country'])tree = TreeMap()
tree.add('星巴克门店',data,leaf_depth=1, # 叶子节点深度 国家和城市两层,深度为1
label_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('hhh.html')

 

 2、门店数量在前15的城市

b = list(df.City.value_counts().to_dict().items())[0:15]
data = dict(b)
print(list(data.keys()))
bar = Bar()
bar.add_xaxis(list(data.keys()))
bar.add_yaxis('', list(data.values()), label_opts=opts.LabelOpts(position='right'))
bar.set_global_opts(title_opts=opts.TitleOpts(title='门店数量在前15的城市'),
xaxis_opts=opts.AxisOpts(position='top'),
yaxis_opts=opts.AxisOpts(is_inverse=True),
visualmap_opts=opts.VisualMapOpts(is_show=False, dimension=0, max_=300,
range_color=['#FFE7D3','#7A0616']))
bar.reversal_axis()
bar.render('ddd.html')

 

 3、门店所有权占比

c = list(df['Ownership Type'].value_counts().to_dict().items())
d = df.groupby('Ownership Type').Brand.agg('count').sort_values(ascending=False)
print(c)
p = Pie()
p.add('', c, rosetype='area',label_opts=opts.LabelOpts(formatter='{b}:{d}%'), radius=['10%', '45%'])
p.set_global_opts(title_opts=opts.TitleOpts(title='门店所有权占比'))
p.render('eee.html')

 

4、星巴克在中国的分布

(1)根据经纬度绘制热力地图

df_china = df[df['Country'] == 'CN']
a = df_china.groupby(['Longitude', 'Latitude']).Brand.value_counts()
print(list(a.to_dict().items()))
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))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,
blur_size=10,
point_size=2,)
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_show=False, max_=1))
geo.render('fff.html')

 

(2)国内星巴克门店最多的20个城市

e = list(df[df['Country'] == 'CN']['City'].value_counts().to_dict().items())[0:20]
print(e)
bar2 = Bar()
bar2.add_xaxis(list(dict(e).keys()))
bar2.add_yaxis('', list(dict(e).values()), label_opts=opts.LabelOpts(position='right'))
bar2.set_global_opts(yaxis_opts=opts.AxisOpts(is_inverse=True),
xaxis_opts=opts.AxisOpts(position='top'),
visualmap_opts=opts.VisualMapOpts(is_show=False, dimension=0, max_=300))
bar2.reversal_axis()
bar2.render('ggg.html')

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/107058.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖店产品曝光率低怎么解决?提高曝光、点击、转化的技巧,可收藏

我是王路飞。 我之前一直在强调,抖店的核心有且只有一个,就是选品。 店铺内的所有问题,都是产品的问题,而你的运营手段,黑科技等等,终究只是外力罢了,既没办法让你赚到钱,也对你个…

画流程图用什么软件好?安利这几款

画流程图用什么软件好?画流程图是一项非常重要的技能,它可以帮助我们更好地规划和管理工作流程,提高工作效率。在现代的企业中,流程图已经成为了不可或缺的一部分,它可以用来描述各种业务流程、流程控制、组织结构等等…

mysql技术文档--之与redo log(重做日志)庖丁解析-超级探索!!!

阿丹: 在刚开始写本文章的是还不太清楚要如何去细啃下这两个体系,在查阅资料的过程中。发现大厂阿里的庖丁解InnoDB系列,详细了的写了很多底层知识,于是基于这个这两个文章才有了阿丹的这篇文章。 整体认知: 在 MySQ…

Java特性之设计模式【抽象工厂模式】

一、抽象工厂模式 概述 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式 在抽象工厂模式中,接口是…

改善客户体验应该从哪几个方面入手?

在为客户提供良好使用体验的同时,还在针对性的为他们制定个性化服务,大多数公司都知道提供良好的客户体验的重要性,,那么如何为客户提供最佳的体验呢? 为客户提供最佳的体验需要从以下几方面入手: 了解客…

【mysql】—— 函数的基本介绍

前言: MySQL是一种常用的关系型数据库管理系统,它提供了许多内置的函数来进行数据操作和处理。本期,我将给大家介绍的就是关于 “函数” 的相关知识!!! 目录 (一)日期函数 &#…

定时任务执行脚本

1、编写bat脚本 将newman运行测试集的命令编写为bat脚本保存 2、设置定时任务 在计算机上右键->管理,在弹出菜单里的任务计划程序里创建定时任务配置执行

软件开发文档大全(项目管理、开发、实施、交付、评审、投标支撑)

前言: 在软件开发过程中,项目管理、开发、实施文档是至关重要的一部分。这些文档不仅为项目提供了清晰的规划和指导,还有助于确保项目按时、按质量完成。本文将详细介绍这些文档的内容及其在软件开发过程中的作用。 软件开发全文档获取&#…

CloudQuery X PolarDB:让数据库管理更简单

前言:8 月 15 日,CloudQuery 数据操作管控平台与阿里云 PolarDB 数据库管理软件,完成产品集成认证测试。也在以下功能上完善了用户使用 PolarDB 的体验,使数据库的管理更加安全高效。 支持在 CloudQuery 中创建连接,便…

中国智能卡车“遥遥领先”:卡车NOA落地5000万公里0事故,全球首个

智能车参考 | 公众号 AI4Auto 成熟的“擎天柱”,已经可以自己出去赚钱了。 此时此刻,遍及华东、华北、华南、西北…几乎全国所有主要货运干线上,都有智能重卡承运商单。 高速路段由卡车智能驾驶系统完全承担驾驶任务,自主控制油门…

1-5 AUTOSAR数据交换文件ARXML

目录 一、Arxml文件 二、各类ARXML文件 一、Arxml文件 arxml文件是AUTOSAR(Automotive Open System Architecture)标准定义的XML文件,用于描述汽车电子系统中的软件组件、通信接口和参数配置等信息。 arxml文件的主要作用是在AUTOSAR架构下…

【数据结构】长篇详解堆,堆的向上/向下调整算法,堆排序及TopK问题

文章目录 堆的概念性质图解 向上调整算法算法分析代码整体实现 向下调整算法算法分析整体代码实现 堆的接口实现初始化堆销毁堆插入元素删除元素打印元素判断是否为空取首元素实现堆 堆排序创建堆调整堆整合步骤 TopK问题 堆的概念 堆就是将一组数据所有元素按完全二叉树的顺序…