当前位置: 首页 > news >正文

数据可视化每周挑战——全国星巴克门店数据可视化

这是我国星巴克门店的位置,营业时间等数据。

1.导入需要用的库,同时设置绘图时用到的字体,同时防止绘图时负号无法正常显示的情况。

import pandas as pd
from pyecharts.charts import Bar,Map,Line,Pie,Geo
from pyecharts import options as opts
import matplotlib.pyplot as pltplt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

 2.读取数据,并且查看数据是否有缺失值等

data = pd.read_excel('D:/每周挑战/星巴克门店.xlsx')
data.info()

从上面可以看出该数据集中没有缺失值,且营业时间属于标成属性,但是实际中时间应该是时间类型,因此我们将其转换为时间,以便于后续的可视化 

3.首先先对营业时间进行处理,然后对星巴克在我国分布省份进行统计汇总。

data['开始营业时间_1'] = pd.to_datetime(data['开始营业时间'])
data['停止营业时间_1'] = pd.to_datetime(data['停止营业时间'])
data['营业时长'] = data['停止营业时间_1'] - data['开始营业时间_1']
data['营业时长'] = pd.to_timedelta(data['营业时长'])
data['营业时长'] = data['营业时长'].dt.total_seconds()/3600
data = data.drop(['开始营业时间_1','停止营业时间_1'],axis=1)
data['营业时长区间'] = pd.cut(data['营业时长'],bins=[0,8,10,12,14,16,24],labels=["0-8h","8-10h","10-12h","12-14h","14-16h","16-24h"])
range_colors = ['#228be6','#1864ab','#8BC34A','#FFCA28','#FF5722','#D32F2F','#1DFFF5','#FF850E']
province_data = data['省份'].value_counts().reset_index()
x = province_data['index'].tolist()
y = province_data['省份'].tolist()
bar = (Bar(init_opts = opts.InitOpts(width='1000px',height='800px'))                        # 创建一个柱状图,设置初始化选项(宽和高).add_xaxis(x[::-1])                                                                  # 设置X轴数据,将其反转      .add_yaxis('',y[::-1],label_opts = opts.LabelOpts(position='right'))                 # 设置y轴数据,将其反转,同时设置其为值为右侧.reversal_axis()                                                                     # 反转x轴和y轴.set_global_opts(title_opts = opts.TitleOpts(title='全国各省星巴克门店数量',                                              # 标题内容pos_top='2%',                                                                # 标题距离图表顶部的相对位置pos_left='center',                                                           # 指定了标题距离图表左侧的相对位置,这里是图表中心title_textstyle_opts = opts.TextStyleOpts(color='#FFC0CB',font_size='20',font_weight='bold'                        # 指定标题文本的颜色,字体大小,和粗细)),visualmap_opts = opts.VisualMapOpts(is_show=False,                                                               # 视觉映射组件是否显示max_=600,                                                                    # 视觉映射组件的最大值dimension=0,                                                                 # 视觉映射组件的维度。为 0 时根据数据的值来映射颜色。orient='horizontal',pos_top='20%',pos_left='70%',range_color=range_colors                                                     # 设置视觉映射组件的颜色范围),)
)
bar.render_notebook()

上海市星巴克门店最多,超过了1000家。 广东省、浙江省、江苏省、北京市以超过500家的门店分列第二至五位。

4.对各省星巴克的占比进行可视化。

pie = (Pie().add(series_name='',data_pair=[list(z) for z in zip(x,y)],radius=['30%','50%'],label_opts=opts.LabelOpts(is_show=False,position='center')).set_global_opts(title_opts=opts.TitleOpts(title='各省星巴克门店数量占比',pos_top='2%',pos_left='center'),visualmap_opts=opts.VisualMapOpts(is_show=False,range_color=range_colors,max_=600,dimension=0),legend_opts=opts.LegendOpts(is_show=True, pos_right="2%", pos_top="8%",orient="vertical")     #horizontal水平方向).set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{d}%'))
)
pie.render_notebook()

 

 5.对各省星巴克的数量进行可视化

map = (Map().add('',[list(z) for z in zip(x,y)],maptype='china',is_map_symbol_show=False).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title='各省星巴克门店分布数量',pos_top='2%',pos_left='center'),visualmap_opts=opts.VisualMapOpts(is_show=True,max_=600,dimension=0,pos_top='80%',pos_left='20%',range_color=range_colors),legend_opts=opts.LegendOpts(is_show=True))
)
map.render_notebook()

 

 

6.各省数量的热力图可视化。

