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

【Python数据分析与可视化】:使用【Matplotlib】实现销售数据的全面分析 ——【Matplotlib】数模学习

目录

安装Matplotlib

1.打开PyCharm:

2.打开终端:

3.安装Matplotlib:

4.确认安装:

导入Matplotlib

创建简单的折线图

代码解析:

创建子图

代码解析:

创建柱状图

代码解析:

创建散点图

代码解析:

创建直方图

代码解析:

多图形组合

代码解析:

保存图形

代码解析:

结论

实战案例:数据分析与可视化

数据集说明

1. 导入库和数据准备

2. 折线图:展示销售趋势

代码解析:

3. 柱状图:展示销售和费用比较

代码解析:

4. 散点图:展示客户数量与销售额关系

代码解析:

5. 直方图:展示销售额分布

代码解析:

6. 组合图:展示多种数据

代码解析:


 

专栏:数学建模学习笔记

pycharm专业版免费激活教程见资源

python相关库的安装:pandas,numpy,matplotlib,statsmodels

总篇:【数学建模】—【新手小白到国奖选手】—【学习路线】

第一卷:【数学建模】—【Python库】—【Numpy】—【学习】

第二卷:【数学建模】——【python库】——【Pandas学习】

本章属于第三卷Matplotlib的学习

安装Matplotlib

在开始使用Matplotlib之前,必须先在你的Python环境中安装它。PyCharm提供了一种方便的方法来安装第三方库。下面是如何在PyCharm中安装Matplotlib的详细步骤:

1.打开PyCharm

  • 打开PyCharm并创建或打开一个现有的项目。

2.打开终端

  • 点击右下角的Terminal标签以打开终端窗口。

3.安装Matplotlib

在终端中输入以下命令并按Enter键:

pip install matplotlib

4.确认安装

import matplotlib.pyplot as plt

你可以通过再次在终端中运行以下命令来确认安装是否成功:

pip show matplotlib

导入Matplotlib

安装成功后,你需要在你的Python脚本中导入Matplotlib库。通常我们会使用以下导入语句:

  • matplotlib.pyplot 是Matplotlib库中的一个子模块,它提供了类似于MATLAB的绘图接口。
  • plt 是一个常见的缩写,用于简化代码书写。

创建简单的折线图

折线图是一种显示数据变化趋势的基本图表类型。以下是一个创建简单折线图的详细步骤和代码解析:

import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]# 创建图形
plt.plot(x, y)# 添加标题和标签
plt.title('Simple Line Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')# 显示图形
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 数据准备:创建两个列表xy,分别表示横轴和纵轴的数据点。
  3. 创建图形:使用plt.plot(x, y)方法绘制折线图。plot方法的第一个参数是x轴数据,第二个参数是y轴数据。
  4. 添加标题和标签:使用plt.title方法添加图形的标题,使用plt.xlabelplt.ylabel方法为横轴和纵轴添加标签。
  5. 显示图形:使用plt.show()方法显示图形。

创建子图

子图用于在同一个图形窗口中展示多个图表。以下是一个创建两个子图的详细示例:

import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 6, 8, 10]# 创建子图
fig, (ax1, ax2) = plt.subplots(2, 1)# 第一个子图
ax1.plot(x, y1)
ax1.set_title('First Subplot')# 第二个子图
ax2.plot(x, y2)
ax2.set_title('Second Subplot')# 调整布局
plt.tight_layout()# 显示图形
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 数据准备:创建三个列表xy1y2,分别表示两个子图的x轴和y轴数据。
  3. 创建子图:使用plt.subplots方法创建一个包含两个子图的图形。plt.subplots(2, 1)表示创建一个两行一列的子图布局,fig是图形对象,ax1ax2是两个子图对象。
  4. 绘制子图:分别使用ax1.plotax2.plot方法绘制两个子图。
  5. 添加标题:分别使用ax1.set_titleax2.set_title方法为两个子图添加标题。
  6. 调整布局:使用plt.tight_layout()方法自动调整子图布局,使其不重叠。
  7. 显示图形:使用plt.show()方法显示图形。

