当前位置: 首页 > 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;也曾遇到过一些难以排查的问题。软件中的错误可能会导致项目无法按时交付。因此&…...

基于springboot+vue+uniapp的高校宿舍信息管理系统小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

(完整音频)DockerHub、OpenAI、GitCode,脱钩时代,我们该如何自处?

本期主播 朱峰&#xff1a;「津津乐道播客网络」创始人&#xff0c;产品及技术专家。&#xff08;微博&#xff1a;zhufengme&#xff09;高春辉&#xff1a;「科技乱炖」主播。“中国互联网站长第一人”&#xff0c;科技、互联网领域的连续创业者。&#xff08;微博&#xff1…...

macos 10.15系统下载包,macOS Catalina for mac

macOS Catalina 让你喜欢的种种 Mac 体验都更进一步。你可以领略音乐、播客这两款全新 Mac app 的表演&#xff1b;在 Mac 上畅享各款自己心爱的 iPad app&#xff1b;拿起 iPad 和 Apple Pencil&#xff0c;拓展工作空间&#xff0c;释放创意灵感&#xff1b;再打开那些平时常…...

uni.showShareMenu({}) 和 uni.showShareImageMenu({}) 的区别

ChatGPT uni.showShareMenu({}) 和 uni.showShareImageMenu({}) 是 Uni-app 中两个不同的 API&#xff0c;它们的作用和用法有所不同&#xff1a; uni.showShareMenu({}) 作用&#xff1a;用于显示当前页面的分享菜单&#xff0c;通常显示在页面的右上角&#xff08;类似于微…...

Spring Boot logback 日志文件配置

引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency>logback-spring.xml 配置 <?xml version"1.0" encoding"UTF-8&quo…...

240705_昇思学习打卡-Day17-基于 MindSpore 实现 BERT 对话情绪识别

240705_昇思学习打卡-Day17-基于 MindSpore 实现 BERT对话情绪识别 近期确实太忙&#xff0c;此处仅作简单记录&#xff1a; 模型简介 BERT全称是来自变换器的双向编码器表征量&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;&#xff0c…...

图像处理调试软件推荐

对于图像处理的调试&#xff0c;使用具有图形用户界面&#xff08;GUI&#xff09;且支持实时调整和预览的图像处理软件&#xff0c;可以大大提高工作效率。以下是几款常用且功能强大的图像处理调试软件推荐&#xff1a; ImageJ/FijiMATLABOpenCV with GUI LibrariesNI Vision …...

Mybatis实现RBAC权限模型查询

RBAC权限模型 Role-Based Access Control&#xff0c;中文意思是&#xff1a;基于角色&#xff08;Role&#xff09;的访问控制。这是一种广泛应用于计算机系统和网络安全领域的访问控制模型。 简单来说&#xff0c;就是通过将权限分配给➡角色&#xff0c;再将角色分配给➡用…...

最短路算法——差分约束

差分约束 (1) 求不等式组的可行解 源点&#xff1a;从源点出发&#xff0c;一定可以走到所有的边求可行解步骤&#xff1a; 先将每个不等式 x i ≤ x j c x_i \le x_j c xi​≤xj​c,转化成一条从 s j s_j sj​走到 s i s_i si​&#xff0c;长度为 c k c_k ck​ 的一条边找…...

Log4j日志框架讲解(全面,详细)

目录 Log4j概述 log4j的架构&#xff08;组成&#xff09; Loggers Appenders Layouts 快速入门 依赖 java代码 日志的级别 log4j.properties 自定义Logger 总结&#xff1a; Log4j概述 Log4j是Apache下的一款开源的日志框架&#xff0c;通过在项目中使用 Log4J&…...

LeetCode 35, 242, 994

目录 35. 搜索插入位置题目链接标签思路代码 242. 有效的字母异位词题目链接标签思路代码 994. 腐烂的橘子题目链接标签思路代码 35. 搜索插入位置 题目链接 35. 搜索插入位置 标签 数组 二分查找 思路 本题与 704. 二分查找 十分相似&#xff0c;只不过本题在找不到 tar…...

ctfshow-web入门-文件包含(web87)巧用 php://filter 流绕过死亡函数的三种方法

目录 方法1&#xff1a;php://filter 流的 base64-decode 方法 方法2&#xff1a;通过 rot13 编码实现绕过 方法3&#xff1a;通过 strip_tags 函数去除 XML 标签 除了替换&#xff0c;新增 file_put_contents 函数&#xff0c;将会往 $file 里写入 <?php die(大佬别秀了…...

adb shell ps -T打印出来参数的含义,以及D,T,Z代表的状态含义是什么?

在Android系统中&#xff0c;使用adb shell ps命令可以查看当前系统中运行的进程信息。当你添加-T选项时&#xff08;注意&#xff0c;标准的ps命令在Android的adb shell中可能不直接支持-T选项&#xff0c;这通常与Linux中的ps命令略有不同&#xff09;&#xff0c;你可能是想…...

leetcode77组合——经典回溯算法

本文主要讲解组合的要点与细节&#xff0c;以及回溯算法的解题步骤&#xff0c;按照步骤思考更方便理解 c和java代码如下&#xff0c;末尾 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 具体要点&#xff1a; …...

springcloud-alibba之FeignClient

代码地址&#xff1a;springcloud系列: springcloud 组件分析拆解 1.FeignClient的集成 springboot版本&#xff1a;3.1.5 springcloud组件版本&#xff1a;2022.0.4 nacos客户端的版本&#xff1a;2.3.2 1.引pom 这里引入了nacos和feginclient的版本 <dependency>…...