data_pair = []# 新建一个BMap对象
geo = Geo(init_opts=opts.InitOpts(theme='dark'))for _, row in data.iterrows():geo.add_coordinate(row['城市'], row['经度'], row['纬度'])  data_pair.append([row['城市'], 1])geo = (geo.add_schema(maptype='china').add('',data_pair,type_='heatmap',symbol_size=5).set_series_opts(label_opts=opts.LabelOpts(is_show=True)).set_global_opts(title_opts=opts.TitleOpts(title='各城市星巴克门店数量分布热力图',pos_top='2%',pos_left='center'),visualmap_opts = opts.VisualMapOpts(pos_top='60%',pos_left='20%'),legend_opts = opts.LegendOpts(is_show=True))
)
geo.render_notebook()

7.对营业开始时间进行分析

data['开始营业时间'] = pd.to_datetime(data['开始营业时间'])
time_data = data['开始营业时间'].value_counts().reset_index().sort_values(by='index', ascending=True)
x = time_data['index'].tolist()
y = time_data['开始营业时间'].tolist()bar = (Bar().add_xaxis(x[::-1]).add_yaxis('',y[::-1]).set_global_opts(title_opts=opts.TitleOpts(title='开始营业时间分布',pos_top='2%',pos_left="center"),visualmap_opts=opts.VisualMapOpts(is_show=False),legend_opts=opts.LegendOpts(is_show=True, pos_right="8%", pos_top="8%",orient="vertical"),)
)
bar.render_notebook()

7.对一天内的营业时间进行可视化分析。

df_duration = data['营业时长区间'].value_counts()
df_duration_g = data.groupby('营业时长区间')['店铺名称'].count()
x_data = df_duration_g.index.tolist()
y_data = df_duration_g.values.tolist()
bar = (Bar(init_opts=opts.InitOpts(width='1000px', height='600px')).add_xaxis(x_data).add_yaxis("", y_data).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_=2000,orient="horizontal",pos_top='70%',pos_left='20%',range_color=range_colors),legend_opts=opts.LegendOpts(is_show=True, pos_right="8%", pos_top="8%",orient="vertical"),)
)
bar.render_notebook()

相关文章:

数据可视化每周挑战——全国星巴克门店数据可视化

这是我国星巴克门店的位置,营业时间等数据。 1.导入需要用的库,同时设置绘图时用到的字体,同时防止绘图时负号无法正常显示的情况。 import pandas as pd from pyecharts.charts import Bar,Map,Line,Pie,Geo from pyecharts import option…...

【前端】js通过元素属性获取元素

【前端】js通过元素属性获取元素 <div for"hc_opportunity_config">aaaaa</div>//通过属性获取元素document.querySelector([for"hc_opportunity_config"]) document.querySelector([属性"属性值"])...

申请轻纺行业工程设计资乙级对企业有什么要求

注册资金&#xff1a;企业的注册资金应至少达到三百万&#xff0c;这是衡量企业经济实力和承担风险能力的重要指标。独立法人资格&#xff1a;企业应具备独立的法人资格&#xff0c;能够独立承担民事责任&#xff0c;并具备相应的经营自主权。专业技术人员配备&#xff1a;企业…...

基于单片机电梯控制系统设计与实现

摘 要: 介绍了电梯控制系统架构 &#xff0c; 指出了该系统的硬件设计和控制系统的软件设计以及系统调试 &#xff0c; 使系统可根据按键 要求完成载客任务&#xff0c;为电梯控制系统的优化提供了参考 。 关键词 : 电梯控制 ; 单片机 ; 系统设计 0 引言 在高层建筑中发挥…...

嵌入式单片机笔试题

DC-DC 和 LDO两者有何区别&#xff1f; DC-DC转换器&#xff08;直流-直流转换器&#xff09;和LDO&#xff08;低压差线性稳压器&#xff09;都是用于电源管理的设备&#xff0c;但它们在原理和特性上有一些显著的区别&#xff1a; 原理&#xff1a; DC-DC转换器通过改变输…...

生活小区火灾预警新篇章:泵吸式可燃气体报警器的检定与运用

在现代化的生活小区中&#xff0c;燃气设备广泛应用于居民的日常生活之中&#xff0c;但同时也带来了潜在的火灾风险。 可燃气体报警器作为一种安全监测设备&#xff0c;能够及时检测到燃气泄漏等安全隐患&#xff0c;并在达到预设的阈值时发出警报&#xff0c;提醒居民采取相…...

263 基于matlab得到的频分复用(FDM,Frequency Division Multiplexing)实现