创建柱状图

柱状图用于展示分类数据的分布。以下是一个创建简单柱状图的详细示例:

import matplotlib.pyplot as plt# 数据
categories = ['A', 'B', 'C', 'D', 'E']
values = [5, 7, 3, 8, 6]# 创建柱状图
plt.bar(categories, values)# 添加标题和标签
plt.title('Simple Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')# 显示图形
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 数据准备:创建两个列表categoriesvalues,分别表示分类和对应的值。
  3. 创建柱状图:使用plt.bar(categories, values)方法创建柱状图。第一个参数是分类,第二个参数是对应的值。
  4. 添加标题和标签:使用plt.title方法添加图形的标题,使用plt.xlabelplt.ylabel方法为横轴和纵轴添加标签。
  5. 显示图形:使用plt.show()方法显示图形。

创建散点图

散点图用于显示两个变量之间的关系。以下是一个创建简单散点图的详细示例:

import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]# 创建散点图
plt.scatter(x, y)# 添加标题和标签
plt.title('Simple Scatter Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')# 显示图形
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 数据准备:创建两个列表xy,分别表示横轴和纵轴的数据点。
  3. 创建散点图:使用plt.scatter(x, y)方法创建散点图。scatter方法的第一个参数是x轴数据,第二个参数是y轴数据。
  4. 添加标题和标签:使用plt.title方法添加图形的标题,使用plt.xlabelplt.ylabel方法为横轴和纵轴添加标签。
  5. 显示图形:使用plt.show()方法显示图形。

创建直方图

直方图用于展示数据的频率分布。以下是一个创建简单直方图的详细示例:

import matplotlib.pyplot as plt# 数据
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]# 创建直方图
plt.hist(data, bins=5, edgecolor='black')# 添加标题和标签
plt.title('Simple Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')# 显示图形
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 数据准备:创建一个列表data,表示数据样本。
  3. 创建直方图:使用plt.hist(data, bins=5, edgecolor='black')方法创建直方图。hist方法的第一个参数是数据样本,bins参数表示直方图的柱子数量,edgecolor参数设置柱子的边框颜色。
  4. 添加标题和标签:使用plt.title方法添加图形的标题,使用plt.xlabelplt.ylabel方法为横轴和纵轴添加标签。
  5. 显示图形:使用plt.show()方法显示图形。

多图形组合

在同一个图形中组合多种不同类型的图形可以让你更全面地展示数据。以下是一个组合折线图和散点图的详细示例:

import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 3, 6, 10, 15]# 创建图形和子图
fig, ax1 = plt.subplots()# 绘制第一个数据集
ax1.plot(x, y1, 'g-')  # 绿色实线
ax1.set_xlabel('X data')
ax1.set_ylabel('Y1 data', color='g')# 创建第二个Y轴
ax2 = ax1.twinx()
ax2.plot(x, y2, 'b--')  # 蓝色虚线
ax2.set_ylabel('Y2 data', color='b')# 添加标题
plt.title('Multiple Data Sets')# 显示图形
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 数据准备:创建三个列表xy1y2,分别表示两个数据集的x轴和y轴数据。
  3. 创建图形和子图:使用plt.subplots()方法创建图形和子图对象。fig是图形对象,ax1是第一个子图对象。
  4. 绘制第一个数据集:使用ax1.plot(x, y1, 'g-')方法绘制第一个数据集。参数'g-'表示绿色实线。
  5. 设置第一个Y轴标签:使用ax1.set_xlabelax1.set_ylabel方法设置第一个子图的x轴和y轴标签,color参数设置标签颜色。
  6. 创建第二个Y轴:使用ax1.twinx()方法创建第二个Y轴。
  7. 绘制第二个数据集:使用ax2.plot(x, y2, 'b--')方法绘制第二个数据集。参数'b--'表示蓝色虚线。
  8. 设置第二个Y轴标签:使用ax2.set_ylabel方法设置第二个子图的y轴标签,color参数设置标签颜色。
  9. 添加标题:使用plt.title方法为整个图形添加标题。
  10. 显示图形:使用plt.show()方法显示图形。