三、docker配置阿里云镜像仓库并配置docker代理

一、配置阿里云镜像仓库 1. 登录阿里云官网&#xff0c;并登录 https://www.aliyun.com/ 2. 点击产品 - 容器 - 容器与镜像服务ACR - 管理控制台 - 镜像工具 - 镜像加速器 二、配置docker代理 #1. 创建docker相关的systemd文件 mkdir -p /etc/systemd/system/docker.servic…...

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十一)-git(3)

Git是目前最流行的版本控制系统之一&#xff0c;在现代软件开发中扮演着重要的角色。它能够有效地跟踪文件变化、协作开发&#xff0c;并存储项目的历史记录。本文的目的是向读者介绍Git的基本概念和工作原理&#xff0c;帮助初学者快速上手使用Git&#xff0c;并帮助有经验的开…...

全面解析 TypeScript 泛型的二三事

2024年了相信大家都已经在日常开发的过程中使用上了 TypeScript 了。TypeScript 增强了代码可靠性和可维护性&#xff0c;确保减少运行时错误并提高开发人员的工作效率。 TypeScript 通过类型声明 使得 javascript 拥有了强类型校验。而泛型的是类型声明中最重要的一环&#x…...

单/多线程--协程--异步爬虫

免责声明:本文仅做技术交流与学习... 目录 了解进程和线程 单个线程(主线程)在执行 多线程 线程池 协程(爬虫多用) 假异步:(同步) 真异步: 爬虫代码模版 异步-爬虫 同步效果--19秒 异步效果--7秒 了解进程和线程 ​ # --------------------> # ------> # …...

android pdf框架-11,查看图片

前10篇文章,9章关于pdf的,pdf解析后,里面也是有各种图片,于是利用pdf的view来展示图片,似乎也是个不错的想法. android手机中的图片查看功能,有的可以展示,有的不能.比如华为,荣耀对大体积的png是可以显示的,小米是不显示,只有缩略图. 一张png50m大,比如清明上河图,原图是tif…...

【CSS】深入浅出弹性布局

CSS的弹性布局&#xff08;Flexbox&#xff09;是一种用于在容器中沿着一维方向&#xff08;水平或垂直&#xff09;来布局、对齐和分配容器内项目空间的有效方式。它旨在提供一个更加有效的方式来布局、对齐和分配容器中项目的空间&#xff0c;即使它们的大小未知或是动态变化…...

医院挂号系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;患者管理&#xff0c;医生管理&#xff0c;专家信息管理&#xff0c;科室管理&#xff0c;预约信息管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;专家信息&#xff0…...

广州外贸建站模板

Yamal外贸独立站wordpress主题 绿色的亚马尔Yamal外贸独立站wordpress模板&#xff0c;适用于外贸公司建独立站的wordpress主题。 https://www.jianzhanpress.com/?p7066 赛斯科Sesko-W外贸建站WP主题 适合机械设备生产厂家出海做外贸官网的wordpress主题&#xff0c;红橙色…...

KDP数据分析实战:从0到1完成数据实时采集处理到可视化

智领云自主研发的开源轻量级Kubernetes数据平台&#xff0c;即Kubernetes Data Platform (简称KDP)&#xff0c;能够为用户提供在Kubernetes上的一站式云原生数据集成与开发平台。在最新的v1.1.0版本中&#xff0c;用户可借助 KDP 平台上开箱即用的 Airflow、AirByte、Flink、K…...

【人工智能】-- 智能机器人

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;引言 &#x1f349;机器人介绍 &#x1f348;机器人硬件 &#x1f34d;机械结构 &#x1f34d;传感器 &#x1f34d;控…...

Android广播机制

简介 某个网络的IP范围是192.168.0.XXX&#xff0c;子网 掩码是255.255.255.0&#xff0c;那么这个网络的广播地址就是192.168.0.255。广播数据包会被发送到同一 网络上的所有端口&#xff0c;这样在该网络中的每台主机都将会收到这条广播。为了便于进行系统级别的消息通知&…...

SQL FOREIGN KEY

SQL FOREIGN KEY 简介 SQL(Structured Query Language)是用于管理关系数据库管理系统(RDBMS)的标准编程语言。在SQL中,FOREIGN KEY是一个重要的概念,用于建立和维护数据库中不同表之间的关系。本文将详细介绍SQL FOREIGN KEY的概念、用途、以及如何在SQL中实现和使用FO…...

绘唐3最新版本哪里下载

绘唐3最新版本哪里下载 绘唐最新版本下载地址 推文视频创作设计是一种通过视频和文字的形式来进行推广的方式&#xff0c;可以通过一些专业的工具来进行制作。 以下是一些常用的小说推文视频创作设计工具&#xff1a; 视频剪辑软件&#xff1a;如Adobe Premiere Pro、Fina…...

[ES6] 箭头函数

JavaScript 是一种广泛使用的编程语言&#xff0c;随着其发展和演变&#xff0c;引入了很多新的特性来提高代码的可读性和开发效率。其中一个重要的特性就是 ES6&#xff08;ECMAScript 2015&#xff09;中引入的箭头函数&#xff08;Arrow Function&#xff09;。箭头函数不仅…...

BiLSTM模型实现

# 本段代码构建类BiLSTM, 完成初始化和网络结构的搭建 # 总共3层: 词嵌入层, 双向LSTM层, 全连接线性层 # 本段代码构建类BiLSTM, 完成初始化和网络结构的搭建 # 总共3层: 词嵌入层, 双向LSTM层, 全连接线性层 import torch import torch.nn as nn# 本函数实现将中文文本映射为…...