【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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。- 数据准备:创建两个列表
x和y,分别表示横轴和纵轴的数据点。- 创建图形:使用
plt.plot(x, y)方法绘制折线图。plot方法的第一个参数是x轴数据,第二个参数是y轴数据。- 添加标题和标签:使用
plt.title方法添加图形的标题,使用plt.xlabel和plt.ylabel方法为横轴和纵轴添加标签。- 显示图形:使用
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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。- 数据准备:创建三个列表
x、y1和y2,分别表示两个子图的x轴和y轴数据。- 创建子图:使用
plt.subplots方法创建一个包含两个子图的图形。plt.subplots(2, 1)表示创建一个两行一列的子图布局,fig是图形对象,ax1和ax2是两个子图对象。- 绘制子图:分别使用
ax1.plot和ax2.plot方法绘制两个子图。- 添加标题:分别使用
ax1.set_title和ax2.set_title方法为两个子图添加标题。- 调整布局:使用
plt.tight_layout()方法自动调整子图布局,使其不重叠。- 显示图形:使用
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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。 - 数据准备:创建两个列表
categories和values,分别表示分类和对应的值。 - 创建柱状图:使用
plt.bar(categories, values)方法创建柱状图。第一个参数是分类,第二个参数是对应的值。 - 添加标题和标签:使用
plt.title方法添加图形的标题,使用plt.xlabel和plt.ylabel方法为横轴和纵轴添加标签。 - 显示图形:使用
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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。- 数据准备:创建两个列表
x和y,分别表示横轴和纵轴的数据点。- 创建散点图:使用
plt.scatter(x, y)方法创建散点图。scatter方法的第一个参数是x轴数据,第二个参数是y轴数据。- 添加标题和标签:使用
plt.title方法添加图形的标题,使用plt.xlabel和plt.ylabel方法为横轴和纵轴添加标签。- 显示图形:使用
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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。 - 数据准备:创建一个列表
data,表示数据样本。 - 创建直方图:使用
plt.hist(data, bins=5, edgecolor='black')方法创建直方图。hist方法的第一个参数是数据样本,bins参数表示直方图的柱子数量,edgecolor参数设置柱子的边框颜色。 - 添加标题和标签:使用
plt.title方法添加图形的标题,使用plt.xlabel和plt.ylabel方法为横轴和纵轴添加标签。 - 显示图形:使用
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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。 - 数据准备:创建三个列表
x、y1和y2,分别表示两个数据集的x轴和y轴数据。 - 创建图形和子图:使用
plt.subplots()方法创建图形和子图对象。fig是图形对象,ax1是第一个子图对象。 - 绘制第一个数据集:使用
ax1.plot(x, y1, 'g-')方法绘制第一个数据集。参数'g-'表示绿色实线。 - 设置第一个Y轴标签:使用
ax1.set_xlabel和ax1.set_ylabel方法设置第一个子图的x轴和y轴标签,color参数设置标签颜色。 - 创建第二个Y轴:使用
ax1.twinx()方法创建第二个Y轴。 - 绘制第二个数据集:使用
ax2.plot(x, y2, 'b--')方法绘制第二个数据集。参数'b--'表示蓝色虚线。 - 设置第二个Y轴标签:使用
ax2.set_ylabel方法设置第二个子图的y轴标签,color参数设置标签颜色。 - 添加标题:使用
plt.title方法为整个图形添加标题。 - 显示图形:使用
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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。 - 数据准备:创建两个列表
x和y,分别表示横轴和纵轴的数据点。 - 创建图形:使用
plt.plot(x, y)方法绘制折线图。 - 添加标题和标签:使用
plt.title方法添加图形的标题,使用plt.xlabel和plt.ylabel方法为横轴和纵轴添加标签。 - 保存图形:使用
plt.savefig('line_plot.png')方法将图形保存为PNG文件。你可以根据需要更改文件名和文件格式,例如line_plot.pdf或line_plot.svg。 - 显示图形:使用
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()

