基于python的超市历年数据可视化分析
人生苦短 我用python
Python其他实用资料:点击此处跳转文末名片获取
数据可视化分析目录
- 人生苦短 我用python
- 一、数据描述
- 1、数据概览
- 二、数据预处理
- 0、导入包和数据
- 1、列名重命名
- 2、提取数据中时间,方便后续分析绘图
- 三、数据可视化
- 1、美国各个地区销售额的分布(地图)
- 2、各产品类别销售额对比(柱状图)
- 3、不同客户类别销售额对比(饼图)
- 4、每月各产品销售额top10榜单
- 5、销售额、净利润在时间维度的变化(折线图)
- 6、销售额
一、数据描述
数据集中9994
条数据,横跨1237
天,
销售额为2,297,200.8603
美元,
利润为286,397.0217
美元,
他们的库存中有1862
件独特的物品,
它们被分为3类,
所有这些物品都在美国4个地区的49个州销售,
来着793位客户的5009个订单。
数据集: Superstore.csv 来源:kaggle
一共21列数据,每一列属性描述如下:
Row ID => 每一行唯一的ID.
Order ID => 每个客户的唯一订单ID.
Order Date => 产品的订单日期.
Ship Date => 产品发货日期.
Ship Mode=> 客户指定的发货模式.
Customer ID => 标识每个客户的唯一ID.
Customer Name => 客户的名称.
Segment => The segment where the Customer belongs.
Country => 客户居住的国家.
City => 客户居住的城市.
State => 客户所在的州.
Postal Code => 每个客户的邮政编码.
Region => “客户”所属地区.
Product ID => 产品的唯一ID.
Category => 所订购产品的类别.
Sub-Category => 所订购产品的子类别.
Product Name => 产品名称
Sales =>产品的销售.
Quantity => 产品数量.
Discount => 提供折扣.
Profit => 已发生的利润/亏损.
1、数据概览
9994行,21列数据
print(df.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9994 entries, 0 to 9993
Data columns (total 21 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 Row ID 9994 non-null int64 1 Order ID 9994 non-null object 2 Order Date 9994 non-null object 3 Ship Date 9994 non-null object 4 Ship Mode 9994 non-null object 5 Customer ID 9994 non-null object 6 Customer Name 9994 non-null object 7 Segment 9994 non-null object 8 Country 9994 non-null object 9 City 9994 non-null object 10 State 9994 non-null object 11 Postal Code 9994 non-null int64 12 Region 9994 non-null object 13 Product ID 9994 non-null object 14 Category 9994 non-null object 15 Sub-Category 9994 non-null object 16 Product Name 9994 non-null object 17 Sales 9994 non-null float6418 Quantity 9994 non-null int64 19 Discount 9994 non-null float6420 Profit 9994 non-null float64
dtypes: float64(3), int64(3), object(15)
memory usage: 1.6+ MB
None
二、数据预处理
0、导入包和数据
import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.commons.utils import JsCodedata = pd.read_csv(r'./data/Superstore.csv')
1、列名重命名
重命名后的列名:
data.columns = ['行ID', '订单ID', '订单日期', '发货日期', '发货方式', '客户ID', '客户名称', '客户类型', '国家', '城市', '州', '邮政编码', '所属区域', '产品ID','产品类别', '产品子类别', '产品名称', '销售额', '产品数量', '提供折扣', '利润/亏损']
2、提取数据中时间,方便后续分析绘图
data['年份'] = data['订单日期'].apply(lambda x: x[-4:])
data['日期'] = pd.to_datetime(data['订单日期'], format='%m/%d/%Y')
data['月份'] = data['日期'].dt.month
data['年-月'] = data['年份'].astype('str') + '-' + data['月份'].astype('str')
三、数据可视化
1、美国各个地区销售额的分布(地图)
包含:Order_Date Sales Quantity Profit year month
usa_sale = data[['州', '销售额']].groupby('州').sum().round(2).reset_index()
print(usa_sale.head())def echarts_map(province, data, title='主标题', subtitle='副标题', label='图例'):"""province:传入省份Listdata:传入各省对应的数据Listtitle:主标题subtitle:副标题label:图例"""map_ = Map(init_opts=opts.InitOpts(bg_color='#080b30'theme='dark'width='980px'height='700px'))map_.add(label, [list(i) for i in zip(province, data)],maptype='美国')map_.set_global_opts(title_opts=opts.TitleOpts(title=titlesubtitle=subtitlepos_left='center'title_textstyle_opts=dict(color='#fff') legend_opts=opts.LegendOpts(is_show=True pos_left='right'pos_top='3%'orient='horizontal' ),visualmap_opts=opts.VisualMapOpts(max_=int(max(data)), is_piecewise=False))return map_.render(title + '-' + subtitle + '.html')echarts_map(usa_sale['州'].tolist(), usa_sale['销售额'].tolist(), title='美国各地区销售额分布', subtitle='销售额分布地图', label='销售额')
2、各产品类别销售额对比(柱状图)
pro_category = data[['产品类别', '销售额', '利润/亏损']].groupby('产品类别').sum().round(2).reset_index()
pro_category.head()def echarts_bar(x, y, y2, title='主标题', subtitle='副标题', label='图例', label2='图例2'):"""x: 函数传入x轴标签数据y:函数传入y轴数据title:主标题subtitle:副标题label:图例"""bar = Bar(init_opts=opts.InitOpts(bg_color='#080b30'theme='dark'width='900px'height='600px' ))bar.add_xaxis(x)bar.add_yaxis(label, y,label_opts=opts.LabelOpts(is_show=True), category_gap="70%" , yaxis_index=0)bar.add_yaxis(label2, y2,label_opts=opts.LabelOpts(is_show=True) , category_gap="70%" , yaxis_index=1)bar.set_series_opts( label_opts=opts.LabelOpts(is_show=True,position='top'font_size=15,color='white',font_weight='bolder'font_style='oblique'itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: 'rgba(0, 244, 255, 1)'},{offset: 1,color: 'rgba(0, 77, 167, 1)'}], false)""")'shadowBlur': 15"barBorderRadius": [100, 100, 100, 100]"shadowColor": "#0EEEF9"'shadowOffsetY': 2,'shadowOffsetX': 2}})bar.set_global_opts(title_opts=opts.TitleOpts(title=titlesubtitle=subtitlepos_left='center'title_textstyle_opts=dict(color='#fff') ),legend_opts=opts.LegendOpts(is_show=Truepos_left='right'pos_top='3%'orient='horizontal' ),tooltip_opts=opts.TooltipOpts(is_show=Truetrigger='axis'is_show_content=True,trigger_on='mousemove|click'axis_pointer_type='cross'),yaxis_opts=opts.AxisOpts(is_show=True,splitline_opts=opts.SplitLineOpts(is_show=False), axistick_opts=opts.AxisTickOpts(is_show=False), axislabel_opts=opts.LabelOpts( font_size=13, font_weight='bolder' ),)xaxis_opts=opts.AxisOpts(boundary_gap=Trueaxistick_opts=opts.AxisTickOpts(is_show=True)splitline_opts=opts.SplitLineOpts(is_show=False)axisline_opts=opts.AxisLineOpts(is_show=True)axislabel_opts=opts.LabelOpts( font_size=13font_weight='bolder' ),),)bar.extend_axis(yaxis=opts.AxisOpts())return bar.render(title + '-' + subtitle + '.html')echarts_bar(pro_category['产品类别'].tolist(), pro_category['销售额'].tolist(),pro_category['利润/亏损'].tolist(), title='不同产品类别销售额对比', subtitle='销售额对比柱状图',label='销售额', label2='利润')
3、不同客户类别销售额对比(饼图)
customer_sale = data[['客户类型', '销售额', '利润/亏损']].groupby('客户类型').sum().round(2).reset_index()def echarts_pie(x, y, title='主标题', subtitle='副标题', label='图例'):pie = Pie(init_opts=opts.InitOpts(bg_color='#080b30'theme='dark'width='900px'height='600px'))pie.add('', [list(z) for z in zip(x, y)])pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}",font_size='15',font_style='oblique',font_weight='bolder'))pie.set_global_opts(title_opts=opts.TitleOpts(title=titlesubtitle=subtitlepos_left='center'title_textstyle_opts=dict(color='white')subtitle_textstyle_opts=dict(color='white')),legend_opts=opts.LegendOpts(is_show=True,pos_left='right'pos_top='3%', orient='vertical', textstyle_opts=opts.TextStyleOpts(color='white', font_size='13', font_weight='bolder', ),))return pie.render(title + '-' + subtitle + '.html')echarts_pie(customer_sale['客户类型'], customer_sale['销售额'], title='不同客户类别销售额对比', subtitle=' ', label='销售额')
echarts_pie(customer_sale['客户类型'], customer_sale['利润/亏损'], title='不同客户类别利润对比', subtitle=' ', label='利润/亏损')
4、每月各产品销售额top10榜单
month_lis = data.sort_values(by='日期')['年-月'].unique().tolist()
month_sale = []
for i in month_lis:month_data = data[data['年-月'] == i][['产品名称', '销售额']].groupby(['产品名称']). \sum().round(2).reset_index().sort_values(by='销售额', ascending=False)[:10]month_data = month_data.sort_values(by='销售额', ascending=True)month_sale.append(month_data)def echart_line(x, y, title='主标题', subtitle='副标题', label='图例'):tl = Timeline(init_opts=opts.InitOpts(bg_color='#080b30'theme='dark'width='1200px'height='700px' ))tl.add_schema(is_auto_play=Trueplay_interval=1500is_loop_play=True)for i, data1 in zip(x, y):day = ibar = Bar(init_opts=opts.InitOpts(bg_color='#080b30'theme='dark'width='1200px'height='700px'))bar.add_xaxis(data1.iloc[:, 0].tolist())bar.add_yaxis(label,data1.iloc[:, 1].round(2).tolist(),category_gap="40%")bar.reversal_axis()bar.set_series_opts( label_opts=opts.LabelOpts(is_show=True,position="right",font_style='oblique',font_weight='bolder',font_size='13',),itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(1, 0, 0, 0, [{offset: 0,color: 'rgba(0, 244, 255, 1)'},{offset: 1,color: 'rgba(0, 77, 167, 1)'}], false)""")'shadowBlur': 8"barBorderRadius": [100, 100, 100, 100]"shadowColor": "#0EEEF9"'shadowOffsetY': 6,'shadowOffsetX': 6, }})bar.set_global_opts(title_opts=opts.TitleOpts(title=title, subtitle=subtitle, pos_left='center', title_textstyle_opts=dict(color='white'), subtitle_textstyle_opts=dict(color='#white')),legend_opts=opts.LegendOpts(is_show=True, pos_left='right', pos_top='3%', orient='vertical', textstyle_opts=opts.TextStyleOpts(color='white', font_size='13', font_weight='bolder', font_style='oblique',),),tooltip_opts=opts.TooltipOpts(is_show=True, trigger='axis', is_show_content=True,trigger_on='mousemove|click', axis_pointer_type='cross', ),yaxis_opts=opts.AxisOpts(is_show=True,splitline_opts=opts.SplitLineOpts(is_show=False), axistick_opts=opts.AxisTickOpts(is_show=False), axislabel_opts=opts.LabelOpts( font_size=13, font_weight='bolder' ),), xaxis_opts=opts.AxisOpts(boundary_gap=True, axistick_opts=opts.AxisTickOpts(is_show=True), splitline_opts=opts.SplitLineOpts(is_show=False), axisline_opts=opts.AxisLineOpts(is_show=True), axislabel_opts=opts.LabelOpts( font_size=13, font_weight='bolder', ),),)tl.add(bar, day)return tl.render(title + '-' + subtitle + '.html')echart_line(month_lis, month_sale, title='每月各产品销售额top10榜单', subtitle=' ', label='销售额')
5、销售额、净利润在时间维度的变化(折线图)
sale_data = data.sort_values(by='日期')[['年份', '日期', '销售额', '利润/亏损']]. \groupby(['年份', '日期']).sum().round(2).reset_index()
year_lis = sale_data['年份'].unique().tolist()
sale_data1 = sale_data[sale_data['年份'] == '2014']
sale_data2 = sale_data[sale_data['年份'] == '2015']
sale_data3 = sale_data[sale_data['年份'] == '2016']
sale_data4 = sale_data[sale_data['年份'] == '2017']
sale_data_lis = [sale_data1, sale_data2, sale_data3, sale_data4]
print(sale_data4.head())def echarts_two_line(x, y, title='主标题', subtitle='副标题', label='图例', label2='图例2'):"""x: 函数传入x轴table数据y:函数传入y轴dataframe集合title:主标题subtitle:副标题label:图例"""tab = Tab()for table, data in zip(x, y):line1 = Line(init_opts=opts.InitOpts(bg_color='#080b30', # 设置背景颜色theme='dark', # 设置主题width='1200px', # 设置图的宽度height='700px' # 设置图的高度))line1.add_xaxis(data['日期'].tolist())line1.extend_axis(yaxis=opts.AxisOpts()) # 添加一条Y轴line1.add_yaxis(label,data['销售额'].tolist(),yaxis_index=0,is_symbol_show=False, # 是否显示数据标签点is_smooth=True, # 设置曲线平滑label_opts=opts.LabelOpts(is_show=True, # 是否显示数据),# 线条粗细阴影设置linestyle_opts={"normal": {"color": "#E47085", # 线条颜色"shadowColor": '#E4708560', # 阴影颜色和不透明度"shadowBlur": 8, # 阴影虚化大小"shadowOffsetY": 20, # 阴影y偏移量"shadowOffsetX": 20, # 阴影x偏移量"width": 7 # 线条粗细},},)line1.set_global_opts(# 标题设置title_opts=opts.TitleOpts(title=title, # 主标题subtitle=subtitle, # 副标题pos_left='center', # 标题展示位置title_textstyle_opts=dict(color='white'), # 设置标题字体颜色subtitle_textstyle_opts=dict(color='white')),# 图例设置legend_opts=opts.LegendOpts(is_show=True, # 是否显示图例pos_left='right', # 图例显示位置pos_top='3%', # 图例距离顶部的距离orient='horizontal', # 图例水平布局textstyle_opts=opts.TextStyleOpts(color='white', # 颜色font_size='13', # 字体大小font_weight='bolder', # 加粗),),tooltip_opts=opts.TooltipOpts(is_show=True, # 是否使用提示框trigger='axis', # 触发类型is_show_content=True,trigger_on='mousemove|click', # 触发条件,点击或者悬停均可出发axis_pointer_type='cross', # 指示器类型,鼠标移动到图表区可以查看效果# formatter = '{a}<br>{b}:{c}人' # 文本内容),datazoom_opts=opts.DataZoomOpts(range_start=0, # 开始范围range_end=25, # 结束范围# orient='vertical', # 设置为垂直布局type_='slider', # slider形式is_zoom_lock=False, # 锁定区域大小# pos_left='1%' # 设置位置),yaxis_opts=opts.AxisOpts(is_show=True,splitline_opts=opts.SplitLineOpts(is_show=False), # 分割线axistick_opts=opts.AxisTickOpts(is_show=False), # 刻度不显示axislabel_opts=opts.LabelOpts( # 坐标轴标签配置font_size=13, # 字体大小font_weight='bolder' # 字重),), # 关闭Y轴显示xaxis_opts=opts.AxisOpts(boundary_gap=False, # 两边不显示间隔axistick_opts=opts.AxisTickOpts(is_show=True), # 刻度不显示splitline_opts=opts.SplitLineOpts(is_show=False), # 分割线不显示axisline_opts=opts.AxisLineOpts(is_show=True), # 轴不显示axislabel_opts=opts.LabelOpts( # 坐标轴标签配置font_size=13, # 字体大小font_weight='bolder' # 字重),),)# 新建一个折线图Lineline2 = Line()line2.add_xaxis(data['日期'].tolist())# 将line数据通过yaxis_index指向后添加的Y轴# line2.extend_axis(yaxis=opts.AxisOpts())line2.add_yaxis(label2,data['利润/亏损'].tolist(),yaxis_index=0,is_symbol_show=False, # 是否显示数据标签点is_smooth=True, # 设置曲线平滑label_opts=opts.LabelOpts(is_show=True, # 是否显示数据),# 线条粗细阴影设置linestyle_opts={"normal": {"color": "#44B2BE", # 线条颜色"shadowColor": '#44B2BE60', # 阴影颜色和不透明度"shadowBlur": 8, # 阴影虚化大小"shadowOffsetY": 20, # 阴影y偏移量"shadowOffsetX": 20, # 阴影x偏移量"width": 7 # 线条粗细},},)line1.overlap(line2)tab.add(line1, table)return tab.render(title + '-' + subtitle + '.html')echarts_two_line(year_lis, sale_data_lis, title='销售额、利润在时间维度的变化', subtitle=' ',label='销售额', label2='利润/亏损')
6、销售额
sale_sum = int(data['销售额'].sum())
num_count = int(data['产品数量'].sum())
profit_sum = int(data['利润/亏损'].sum())
print(profit_sum)def big_data(title='主标题', subtitle='副标题'):c = Pie(init_opts=opts.InitOpts(chart_id=1,bg_color='#080b30',theme='dark',width='300px',height='300px',))c.set_global_opts(title_opts=opts.TitleOpts(title=title,subtitle=subtitle,title_textstyle_opts=opts.TextStyleOpts(font_size=36,color='#FFFFFF',),pos_left='center',pos_top='middle'))return c.render(str(title) + '-' + subtitle + '.html')big_data(title=sale_sum, subtitle='销售额')
相关文章:

基于python的超市历年数据可视化分析
人生苦短 我用python Python其他实用资料:点击此处跳转文末名片获取 数据可视化分析目录人生苦短 我用python一、数据描述1、数据概览二、数据预处理0、导入包和数据1、列名重命名2、提取数据中时间,方便后续分析绘图三、数据可视化1、美国各个地区销售额的分布&…...

GPT-4技术报告
摘要 链接:https://cdn.openai.com/papers/gpt-4.pdf 我们汇报了GPT-4的发展,这是一个大规模的多模态模型,可以接受图像和文本输入并产生文本输出。虽然在许多现实场景中,GPT-4的能力不如人类,但它在各种专业和学术基…...
前端性能优化
总结 使用打包工具对代码进行打包压缩;引入css时采用link标签,并放入头部,使其与文档一起加载,减少页面卡顿时间;尽量减少dom结构的重排和重绘;使用css雪碧图,减少网络请求;对不同分…...

尚医通-(三十三)就诊人管理功能实现
目录: (1)前台用户系统-就诊人管理-需求说明 (2)就诊人管理-接口开发-列表接口 (3)就诊人管理-接口开发-其他接口 (4)前台用户系统-就诊人管理-前端整合 ࿰…...

《Spring Boot 趣味实战课》读书笔记(二)
牛刀小试——五分钟入门 Spring Boot 万物皆可 Hello World 创建一个 Web 工程 填写项目信息 选择依赖 从 IDEA 打开下载好的 Spring Boot 工程: 完成核心代码 创建 HelloController 类并编写 hello 方法 创建一个 HelloController 类,或者选择 Fi…...

Spring Cloud -- GateWay
为什么需要网关在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的话会产生很多问题,例…...
【C语言】memcpy , memset等内存操作函数使用方法与注意事项
这个章节,我们探讨C语言内存操作函数。 重点介绍处理内存操作函数使用和注意事项 和内存函数如何模拟实现。 内存函数所需头文件 #include<string.h> 文章目录memcpymemcpy 函数模拟实现memmovememmove 函数模拟实现memcmpmemcmp 函数模拟实现memsetmemset 函…...

尚融宝04-mybatis-plus插件和条件构造器
目录 一、分页插件 1、添加配置类 2、添加分页插件 3、测试分页 二、XML自定义分页 1、UserMapper中定义接口方法 2、定义XML 3、测试 三、乐观锁 1、场景 2、乐观锁方案 3、乐观锁实现流程 4、优化流程 四、wapper介绍 1、Wrapper家族 2、创建测试类 五、Qu…...

面试重难点问题(C++)
持续更新!!!!! 网络部分 1.问,四次挥手的过程,和双方状态变化? 挥手这前,两边都是established状态,客户端发起断开请求,向服务器发送fin请求&…...

androidx.appcompat 升级到1.5.1 趟过的坑
APP 要上google play,Android SDK 版本要升级到32;接了一个第三方SDK,不巧的是这个SDK引用appcompat是1.5.1,顺手把appcompat 包升级到1.5.1,这草率的一升,带来的不止一地鸡毛,还有精神上被残忍…...

[C++]反向迭代器
目录 前言: 1 对反向迭代器的构造思想 2 实现反向迭代器 3 完整代码 前言: 本篇文章主要介绍了STL容器当中的反向迭代器,可能有朋友会说:“反向迭代器有什么好学的?不一样还是迭代器吗,我正向能写出来&…...

解析Python编程中的包结构
假设你想设计一个模块集(也就是一个“包”)来统一处理声音文件和声音数据。通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能需要创建和维护一个不断增长的各种文件格…...

【前端】深入浅出缓存原理
缓存的基本原理 对于前端来说,缓存主要分为浏览器缓存(比如 localStorage、sessionStorage、cookie等等)以及http缓存,也是本文主要讲述的。 当然叫法也不一样,比如客户端缓存大概包括浏览器缓存和http缓存 所谓htt…...

单调栈图文详解(附Java模板)
🍏🍐🍊🍑🍒🍓🫐🥑🍋🍉🥝 啥是"单调栈",它能解决什么样的问题? 文章目录🦩单调栈的概念&a…...

彻底理解Session、Cookie、Token,入门及实战
文章目录Session Cookie的使用Token的使用Session Cookie的使用 1. Session存储数据 HttpSession session request.getSession(); //Servlet底层通过的SESSIONID,获取Session对象。 session.setAttribute("loginTime",new Date()); out.println(&q…...

为什么运营商大数据可以精准获客?
“获客难”,“获客成本高”,一直是困扰企业的大问题,身边的许多朋友在吐槽客户的意向度不高,总是无法成交,员工非常积极主动去跟踪客户了,但始终事倍功半,这就像是老人们常说的一句老话“热脸贴…...

【数据结构】栈的实现
💯💯💯 本篇主要利用数组来实现栈,对于栈的各种操作都作详细介绍,压栈,出栈以及获取栈中元素的操作都是学习栈的必备知识,快来学起来吧!!!©Ⅰ.栈的概念及…...

【链表OJ题(六)】链表分割
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(六)1. 链表…...
C++类中的三大函数(构造,析构,拷贝)
下面一段话与大家共勉:每个人的一生都会遇到很多边界,有些边界可以突破,有些则不能。那些无法突破的边界就是你的极限,而划分边界的标准就是“阈值”。每次突破阈值之后,人生轨迹就会发生剧烈变化,其间需要…...

【2024考研】计算机考研,4轮复习时间安排
文章目录🎨第1轮复习(暑假前&系统课)英语1/2数学1/2专业课408🎨第2轮复习(开学前&真题)英语1/2试卷数学1/2试卷专业课408试卷🎨第3轮复习(报名前&政治)政治试…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...