保存图形

创建图形后,你可能需要将其保存到文件中。Matplotlib允许你将图形保存为多种格式,包括PNG、PDF、SVG等。以下是一个保存图形为PNG文件的详细示例:

import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]# 创建图形
plt.plot(x, y)# 添加标题和标签
plt.title('Simple Line Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')# 保存图形
plt.savefig('line_plot.png')# 显示图形
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 数据准备:创建两个列表xy,分别表示横轴和纵轴的数据点。
  3. 创建图形:使用plt.plot(x, y)方法绘制折线图。
  4. 添加标题和标签:使用plt.title方法添加图形的标题,使用plt.xlabelplt.ylabel方法为横轴和纵轴添加标签。
  5. 保存图形:使用plt.savefig('line_plot.png')方法将图形保存为PNG文件。你可以根据需要更改文件名和文件格式,例如line_plot.pdfline_plot.svg
  6. 显示图形:使用plt.show()方法显示图形。

结论

Matplotlib是一个功能强大且灵活的Python库,非常适合用于数学建模和数据可视化。通过以上详细的示例和解析,你可以掌握Matplotlib的基本用法,并在实际项目中应用这些技能进行数据分析和展示。随着你对Matplotlib的深入了解,你可以进一步探索更多高级功能,如自定义图形样式、添加图例、调整图形布局等,使你的图形更具专业性和表现力。

实战案例:数据分析与可视化

为了更好地理解和应用Matplotlib,我们将通过一个实际案例来展示如何使用Matplotlib进行数据分析与可视化。我们将分析一个虚构的数据集,该数据集包含某家公司在不同月份的销售数据,并展示如何绘制折线图、柱状图、散点图、直方图和组合图。

数据集说明

我们假设有一个包含以下信息的数据集:

  • month: 月份(1月到12月)
  • sales: 销售额(单位:千元)
  • expenses: 费用(单位:千元)
  • customers: 客户数量

数据如下:

data = {'month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],'sales': [20, 34, 30, 35, 27, 25, 30, 32, 31, 29, 28, 35],'expenses': [12, 17, 18, 23, 22, 19, 20, 21, 19, 20, 18, 22],'customers': [200, 240, 230, 250, 220, 210, 230, 240, 235, 220, 215, 250]
}

1. 导入库和数据准备

首先,导入必要的库并准备数据:

import matplotlib.pyplot as pltdata = {'month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],'sales': [20, 34, 30, 35, 27, 25, 30, 32, 31, 29, 28, 35],'expenses': [12, 17, 18, 23, 22, 19, 20, 21, 19, 20, 18, 22],'customers': [200, 240, 230, 250, 220, 210, 230, 240, 235, 220, 215, 250]
}

2. 折线图:展示销售趋势

折线图适合用来展示数据随时间的变化趋势。我们来绘制销售额随月份变化的折线图:

plt.plot(data['month'], data['sales'], marker='o', linestyle='-', color='b')
plt.title('Monthly Sales')
plt.xlabel('Month')
plt.ylabel('Sales (in thousands)')
plt.grid(True)
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 准备数据:使用字典形式准备数据。
  3. 绘制折线图:使用plt.plot方法绘制折线图,marker='o'表示数据点使用圆形标记,linestyle='-'表示实线,color='b'表示蓝色。
  4. 添加标题和标签:使用plt.titleplt.xlabelplt.ylabel方法添加图形标题和轴标签。
  5. 显示网格:使用plt.grid(True)方法显示网格线。
  6. 显示图形:使用plt.show()方法显示图形。

3. 柱状图:展示销售和费用比较

柱状图适合用来比较不同类别的数据。我们来绘制销售额和费用的柱状图:

