【数据可视化】全国星巴克门店可视化

devtools/2025/1/24 15:06:43/

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【数据可视化-13】全国星巴克门店可视化

  • 引言
  • 一、数据准备
    • 1.1 导入必要的库
    • 1.2 读取数据
    • 1.3 数据探索
    • 1.4 数据清洗
  • 二、数据可视化
    • 2.1 星巴克门店各个省份的数量可视化
    • 2.2 全国门店分布热点图地图可视化
    • 2.3 各省星巴克门店数量占比可视化
    • 2.4 星巴克门店营业时间段数量可视化
  • 总结

引言

  在该项目中我们将使用 pandaspyecharts 库来实现对星巴克全国门店数据的可视化分析。具体内容包括:

  1. 星巴克门店各个省份的数量可视化
  2. 全国门店分布热点图地图可视化
  3. 各省星巴克门店数量占比可视化
  4. 星巴克门店营业时间段数量可视化

  首先,你需要确保已经安装了 pandaspyecharts 库。如果尚未安装,可以使用以下命令进行安装:

pip install pandas pyecharts

一、数据准备

  接下来,让我们开始编写代码。

1.1 导入必要的库

import pandas as pd
from pyecharts.charts import Map, Pie, Bar, Line
from pyecharts import options as opts
from pyecharts.globals import ThemeType

1.2 读取数据

  假设我们有一个 CSV 文件 starbucks_locations.csv,其中包含星巴克门店的详细信息,如省份、城市、经纬度、营业开始时间、营业结束时间等。

# 读取星巴克门店数据
df = pd.read_csv('starbucks_locations.csv')

1.3 数据探索

# 读取星巴克门店数据
df.info()

1.4 数据清洗

print(df.shape)
# 尝试将time列转换为日期时间对象,无法转换的将被设置为NaT
df['开始营业时间'] = pd.to_datetime(df['开始营业时间'], format='%H:%M:%S', errors='coerce')
# 删除time列为NaT的行
df = df.dropna(subset=['开始营业时间'])# 由于time列现在已经是datetime类型,如果你想要保留原始字符串格式,可以将其转换回字符串
# 注意:这样做会丢失时间信息(如时区、日期部分等),除非你在转换时指定了这些信息
df['开始营业时间'] = df['开始营业时间'].dt.strftime('%H:%M:%S')
print(df.shape)


  删除了7行时间列异常的数据;

df['开始营业时间_1'] = pd.to_datetime(df['开始营业时间'])
df['停止营业时间_1'] = pd.to_datetime(df['停止营业时间'])
df['营业时长'] = df['停止营业时间_1'] - df['开始营业时间_1']
df['营业时长'] = pd.to_timedelta(df['营业时长'])
df['营业时长'] = df['营业时长'].dt.total_seconds()/3600
df['营业时长'] = df['营业时长'].apply(lambda x : x if x > 0 else x + 24)df['营业时长区间'] = pd.cut(df['营业时长'],bins=[0,8,10,12,14,16,24],labels=["0-8h","8-10h","10-12h","12-14h","14-16h","16-24h"])

  生成了营业时长和营业时长区间区间两个字段;

二、数据可视化

2.1 星巴克门店各个省份的数量可视化

# 星巴克门店最多10个城市
temp = df['省份'].value_counts().reset_index()
temp.columns = ['省份','计数']
temp1 = temp[:-2]
data_pair = [(row['省份'], row['计数']) for _, row in temp1.iterrows()]
top_city = sorted(data_pair, key=lambda x: x[1], reverse=True)[::-1]bar = (Bar(init_opts=opts.InitOpts(theme='dark',width='1000px', height='800px')).add_xaxis([x[0] for x in top_city]).add_yaxis("", [x[1] for x in top_city]).set_series_opts(label_opts=opts.LabelOpts(is_show=True, position='insideRight',font_style='italic',color='pink'),).set_global_opts(title_opts=opts.TitleOpts(title="星巴克门店各个省份的数量",subtitle='数据截止日期:2017年2月'),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),  #legend_opts=opts.LegendOpts(is_show=True),visualmap_opts=opts.VisualMapOpts(is_show=False,pos_top='60%',pos_left='40%',range_color=["green", "yellow", "red", "pink", "orange", "purple"])).reversal_axis())
bar.render_notebook()

2.2 全国门店分布热点图地图可视化

data_pair = []# 新建一个BMap对象
geo = Geo(init_opts=opts.InitOpts(theme='dark'))data_pair = [[temp.loc[i]['省份'],temp.loc[i]['计数']] for i in range(28)[:15]]geo = (geo.add_schema(maptype="china", zoom=1).add("", data_pair, type_='heatmap').set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="全国门店分布热点图",subtitle="数据截止日期:2017年2月"),legend_opts=opts.LegendOpts(is_show=False),visualmap_opts=opts.VisualMapOpts(is_show=True,max_=100, is_piecewise=False, range_color=['blue', 'green', 'yellow', 'red']))
)geo.render_notebook()