代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。- 准备数据:使用字典形式准备数据。
- 绘制折线图:使用
plt.plot方法绘制折线图,marker='o'表示数据点使用圆形标记,linestyle='-'表示实线,color='b'表示蓝色。- 添加标题和标签:使用
plt.title、plt.xlabel和plt.ylabel方法添加图形标题和轴标签。- 显示网格:使用
plt.grid(True)方法显示网格线。- 显示图形:使用
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()
代码解析:
- 导入库:除了
matplotlib.pyplot,还需要导入numpy来处理数组和索引。- 设置柱的宽度和位置:使用
bar_width设置每个柱子的宽度,使用np.arange创建一个数组表示每个柱子的x轴位置。- 创建柱状图:使用
plt.bar方法绘制柱状图,第一个参数是x轴位置,第二个参数是数据值,bar_width设置柱子的宽度,label设置图例标签,color设置颜色。- 添加标题和标签:使用
plt.xlabel、plt.ylabel和plt.title方法添加图形标题和轴标签。- 设置x轴刻度:使用
plt.xticks方法设置x轴刻度的位置和标签。- 添加图例:使用
plt.legend()方法显示图例。- 显示图形:使用
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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。- 准备数据:使用字典形式准备数据。
- 绘制散点图:使用
plt.scatter方法绘制散点图,第一个参数是x轴数据,第二个参数是y轴数据,color参数设置数据点颜色。- 添加标题和标签:使用
plt.title、plt.xlabel和plt.ylabel方法添加图形标题和轴标签。- 显示网格:使用
plt.grid(True)方法显示网格线。- 显示图形:使用
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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。 - 准备数据:使用字典形式准备数据。
- 绘制直方图:使用
plt.hist方法绘制直方图,第一个参数是数据样本,bins参数设置直方图的柱子数量,edgecolor参数设置柱子的边框颜色。 - 添加标题和标签:使用
plt.title、plt.xlabel和plt.ylabel方法添加图形标题和轴标签。 - 显示网格:使用
plt.grid(True)方法显示网格线。 - 显示图形:使用
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()
代码解析:
- 导入库:使用
import matplotlib.pyplot as plt导入Matplotlib库。- 准备数据:使用字典形式准备数据。
- 创建图形和子图:使用
plt.subplots()方法创建图形和子图对象。fig是图形对象,ax1是第一个子图对象。- 绘制折线图:使用
ax1.plot方法绘制折线图,设置折线图颜色和标记样式。- 设置第一个Y轴标签:使用
ax1.set_xlabel和ax1.set_ylabel方法设置第一个子图的x轴和y轴标签,color参数设置标签颜色。- 创建第二个Y轴:使用
ax1.twinx()方法创建第二个Y轴。- 绘制柱状图:使用
ax2.bar方法绘制柱状图,设置柱状图颜色和透明度。- 设置第二个Y轴标签:使用
ax2.set_ylabel方法设置第二个子图的y轴标签,color参数设置标签颜色。- 添加标题:使用
plt.title方法为整个图形添加标题。- 调整布局和添加图例:使用
fig.tight_layout()方法自动调整布局,使用fig.legend方法添加图例,设置图例的位置。- 显示图形:使用
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 (下标越界异常…...
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(天空星)
前言:本篇笔记参考嘉立创文档,连接放在最后 #RTC相关概念定义 Real-Time Clock 缩写 RTC 翻译 实时时钟,是单片机片内外设的一种,作用于提供准确的时间还有日期,这个外设有独立的电源,当单片机停止供电…...
vue数组变化的侦测***
数组变化的侦测 变更方法 vue能够侦听响应式数组的变更方法,并在他们被调用时触发相关更新。这些变更方法包括: push()pop()shift()unshift()splice()sort()reverse() 替换一个数组 变更方法,顾名思义,就是会对调用他们的原数组进…...
k8s-第十节-Ingress
Ingress 介绍 Ingress 为外部访问集群提供了一个 统一 入口,避免了对外暴露集群端口;功能类似 Nginx,可以根据域名、路径把请求转发到不同的 Service。可以配置 https 跟 LoadBalancer 有什么区别? LoadBalancer 需要对外暴露…...
webrtc gcc详解
webrtc的gcc算法(Google Congestion Control),貌似国内很多文章都没有细讲,原理是怎么样的,具体怎么进行计算的。这里详解一下gcc。 gcc算法,主要涉及到: 拥塞控制的关键信息和公式 卡曼滤波算法 gcc如何使用卡曼滤…...
Linux多进程和多线程(七)进程间通信-信号量
进程间通信之信号量 资源竞争 多个进程竞争同一资源时,会发生资源竞争。 资源竞争会导致进程的执行出现不可预测的结果。 临界资源 不允许同时有多个进程访问的资源, 包括硬件资源 (CPU、内存、存储器以及其他外 围设备) 与软件资源(共享代码段、共享数据结构) …...
【项目日记(一)】梦幻笔耕-数据层实现
❣博主主页: 33的博客❣ ▶️文章专栏分类:项目日记◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多项目内容 目录 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算法:把一个整数向上取值为最接近的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。 软件中的故障会让程序员感到挫败。我相信在你的软件开发生涯中,也曾遇到过一些难以排查的问题。软件中的错误可能会导致项目无法按时交付。因此&…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...
【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
一、条形码识别改名使用教程 打开软件并选择处理模式:打开软件后,根据要处理的文件类型,选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件,就选择 “PDF 识别模式”;若是处理图片文件&…...
C#最佳实践:为何优先使用as或is而非强制转换
C#最佳实践:为何优先使用as或is而非强制转换 在 C# 的编程世界里,类型转换是我们经常会遇到的操作。就像在现实生活中,我们可能需要把不同形状的物品重新整理归类一样,在代码里,我们也常常需要将一个数据类型转换为另…...
vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能
vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能 查看官网:https://vxetable.cn 效果 代码 通过 checkbox-config.isShift 启用批量选中,启用后按住快捷键和鼠标批量选取 <template><div><vxe-grid v-bind"gri…...