import numpy as np# 设置柱的宽度和位置
bar_width = 0.35
index = np.arange(len(data['month']))# 创建柱状图
plt.bar(index, data['sales'], bar_width, label='Sales', color='b')
plt.bar(index + bar_width, data['expenses'], bar_width, label='Expenses', color='r')# 添加标题和标签
plt.xlabel('Month')
plt.ylabel('Amount (in thousands)')
plt.title('Sales vs Expenses')
plt.xticks(index + bar_width / 2, data['month'])
plt.legend()# 显示图形
plt.show()

代码解析:

  1. 导入库:除了matplotlib.pyplot,还需要导入numpy来处理数组和索引。
  2. 设置柱的宽度和位置:使用bar_width设置每个柱子的宽度,使用np.arange创建一个数组表示每个柱子的x轴位置。
  3. 创建柱状图:使用plt.bar方法绘制柱状图,第一个参数是x轴位置,第二个参数是数据值,bar_width设置柱子的宽度,label设置图例标签,color设置颜色。
  4. 添加标题和标签:使用plt.xlabelplt.ylabelplt.title方法添加图形标题和轴标签。
  5. 设置x轴刻度:使用plt.xticks方法设置x轴刻度的位置和标签。
  6. 添加图例:使用plt.legend()方法显示图例。
  7. 显示图形:使用plt.show()方法显示图形。

 

 

4. 散点图:展示客户数量与销售额关系

散点图适合用来展示两个变量之间的关系。我们来绘制客户数量与销售额的散点图:

plt.scatter(data['customers'], data['sales'], color='g')
plt.title('Customers vs Sales')
plt.xlabel('Number of Customers')
plt.ylabel('Sales (in thousands)')
plt.grid(True)
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 准备数据:使用字典形式准备数据。
  3. 绘制散点图:使用plt.scatter方法绘制散点图,第一个参数是x轴数据,第二个参数是y轴数据,color参数设置数据点颜色。
  4. 添加标题和标签:使用plt.titleplt.xlabelplt.ylabel方法添加图形标题和轴标签。
  5. 显示网格:使用plt.grid(True)方法显示网格线。
  6. 显示图形:使用plt.show()方法显示图形。

 

 

5. 直方图:展示销售额分布

直方图适合用来展示数据的频率分布。我们来绘制销售额的直方图:

plt.hist(data['sales'], bins=5, edgecolor='black')
plt.title('Sales Distribution')
plt.xlabel('Sales (in thousands)')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 准备数据:使用字典形式准备数据。
  3. 绘制直方图:使用plt.hist方法绘制直方图,第一个参数是数据样本,bins参数设置直方图的柱子数量,edgecolor参数设置柱子的边框颜色。
  4. 添加标题和标签:使用plt.titleplt.xlabelplt.ylabel方法添加图形标题和轴标签。
  5. 显示网格:使用plt.grid(True)方法显示网格线。
  6. 显示图形:使用plt.show()方法显示图形。

6. 组合图:展示多种数据

组合图可以同时展示多种类型的数据。我们来创建一个组合图,包含折线图和柱状图:

fig, ax1 = plt.subplots()# 折线图:销售额
ax1.plot(data['month'], data['sales'], 'b-', marker='o', label='Sales')
ax1.set_xlabel('Month')
ax1.set_ylabel('Sales (in thousands)', color='b')
ax1.tick_params('y', colors='b')# 创建第二个Y轴
ax2 = ax1.twinx()
ax2.bar(data['month'], data['expenses'], alpha=0.6, color='r', label='Expenses')
ax2.set_ylabel('Expenses (in thousands)', color='r')
ax2.tick_params('y', colors='r')# 添加标题
plt.title('Monthly Sales and Expenses')# 添加图例
fig.tight_layout()
fig.legend(loc='upper left', bbox_to_anchor=(0.1,0.9))# 显示图形
plt.show()