2.3 各省星巴克门店数量占比可视化

pie = (Pie(init_opts=opts.InitOpts(width='1000px', height='800px')).add(series_name="",data_pair=[list(z) for z in zip(temp['省份'][:28], temp['计数'][:28])],radius=["30%",'50%'],center=["38%", "50%"],label_opts=opts.LabelOpts(is_show=False, position="center"),).set_global_opts(title_opts=opts.TitleOpts(title='各省星巴克门店数量占比',pos_top='2%',pos_left="center",title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=20)),visualmap_opts=opts.VisualMapOpts(is_show=False,max_=600,pos_top='70%',pos_left='20%',range_color=['blue', 'green', 'yellow', 'red']),legend_opts=opts.LegendOpts(is_show=True, pos_right="15%", pos_top="8%",orient="vertical"),).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
)
pie.render_notebook()
pie.render("pie_set_color.html")

2.4 星巴克门店营业时间段数量可视化

  假设我们有一个字段 营业时间段,记录门店的营业时间范围,例如 “07:00-22:00”。

c = (Bar(init_opts=opts.InitOpts(width='1000px', height='400px')).add_xaxis(temp2['时间段'].tolist()).add_yaxis("基本柱状图", temp2['计数'].tolist(),itemstyle_opts=opts.ItemStyleOpts(color="#00CD96"))#自定义颜色.set_global_opts(title_opts=opts.TitleOpts(title="星巴克门店营业时间段数量", subtitle="数据截止日期:2017年2月"),brush_opts=opts.BrushOpts(), # 设置操作图表的画笔功能toolbox_opts=opts.ToolboxOpts(), # 设置操作图表的工具箱功能yaxis_opts=opts.AxisOpts(name="数量"), # 设置Y轴名称、定制化刻度单位xaxis_opts=opts.AxisOpts(name="时间段"), # 设置X轴名称visualmap_opts=opts.VisualMapOpts(is_show=False,max_=600,pos_top='70%',pos_left='20%',range_color=['blue', 'green', 'yellow', 'red']))
)
c.render_notebook()

总结

  通过以上的步骤,我们成功地实现了对星巴克全国门店数据的可视化分析。从各个省份的门店数量、全国门店分布热点图、各省门店数量占比,到门店的营业时间段数量,都进行了详细的可视化展示。这些图表可以我们直观地理解了星巴克门店的分布情况。


如果您在人工智能领域遇到技术难题,或是需要专业支持,无论是技术咨询、项目开发还是个性化解决方案,我都可以为您提供专业服务,如有需要可站内私信或添加下方VX名片(ID:xf982831907)

期待与您一起交流,共同探索AI的更多可能!


http://www.ppmy.cn/devtools/153163.html

相关文章

FPGA实现任意角度视频旋转(二)视频90度/270度无裁剪旋转

本文主要介绍如何基于FPGA实现视频的90度/270度无裁剪旋转,关于视频180度实时旋转,请见本专栏前面的文章,旋转效果示意图如下: 为了实时对比旋转效果,采用分屏显示进行处理,左边代表旋转前的视频在屏幕中…

【负载均衡式在线OJ】加载题目信息(文件版)

目录 如何读取文件 -- 常见流程 代码 如何读取文件 -- 常见流程 在C中使用 std::ifstream来打开文件流是一个常见的操作,用于创建一个输入文件流,并尝试打开名为 question_list的文件。if (!in.is_open()):检查文件是否成功打开。如果文件未…

靠右行驶数学建模分析(2014MCM美赛A题)

笔记 题目 要求分析: 比较规则的性能,分为light和heavy两种情况,性能指的是 a.流量与安全 b. 速度限制等分析左侧驾驶分析智能系统 论文 参考论文 两类规则分析 靠右行驶(第一条)2. 无限制(去掉了第一条…

【行空板K10】项目实践案例征集 跨学科案例 研究蒸发量

目录 项目来源 项目简介 项目知识点 项目原理 物联网硬件架构 硬件简介 硬件接线原理 硬件接线实物 实验流程 实验注意事项 程序截图 项目数据表 总结 本文首发于DF创客社区:项目实践案例征集 跨学科案例 行空板K10 研究蒸发量 DF创客社区https://mc.d…

计算机网络之运输层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 04 传输层 在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。 王道考研 计算机网络笔记 第五章:传输层_王道计算机网络传输层_Baret-H的博客-CSDN博…

[Spring] Nacos详解

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

嵌入式知识点总结 C/C++ 专题提升(七)-位操作

针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。 目录 1.位操作基础 2.如何求解整型数的二进制表示中1的个数 ? 3.如何求解二进制中0的个数 4.交换两个变量的值,不使用第三个变量。即a3,b5,交换之后a5,b3: 5.给定一个…

易语言模拟真人鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…