基于matlab得到的频分复用(FDM&#xff0c;Frequency Division Multiplexing)实现&#xff0c;仿真时录入三路声音信号进行处理&#xff0c;将用于传输信道的总带宽划分成三个子频带&#xff0c;经过复用以后再将录入的声音信号恢复出来。程序已调通&#xff0c;可直接运行。 2…...

使用v-model完成数据的双向绑定

创作灵感 面试问道了&#xff0c;没答出来&#xff0c;呜呜呜~ v-model实现双向绑定的原理 首先我们要知道&#xff0c;v-model实现的双向绑定其实只是props与emit的简化版本。其中&#xff0c;props负责父组件向子组件传递值&#xff0c;emit负责子组件向父组件传递值。 在…...

如何使用Android NDK将头像变成“遗像”

看完本文的标题&#xff0c;可能有人要打我。你说黑白的老照片不好吗&#xff1f;非要说什么遗像&#xff0c;我现在就把你变成遗像&#xff01;好了&#xff0c;言归正传。我想大部分人都用过美颜相机或者剪映等软件吧&#xff0c;它们的滤镜功能是如何实现的&#xff0c;有人…...

python判断字符串是否为回文串的详细解析与实现

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;回文串的定义与背景 二、判断回文串的基本思路 示例解析 三、代码实…...

148.【Windows DOS命令脚本文件】

Window待处理脚本 (一)、批处理编程初步体验1.什么是批处理程序&#xff1f;(1).批处理程序的定义(2).如何编辑批处理程序 2.批处理程序可以做什么&#xff1f;(1).匹配规则删除文件(2).新建文件&#xff0c;日志等(3).创建计算机病毒等 3.一个基本的批处理文件(1).带盘符的输出…...

推荐网站(13)plantumlb自动帮我们创建 UML 图表

今天推荐一个网站plantumlb&#xff0c;它可以自动帮我们创建 UML 图表。 plantumlb网站中的PlantUML是一个开源工具&#xff0c;它允许用户使用简单的文本描述来创建UML&#xff08;统一建模语言&#xff09;图表。PlantUML支持多种类型的UML图表&#xff0c;包括用例图、类图…...

【vue-1】vue入门—创建一个vue应用

最近在闲暇时间想学习一下前端框架vue&#xff0c;主要参考以下两个学习资料。 官网 快速上手 | Vue.js b站学习视频 2.创建一个Vue3应用_哔哩哔哩_bilibili 一、创建一个vue3应用 <!DOCTYPE html> <html lang"en"> <head><meta charset&q…...

【微信小程序开发】小程序前后端交互--发送网络请求实战解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

【NOIP2013普及组复赛】题2:表达式求值

题2&#xff1a;表达式求值 【题目描述】 给定一个只包含加法和乘法的算术表达式&#xff0c;请你编程计算表达式的值。 【输入文件】 输入仅有一行&#xff0c;为需要你计算的表达式&#xff0c;表达式中只包含数字、加法运算符 “ ” “” “”和乘法运算符 “ ∗ ” “…...

datasheet芯片数据手册—新手入门学习(二)【8-18】

参考芯片手册已经上传&#xff0c;可自行下载 因为芯片参考手册内容比较多&#xff0c;故再一次介绍本文内容主要讲解章节。 目录 8、内容介绍 命令真值表 9、Command Definitions 10、READ Operations &#xff08;1&#xff09;页面读取操作 &#xff08;2&#xff…...

UE5 双手握剑的实现(逆向运动学IK)

UE5 双手握剑的实现 IK 前言 什么是IK&#xff1f; UE官方给我们提供了很多对于IK处理的节点&#xff0c;比如ABRIK、Two Bone IK、Full Body IK 、CCD IK等&#xff0c;但是看到这&#xff0c;很多人就好奇了&#xff0c;什么是IK&#xff1f; 首先我们来看看虚幻小白人的骨…...

Java中的接口(Interface)及其与抽象类的区别

一、技术难点 在Java中&#xff0c;接口是一种完全抽象的类&#xff0c;主要用于定义一组方法的规范&#xff0c;但不提供具体的实现。接口的技术难点主要体现在以下几个方面&#xff1a; 方法的定义与实现分离&#xff1a;接口只定义了方法的签名&#xff0c;没有方法体&…...

代码随想录算法训练营第十四天(py)| 二叉树 | 递归遍历、迭代遍历、统一迭代

1 理论基础 1.1 二叉树的种类 满二叉树 只有度为0和2的节点&#xff0c;且度为0的节点在同一层。 深度为k&#xff0c;有2^k-1个节点 完全二叉树 除了最底层可能没填满&#xff0c;其余每层节点数都达到最大。并且最底层节点全部集中在左边。 二叉搜索树 是一个有数值…...

Golang并发编程-协程goroutine初体验

文章目录 前言一、Goroutine适合的使用场景二、Goroutine的使用1. 协程初体验 三、WaitGroupWaitGroup 案例一WaitGroup 案例二 总结 前言 学习Golang一段时间了&#xff0c;一直没有使用过goroutine来提高程序执行效率&#xff0c;在一些特殊场景下&#xff0c;还是有必须开启…...

Kafka 单机部署启动教程(适用于 Spark + Hadoop 环境)

&#x1f9ed; Kafka 单机部署启动教程&#xff08;适用于 Spark Hadoop 环境&#xff09; &#x1f4e6; 一、Kafka 版本选择 推荐使用 Kafka 2.13-2.8.1&#xff08;Scala 2.13&#xff0c;稳定适配 Spark 3.1.2 和 Hadoop 3.1.1&#xff09; 下载地址&#xff08;Apache 官…...

maven微服务${revision}依赖打包无法识别

1、场景描述 我现在又一个微服务项目&#xff0c;父pom的版本&#xff0c;使用<properties>定义好&#xff0c;如下所示&#xff1a; <name>ypsx-finance-center</name> <artifactId>ypsx-finance</artifactId> <packaging>pom</pack…...

C# 类和继承(扩展方法)

扩展方法 在迄今为止的内容中&#xff0c;你看到的每个方法都和声明它的类关联。扩展方法特性扩展了这个边 界&#xff0c;允许编写的方法和声明它的类之外的类关联。 想知道如何使用这个特性&#xff0c;请看下面的代码。它包含类MyData&#xff0c;该类存储3个double类型 的…...

动静态库的使用(Linux)

1.库 通俗来说&#xff0c;库就是现有的&#xff0c;可复用的代码&#xff0c;例如&#xff1a;在C/C语言编译时&#xff0c;就需要依赖相关的C/C标准库。本质上来说库是一种可执行代码的二进制形式&#xff0c;可以被操作系统载入内存执行。通常我们可以在windows下看到一些后…...

图像处理、图像分析和图像理解的定义、联系与区别

1. 定义 图像处理&#xff08;Image Processing&#xff09; 图像处理是低层操作&#xff0c;主要针对像素级的图像数据进行加工&#xff0c;目的是改善图像质量或为后续分析做准备。 典型任务&#xff1a;去噪、增强&#xff08;如对比度调整&#xff09;、锐化、边缘检测、图…...

全面理解 Linux 内核性能问题:分类、实战与调优策略

在 Linux 系统&#xff08;特别是嵌入式或服务器环境&#xff09;中&#xff0c;性能问题往往错综复杂、表象多变。只有对常见性能问题进行系统归类、理解其症状与根源&#xff0c;才能有效定位和解决。本文将围绕八大类核心性能问题&#xff0c;结合实战示例&#xff0c;逐类分…...

mysql 页的理解和实际分析

目录 页&#xff08;Page&#xff09;是 Innodb 存储引擎用于管理数据的最小磁盘单位B树的一般高度记录在页中的存储 innodb ibd文件innodb 页类型分析ibd文件查看数据表的行格式查看ibd文件 分析 ibd的第4个页&#xff1a;B-tree Node类型先分析File Header(38字节-描述页信息…...

Pandas 技术解析:从数据结构到应用场景的深度探索

序 我最早用Python做大数据项目时&#xff0c;接触最早的就是Pandas了。觉得对于IT技术人员而言&#xff0c;它是可以属于多场景的存在&#xff0c;因为它的本身就是数据驱动的技术生态中&#xff0c;对于软件工程师而言&#xff0c;它是快速构建数据处理管道的基石&#xff1…...

YOLOv8 升级之路:主干网络嵌入 SCINet,优化黑暗环境目标检测

文章目录 引言1. 低照度图像检测的挑战1.1 低照度环境对目标检测的影响1.2 传统解决方案的局限性 2. SCINet网络原理2.1 SCINet核心思想2.2 网络架构 3. YOLOv8与SCINet的集成方案3.1 总体架构设计3.2 关键集成代码3.3 训练策略 4. 实验结果与分析4.1 实验设置4.2 性能对比4.3 …...

【SSM】SpringBoot笔记2:整合Junit、MyBatis

前言&#xff1a; 文章是系列学习笔记第9篇。基于黑马程序员课程完成&#xff0c;是笔者的学习笔记与心得总结&#xff0c;供自己和他人参考。笔记大部分是对黑马视频的归纳&#xff0c;少部分自己的理解&#xff0c;微量ai解释的内容&#xff08;ai部分会标出&#xff09;。 …...