代码解析:

  1. 导入库:使用import matplotlib.pyplot as plt导入Matplotlib库。
  2. 准备数据:使用字典形式准备数据。
  3. 创建图形和子图:使用plt.subplots()方法创建图形和子图对象。fig是图形对象,ax1是第一个子图对象。
  4. 绘制折线图:使用ax1.plot方法绘制折线图,设置折线图颜色和标记样式。
  5. 设置第一个Y轴标签:使用ax1.set_xlabelax1.set_ylabel方法设置第一个子图的x轴和y轴标签,color参数设置标签颜色。
  6. 创建第二个Y轴:使用ax1.twinx()方法创建第二个Y轴。
  7. 绘制柱状图:使用ax2.bar方法绘制柱状图,设置柱状图颜色和透明度。
  8. 设置第二个Y轴标签:使用ax2.set_ylabel方法设置第二个子图的y轴标签,color参数设置标签颜色。
  9. 添加标题:使用plt.title方法为整个图形添加标题。
  10. 调整布局和添加图例:使用fig.tight_layout()方法自动调整布局,使用fig.legend方法添加图例,设置图例的位置。
  11. 显示图形:使用plt.show()方法显示图形。

 

 

相关文章:

【Python数据分析与可视化】:使用【Matplotlib】实现销售数据的全面分析 ——【Matplotlib】数模学习

目录 安装Matplotlib 1.打开PyCharm: 2.打开终端: 3.安装Matplotlib: 4.确认安装: 导入Matplotlib 创建简单的折线图 代码解析: 创建子图 代码解析: 创建柱状图 代码解析: 创建散点…...

Docker加速器配置指南:提升镜像下载速度的秘诀 加速安装Mysql Redis ES

在安装 Docker 镜像时,由于官方镜像下载速度较慢,我们可以使用阿里云的镜像加速器来提升下载速度。 使用阿里云镜像加速器 首先,找到并配置阿里云的镜像加速器。安装教程如下: 登录阿里云,进入容器镜像服务。直达链…...

32单片机,C语言与汇编联合编译的几种方式

适用编译器:Keil5 方式一: 单独创建一个.s汇编文件,在汇编文件内对函数进行EXPORT声明 r0寄存器是函数传入的第一个参数,r1寄存器是函数传入的第二个参数,以次类推。参数最多不确定是到r4为止,还是到r12…...

基于GWO-CNN-BiLSTM数据回归预测(多输入单输出)-灰狼优化算法优化CNN-BiLSTM

基于GWO-CNN-BiLSTM数据回归预测(多输入单输出)-灰狼优化算法优化CNN-BiLSTM 1.数据均为Excel数据,直接替换数据就可以运行程序。 2.所有程序都经过验证,保证程序可以运行。 3.具有良好的编程习惯,程序均包含简要注释。 获取方式 https:/…...

自动控制:反馈控制

自动控制:反馈控制 反馈控制(Feedback Control)是一种在控制系统中通过测量输出信号,并将其与期望信号进行比较,产生误差信号,再根据误差信号调整输入来达到控制目标的方法。反馈控制是自动控制系统中最常…...

sqlite 数据库 介绍

文章目录 前言一、什么是 SQLite ?二、语法三、SQLite 场景四、磁盘文件 前言 下载 目前已经出到了, Version 3.46.0 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是…...

【机器学习】机器学习重塑广告营销:精准触达,高效转化的未来之路

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 📒1. 引言📙2. 机器学习基础与广告营销的结合🧩机器学习在广告营销中的核心应用领域🌹用…...

常见的Java运行时异常

常见的Java运行时异常 1、ArithmeticException(算术异常)2、ClassCastException (类转换异常)3、IllegalArgumentException (非法参数异常)4、IndexOutOfBoundsException (下标越界异常&#xf…...

CANoe的capl调用Qt制作的dll

闲谈 因为Qt封装了很多个人感觉很好用的库,所以一直想通过CAPL去调用Qt实现一些功能,但是一直没机会(网络上也没看到这方面的教程),这次自己用了两天,踩了很多坑,终于是做成了一个初步的调用方…...

论如何搭建属于自己的服务器?

在现如今的数字化时代中,为了能够搭建网站和运行应用程序,很多人选择搭建属于自己的服务器,下面我们就来了解一下如何搭建服务器吧! 搭建服务器我们首先需要选择适合自身需求的硬件设备,其中包含内存、CPU和存储等配置…...

【C++ OpenCV】机器视觉-二值图像和灰度图像的膨胀、腐蚀、开运算、闭运算

原图 结果图 //包含头文件 #include <opencv2/opencv.hpp>//命名空间 using namespace cv; using namespace std;//全局函数声明部分//我的腐蚀运算 Mat Erode(Mat src, Mat Mask, uint32_t x0, uint32_t y0) {uint32_t x 0, y 0;Mat dst(src.rows, src.cols, CV_8U…...

STMF4学习笔记RTC(天空星)

前言&#xff1a;本篇笔记参考嘉立创文档&#xff0c;连接放在最后 #RTC相关概念定义 Real-Time Clock 缩写 RTC 翻译 实时时钟&#xff0c;是单片机片内外设的一种&#xff0c;作用于提供准确的时间还有日期&#xff0c;这个外设有独立的电源&#xff0c;当单片机停止供电…...

vue数组变化的侦测***

数组变化的侦测 变更方法 vue能够侦听响应式数组的变更方法&#xff0c;并在他们被调用时触发相关更新。这些变更方法包括&#xff1a; push()pop()shift()unshift()splice()sort()reverse() 替换一个数组 变更方法&#xff0c;顾名思义&#xff0c;就是会对调用他们的原数组进…...

k8s-第十节-Ingress

Ingress 介绍 Ingress 为外部访问集群提供了一个 统一 入口&#xff0c;避免了对外暴露集群端口&#xff1b;功能类似 Nginx&#xff0c;可以根据域名、路径把请求转发到不同的 Service。可以配置 https 跟 LoadBalancer 有什么区别&#xff1f; LoadBalancer 需要对外暴露…...

webrtc gcc详解

webrtc的gcc算法(Google Congestion Control)&#xff0c;貌似国内很多文章都没有细讲&#xff0c;原理是怎么样的&#xff0c;具体怎么进行计算的。这里详解一下gcc。 gcc算法&#xff0c;主要涉及到&#xff1a; 拥塞控制的关键信息和公式 卡曼滤波算法 gcc如何使用卡曼滤…...

Linux多进程和多线程(七)进程间通信-信号量

进程间通信之信号量 资源竞争 多个进程竞争同一资源时&#xff0c;会发生资源竞争。 资源竞争会导致进程的执行出现不可预测的结果。 临界资源 不允许同时有多个进程访问的资源, 包括硬件资源 (CPU、内存、存储器以及其他外 围设备) 与软件资源(共享代码段、共享数据结构) …...

【项目日记(一)】梦幻笔耕-数据层实现

❣博主主页: 33的博客❣ ▶️文章专栏分类:项目日记◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多项目内容 目录 1.前言2.后端模块3数据库设计4.mapper实现4.1UserInfoMapper4.2BlogMapper 5.总结 1.…...

ElementUI的中国省市区级联数据插件element-china-area-data

安装 npm install element-china-area-data -S import 使用 import {provinceAndCityData,pcTextArr,regionData,pcaTextArr,codeToText, } from "element-china-area-data"; provinceAndCityData省市二级联动数据,汉字+coderegionData省市区三级联动数据pcTextAr…...

Kotlin算法:把一个整数向上取值为最接近的2的幂指数值

Kotlin算法&#xff1a;把一个整数向上取值为最接近的2的幂指数值 import kotlin.math.ln import kotlin.math.powfun main(args: Array<String>) {val number intArrayOf(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)number.forEach {println("$…...

简单且循序渐进地查找软件中Bug的实用方法

“Bug”这个词常常让许多开发者感到头疼。即使是经验丰富、技术娴熟的开发人员在开发过程中也难以避免遭遇到 Bug。 软件中的故障会让程序员感到挫败。我相信在你的软件开发生涯中&#xff0c;也曾遇到过一些难以排查的问题。软件中的错误可能会导致项目无法按时交付。因此&…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...