matplotlib库

1.概念

Matplotlib 库:是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy ndarray 数组来绘制 2D 图像,它使用简单、代码清晰易懂

  • Figure:指整个图形,您可以把它理解成一张画布,它包括了所有的元素,比如标题、轴线等

  • Axes:绘制 2D 图像的实际区域,也称为轴域区,或者绘图区

  • Axis:指坐标系中的垂直轴与水平轴,包含轴的长度大小(图中轴长为 7)、轴标签(指 x 轴,y轴)和刻度标签

  • Artist:您在画布上看到的所有元素都属于 Artist 对象,比如文本对象(title、xlabel、ylabel)、Line2D 对象(用于绘制2D图像)等

  • Matplotlib 功能扩展包:许多第三方工具包都对 Matplotlib 进行了功能扩展,其中有些安装包需要单独安装,也有一些允许与 Matplotlib 一起安装。常见的工具包如下:

    • Basemap:这是一个地图绘制工具包,其中包含多个地图投影,海岸线和国界线

    • Cartopy:这是一个映射库,包含面向对象的映射投影定义,以及任意点、线、面的图像转换能力

    • Excel tools: 这是 Matplotlib 为了实现与 Microsoft Excel 交换数据而提供的工具

    • Mplot3d:它用于 3D 绘图

    • Natgrid:这是 Natgrid 库的接口,用于对间隔数据进行不规则的网格化处理

2.安装

pip install matplotlib==3.3.4 -i https://pypi.tuna.tsinghua.edu.cn/simple/

,这里的3.3.4为matplotlib的版本号,有别的版本的可以替换为需要的版本

3.应用场景

数据可视化主要有以下应用场景:

  • 企业领域:利用直观多样的图表展示数据,从而为企业决策提供支持

  • 股票走势预测:通过对股票涨跌数据的分析,给股民提供更合理化的建议

  • 商超产品销售:对客户群体和所购买产品进行数据分析,促使商超制定更好的销售策略

  • 预测销量:对产品销量的影响因素进行分析,可以预测出产品的销量走势

4.常用API

4.1 绘图类型

函数名称描述
Bar绘制条形图
Barh绘制水平条形图
Boxplot绘制箱型图
Hist绘制直方图
his2d绘制2D直方图
Pie绘制饼状图
Plot在坐标轴上画线或者标记
Polar绘制极坐标图
Scatter绘制x与y的散点图
Stackplot绘制堆叠图
Stem用来绘制二维离散数据绘制(又称为火柴图)
Step绘制阶梯图
Quiver绘制一个二维按箭头

4.2 Image 函数

函数名称描述
Imread从文件中读取图像的数据并形成数组
Imsave将数组另存为图像文件
Imshow在数轴区域内显示图像

4.3 Axis 函数

函数名称描述
Axes在画布(Figure)中添加轴
Text向轴添加文本
Title设置当前轴的标题
Xlabel设置x轴标签
Xlim获取或者设置x轴区间大小
Xscale设置x轴缩放比例
Xticks获取或设置x轴刻标和相应标签
Ylabel设置y轴的标签
Ylim获取或设置y轴的区间大小
Yscale设置y轴的缩放比例
Yticks获取或设置y轴的刻标和相应标签

4.4 Figure 函数

函数名称描述
Figtext在画布上添加文本
Figure创建一个新画布
Show显示数字
Savefig保存当前画布
Close关闭画布窗口

5.pylab 模块

PyLab 是一个面向 Matplotlib 的绘图库接口,其语法和 MATLAB 十分相近。

pylab 是 matplotlib 中的一个模块,它将 matplotlib.pyplot 和 numpy 的功能组合在一起,使得你可以直接使用 numpy 的函数和 matplotlib.pyplot 的绘图功能,而不需要显式地导入 numpy 和 matplotlib.pyplot。

优点

  • 方便快捷:pylab 的设计初衷是为了方便快速绘图和数值计算,使得你可以直接使用 numpy 的函数和 matplotlib.pyplot 的绘图功能,而不需要显式地导入 numpymatplotlib.pyplot

  • 简化代码:使用 pylab 可以减少导入语句的数量,使代码更简洁。

缺点

  • 命名空间污染:pylab 将 numpy 和 matplotlib.pyplot 的功能组合在一起,可能会导致命名空间污染,使得代码的可读性和可维护性降低。

  • 不适合大型项目:对于大型项目或需要精细控制的项目,pylab 可能不够灵活。

pyplot 是 matplotlib 中的一个模块,提供了类似于 MATLAB 的绘图接口。它是一个更底层的接口,提供了更多的控制和灵活性。

使用 pyplot 需要显式地导入 numpy 和 matplotlib.pyplot,代码量相对较多。例如:

import matplotlib.pyplot as plt
import numpy as np

6.常用函数

6.1 plot 函数

pylab.plot 是一个用于绘制二维图形的函数。它可以根据提供的 x 和 y 数据点绘制线条和/或标记。

语法

pylab.plot(x, y, format_string=None, **kwargs)

参数

  • x: x 轴数据,可以是一个数组或列表。

  • y: y 轴数据,可以是一个数组或列表。

  • format_string: 格式字符串,用于指定线条样式、颜色等。

  • **kwargs: 其他关键字参数,用于指定线条的属性。

plot 函数可以接受一个或两个数组作为参数,分别代表 x 和 y 坐标。如果你只提供一个数组,它将默认用作 y 坐标,而 x 坐标将默认为数组的索引。

格式字符串

格式字符串由颜色、标记和线条样式组成。例如:

颜色:

'b':蓝色 'g':绿色 'r':红色 'c':青色 'm':洋红色 'y':黄色 'k':黑色 'w':白色

标记:

'.':点标记 ',':像素标记 'o':圆圈标记 'v':向下三角标记 '^':向上三角标记 '<':向左三角标记 '>':向右三角标记 's':方形标记 'p':五边形标记 '*':星形标记 'h':六边形标记 1 'H':六边形标记 2 '+':加号标记 'x':叉号标记 'D':菱形标记 'd':细菱形标记 '|':竖线标记 '_':横线标记

线条样式:

'-':实线 '--':虚线 '-.':点划线 ':':点线

案例:

import matplotlib.pyplot as plt
import numpy as np
from jupyterlab_server.process import which


def mat_plot():
    x = np.linspace(-10, 10, 100)
    y = 1/(x**2-4)
    #plot()根据x,y值画出曲线
    plt.plot(x,y)
    #show()显示绘制的图像
    plt.show()
    
if __name__ == '__main__':
    mat_plot()

运行结果: 

6.2 figure 函数

figure() 函数来实例化 figure 对象,即绘制图形的对象,可以通过这个对象,来设置图形的样式等

参数:

  • figsize:指定画布的大小,(宽度,高度),单位为英寸

  • dpi:指定绘图对象的分辨率,即每英寸多少个像素,默认值为80

  • facecolor:背景颜色

  • dgecolor:边框颜色

  • frameon:是否显示边框

6.2.1 figure.add_axes()

Matplotlib 定义了一个 axes 类(轴域类),该类的对象被称为 axes 对象(即轴域对象),它指定了一个有数值范围限制的绘图区域。在一个给定的画布(figure)中可以包含多个 axes 对象,但是同一个 axes 对象只能在一个画布中使用。

参数

是一个包含四个元素的列表或元组,格式为 [left, bottom, width, height],其中:

left 和 bottom 是轴域左下角的坐标,范围从 0 到 1。

width 和 height 是轴域的宽度和高度,范围从 0 到 1。

案例:

# import matplotlib.pyplot as plt
# import numpy as np

# 设置画布的宽度和高度,单位是英寸
fig = plt.figure(figsize=(8, 6), facecolor='w')

# 添加一个子图,位置为 [0.1, 0.1, 0.8, 0.8]
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

# 生成数据
x = np.linspace(-2, 2, 100)
y = x**2
y1 = np.sin(x)

# 绘制曲线
line, = ax.plot(x, y)
line1, = ax.plot(x, y1)

# 添加图例
ax.legend(labels=['y=x^2', 'y1 = sin(x)'], loc='best', handles=[line, line1])

ax.set_title("函数")

# 显示图形
plt.show()

6.2.2 axes.legend()

legend 函数用于添加图例,以便识别图中的不同数据系列。图例会自动显示每条线或数据集的标签。

参数:

  • labels 是一个字符串序列,用来指定标签的名称

  • loc 是指定图例位置的参数,其参数值可以用字符串或整数来表示

  • handles 参数,它也是一个序列,它包含了所有线型的实例

legend() 函数 loc 参数:

位置字符串表示整数数字表示
自适应Best0
右上方upper right1
左上方upper left2
左下lower left3
右下lower right4
右侧right5
居中靠左center left6
居中靠右center right7
底部居中lower center8
上部居中upper center9
中部center10

6.3 标题中文乱码

如果标题设置的是中文,会出现乱码

局部处理:

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

全局处理:

首先,找到 matplotlibrc 文件的位置,可以使用以下代码:

import matplotlib
print(matplotlib.matplotlib_fname())

然后,修改 matplotlibrc 文件,找到 font.familyfont.sans-serif 项,设置为支持中文的字体,如 SimHei。

同时,设置 axes.unicode_minusFalse 以正常显示负号。

修改完成后,重启pyCharm。如果不能解决,尝试运行以下代码来实现:

from matplotlib.font_manager import _rebuild
_rebuild()

6.4 subplot 函数

subplot 是一个较早的函数,用于创建并返回一个子图对象。它的使用比较简单,通常用于创建网格状的子图布局。subplot 的参数通常是一个三位数的整数,其中每个数字代表子图的行数、列数和子图的索引。

add_subplot 是一个更灵活的函数,它是 Figure类的一个方法,用于向图形容器中添加子图。推荐使用 add_subplot,因为它提供了更好的灵活性和控制。

语法:

fig.add_subplot(nrows, ncols, index)

案例:

#add_subplot():在画布添加绘图子区域
#rows:绘图区域所占行数
#cols:绘图区域所占列数
#index:绘图子区域的索引
def mat_subplot():
    x = np.linspace(0, 10, 100)
    y1 = np.sin(x)
    y2 = np.cos(x)
    y3 = np.tan(x)
    
    fig = plt.figure(figsize=(10, 4))
    
    ax1 = fig.add_subplot(1,3,1)
    ax1.plot(x, y1,label='sin(x)')
    ax1.legend()
    
    ax2 = fig.add_subplot(132)
    ax2.plot(x, y2,label='cos(x)')
    ax2.legend()
    
    ax3 = fig.add_subplot(133)
    ax3.plot(x, y3,label='tan(x)')
    ax3.legend()
    
    plt.show()
    
if __name__ == '__main__':
    mat_subplot()

 

6.5 subplots 函数

subplots 是 matplotlib.pyplot 模块中的一个函数,用于创建一个包含多个子图(subplots)的图形窗口。subplots 函数返回一个包含所有子图的数组,这使得你可以更方便地对每个子图进行操作。

语法

fig, axs = plt.subplots(nrows, ncols, figsize=(width, height))

参数

  • nrows: 子图的行数。

  • ncols: 子图的列数。

  • figsize: 图形的尺寸,以英寸为单位。

案例:

def mat_subplot2():
    x = np.linspace(-1, 1, 100)
    y1 = np.sin(x)
    y2 = np.cos(x)
    y3 = np.tan(x)
    y4 = x**2
    y5 = np.arcsin(x)
    y6 = x
    
    fig, axs = plt.subplots(2, 3,figsize=(12, 8))
    axs[0,0].plot(x, y1,label='sin(x)')
    axs[0,0].legend()
    
    axs[0,1].plot(x, y2,label='cos(x)')
    axs[0,1].legend()
    
    axs[0,2].plot(x, y3,label='tan(x)')
    axs[0,2].legend()
    
    axs[1,0].plot(x, y4,label='y=x^2')
    axs[1,0].legend()
    
    axs[1,1].plot(x, y5,label='y=arcsin(x)')
    axs[1,1].legend()
    
    axs[1,2].plot(x, y6,label='y=x')
    axs[1,2].legend()
    
    plt.show()
    
if __name__ == '__main__':
    mat_subplot2()

 

6.6 subplot2gird 函数

subplot2grid 是 matplotlib.pyplot 模块中的一个函数,用于在网格中创建子图。subplot2grid 允许你更灵活地指定子图的位置和大小,以非等分的形式对画布进行切分,使得你可以创建复杂的布局。

语法

ax = plt.subplot2grid(shape, loc, rowspan=1, colspan=1)

参数

  • shape: 网格的形状,格式为 (rows, cols),表示网格的行数和列数,在figure中式全局设置。

  • loc: 子图的起始位置,格式为 (row, col),表示子图在网格中的起始行和列。

  • rowspan: 子图占据的行数,默认为 1。

  • colspan: 子图占据的列数,默认为 1。

案例:

import numpy as np
import matplotlib.pyplot as plt

def mat_subplot3():
    x = np.linspace(-1, 1, 100)
    y1 = np.sin(x)
    y2 = np.cos(x)
    y3 = np.tan(x)
    y4 = x**2
    y5 = np.arcsin(x)
    y6 = x
    
    ax1 = plt.subplot2grid((3, 3), (0, 0))
    ax1.plot(x, y1)
    
    ax2 = plt.subplot2grid((3, 3), (0, 1))
    ax2.plot(x, y2)
    
    ax3 = plt.subplot2grid((3, 3), (0, 2))
    ax3.plot(x, y3)
    ax3.grid(True, axis='both')
    
    ax4 = plt.subplot2grid((3, 3), (1, 1))
    ax4.plot(x, y4)
    
    ax5 = plt.subplot2grid((3, 3), (1, 0))
    ax5.plot(x, y5)
    
    ax6 = plt.subplot2grid((3, 3), (1, 2))
    ax6.plot(x, y6)
    
    plt.tight_layout()
    plt.show()

if __name__ == '__main__':
    mat_subplot3()

 

6.7 grid 函数

grid 是用于在图形中添加网格线的函数。网格线可以帮助读者更清晰地理解数据的分布和趋势。grid 函数可以应用于 Axes 对象,用于在子图中添加网格线。

语法

ax.grid(b=None, which='major', axis='both', **kwargs)

参数

  • b: 是否显示网格线,默认为 None,表示根据当前设置显示或隐藏网格线。

  • which: 指定要显示的网格线类型,可以是 'major'(主刻度)、'minor'(次刻度)或 'both'(主刻度和次刻度)。

  • axis: 指定要显示网格线的轴,可以是 'both'(两个轴)、'x'(X 轴)或 'y'(Y 轴)。

  • **kwargs: 其他可选参数,用于定制网格线的外观,如 color、linestyle、linewidth 等。

6.8 xscale 和 yscale 函数

xscale 和 yscale 函数用于设置坐标轴的刻度类型。默认情况下,坐标轴的刻度类型是线性的,但你可以使用 xscale 和 yscale 函数将其更改为对数刻度或其他类型的刻度。

语法

ax.set_xscale(value)
ax.set_yscale(value)

参数

value: 刻度类型,可以是 'linear'(线性刻度)、'log'(对数刻度)、'symlog'(对称对数刻度)、'logit'(对数几率刻度)等。

6.9 set_xlim 和 set_ylim 函数

set_xlim 和 set_ylim 函数用于设置坐标轴的范围。

语法

ax.set_xlim(left, right)
ax.set_ylim(bottom, top)

参数

  • left 和 right: X 轴的范围,left 是 X 轴的最小值,right 是 X 轴的最大值。

  • bottom 和 top: Y 轴的范围,bottom 是 Y 轴的最小值,top 是 Y 轴的最大值。

6.10 set_xticks 和 set_yticks 函数

Matplotlib 可以自动根据因变量和自变量设置坐标轴范围,也可以通过 set_xticks() 和 set_yticks() 函数手动指定刻度,接收一个列表对象作为参数,列表中的元素表示对应数轴上要显示的刻度。

语法

ax.set_xticks(ticks)
ax.set_yticks(ticks)

参数

ticks: 一个包含刻度位置的列表或数组。

案例:

def mat_ticks():
    x = np.linspace(1, 10, 100)
    y = np.sin(x)
    
    fig, ax = plt.subplots()
    ax.plot(x,y)
    
    # 设置x轴的刻度
    ax.set_xticks([0, 2, 4, 6, 8, 10])
    # 设置y轴的刻度
    ax.set_yticks([-1,-0.5, 0, 0.5, 1])
    
    plt.show()

if __name__ == '__main__':
    mat_ticks()

 

6.11 twinx 和 twiny 函数

twinx 和 twiny 函数用于在同一个图形中创建共享 X 轴或 Y 轴的多个子图。twinx 函数用于创建共享 X 轴的子图,twiny 函数用于创建共享 Y 轴的子图。

语法

ax2 = ax.twinx()
ax2 = ax.twiny()

说明:

  • ax: 原始的 Axes 对象。

  • ax2: 新的 Axes 对象,共享原始 Axes 对象的 X 轴或 Y 轴。

# twinx():使两个子图共用x轴
# twiny():使两个子图共用y轴
def mat_twinx():
    x = np.linspace(0, 10, 100)
    y1 = np.sin(x)
    y2 = np.cos(x)
    
    fig, ax1 = plt.subplots()
    ax1.plot(x, y1)
    #使曲线y2与y1共用x轴
    ax2 = ax1.twinx()
    ax2.plot(x, y2,'r')
    
    plt.show()
    
if __name__ == '__main__':
    mat_twinx()
 

6.12 柱状图

柱状图(Bar Chart)是一种常用的数据可视化工具,用于展示分类数据的分布情况。

语法

ax.bar(x, height, width=0.8, bottom=None, align='center', **kwargs)

参数

  • x: 柱状图的 X 轴位置。

  • height: 柱状图的高度。

  • width: 柱状图的宽度,默认为 0.8。

  • bottom: 柱状图的底部位置,默认为 0。

  • align: 柱状图的对齐方式,可以是 'center'(居中对齐)或 'edge'(边缘对齐)。

  • **kwargs: 其他可选参数,用于定制柱状图的外观,如 color、edgecolor、linewidth 等。

案例:

#bar():绘制柱状图
#bottom:第二个柱状图的底部位置,通过该属性,将第二个柱状图的底部堆叠到第一个柱状图的顶部
def mat_Bar():
    x = ['A', 'B', 'C','D']
    y = [19.5, 20, 25.3, 18.8]
    #创建第二个数据准备用于堆叠
    y2 = [17.5, 20.3, 24.8, 19]
    
    fig, ax = plt.subplots()
    
    # 绘制柱状图
    ax.bar(x, y, color='blue', width=0.3,)
    
    # 绘制第二个柱状图,使用bottom参数,使第二个柱状图在第一个柱状图的上方
    ax.bar(x, y2, bottom=y, color='red', width=0.3)
    
    ax.set_title('Bar Chart')
    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    
    plt.show()
    
if __name__ == '__main__':
    mat_Bar()

6.13 直方图

直方图(Histogram)是一种常用的数据可视化工具,用于展示数值数据的分布情况。

语法

ax.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, **kwargs)

参数

  • x: 数据数组。

  • bins: 直方图的柱数,可以是整数或序列。

  • range: 直方图的范围,格式为 (min, max)

  • density: 是否将直方图归一化,默认为 False

  • weights: 每个数据点的权重。

  • cumulative: 是否绘制累积直方图,默认为 False

  • **kwargs: 其他可选参数,用于定制直方图的外观,如 coloredgecolorlinewidth 等。

案例:

def mat_Barh():
    x = ['A', 'B', 'C','D']
    y = [19.5, 20, 25.3, 18.8]
    y2 = [17.5, 20.3, 24.8, 19]
    
    fig, ax = plt.subplots()
    
    width = 0.3
    
    x1 = np.arange(len(x))
    
    ax.bar(x1-width/2, y, width=width, color='blue', label='y')
    ax.bar(x1+width/2, y2, width=width, color='skyblue', label='y2')
    
    plt.show()
    
if __name__ == '__main__':
    mat_Barh()

6.14 饼图

饼图(Pie Chart)是一种常用的数据可视化工具,用于展示分类数据的占比情况。

语法

ax.pie(x, explode=None, labels=None, colors=None, autopct=None, shadow=False, startangle=0, **kwargs)

参数

  • x: 数据数组,表示每个扇区的占比。

  • explode: 一个数组,表示每个扇区偏离圆心的距离,默认为 None

  • labels: 每个扇区的标签,默认为 None

  • colors: 每个扇区的颜色,默认为 None

  • autopct: 控制显示每个扇区的占比,可以是格式化字符串或函数,默认为 None

  • shadow: 是否显示阴影,默认为 False

  • startangle: 饼图的起始角度,默认为 0。

  • **kwargs: 其他可选参数,用于定制饼图的外观。

案例:

 

def mat_startangl():
    x = ['A', 'B', 'C','D']
    y = [19.5, 20, 25.3, 18.8]
    
    fig, ax = plt.subplots()
    ax.pie(y, labels=x, startangle=0, autopct='%1.2f%%')
    plt.show()
    
if __name__ == '__main__':
    mat_startangl()

 

6.15 折线图

使用 plot 函数

案例:

from matplotlib import pyplot as plt
​
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
​
# 创建图形和子图
fig, ax = plt.subplots()
​
# 绘制多条折线图
ax.plot(x, y1, label='sin(x)', color='blue')
ax.plot(x, y2, label='cos(x)', color='red')
​
# 设置标题和标签
ax.set_title('Multiple Line Charts')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
​
# 添加图例
ax.legend()
​
# 显示图形
plt.show()

6.16 散点图

散点图(Scatter Plot)是一种常用的数据可视化工具,用于展示两个变量之间的关系。

语法

ax.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, **kwargs)

参数

  • x: X 轴数据。

  • y: Y 轴数据。

  • s: 点的大小,可以是标量或数组。

  • c: 点的颜色,可以是标量、数组或颜色列表。

  • marker: 点的形状,默认为 'o'(圆圈)。

  • cmap: 颜色映射,用于将颜色映射到数据。

  • norm: 归一化对象,用于将数据映射到颜色映射。

  • vmin, vmax: 颜色映射的最小值和最大值。

  • alpha: 点的透明度,取值范围为 0 到 1。

  • linewidths: 点的边框宽度。

  • edgecolors: 点的边框颜色。

  • **kwargs: 其他可选参数,用于定制散点图的外观。

案例:

from matplotlib import pyplot as plt
​
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
axes = fig.add_axes([.1,.1,.8,.8])
x = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
data = [
    [120, 132, 101, 134, 90, 230, 210],
    [220, 182, 191, 234, 290, 330, 310],
]
y0 = data[0]
y1 = data[1]
axes.scatter(x,y0,color='red')
axes.scatter(x,y1,color='blue')
axes.set_title('散点图')
axes.set_xlabel('日期')
axes.set_ylabel('数量')
plt.legend(labels=['Email', 'Union Ads'],)
plt.show()

marker常用的参数值:

  • 'o': 圆圈

  • 's': 正方形

  • 'D': 菱形

  • '^': 上三角形

  • 'v': 下三角形

  • '>': 右三角形

  • '<': 左三角形

  • 'p': 五边形

  • '*': 星形

  • '+': 加号

  • 'x': 叉号

  • '.': 点

  • ',': 像素

  • '1': 三叉戟下

  • '2': 三叉戟上

  • '3': 三叉戟左

  • '4': 三叉戟右

  • 'h': 六边形1

  • 'H': 六边形2

  • 'd': 小菱形

  • '|': 竖线

  • '_': 横线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/899451.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【含开题报告+文档+PPT+源码】基于vue框架的东升餐饮点餐管理平台的设计与实现

开题报告 在当前信息化社会背景下&#xff0c;餐饮行业正经历着由传统线下服务模式向线上线下深度融合的转变。随着移动互联网技术及大数据应用的飞速发展&#xff0c;用户对于餐饮服务平台的需求也日益多元化和个性化。他们期望能在一个集便捷、高效、个性化于一体的平台上完…

快速搭建SpringBoot3+Prometheus+Grafana

快速搭建SpringBoot3PrometheusGrafana 一、搭建SpringBoot项目 1.1 创建SpringBoot项目 1.2 修改pom文件配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://…

如何使用 Spring Cloud 实现客户端负载平衡

微服务系统通常运行每个服务的多个实例。这是实施弹性所必需的。因此&#xff0c;在这些实例之间分配负载非常重要。执行此操作的组件是负载均衡器。Spring 提供了一个 Spring Cloud Load Balancer 库。在本文中&#xff0c;您将学习如何使用它在 Spring Boot 项目中实现客户端…

SolarWinds Web Help Desk曝出严重漏洞,已遭攻击者利用

近日&#xff0c;CISA 在其 “已知漏洞”&#xff08;KEV&#xff09;目录中增加了三个漏洞&#xff0c;其中一个是 SolarWinds Web Help Desk (WHD) 中的关键硬编码凭据漏洞&#xff0c;供应商已于 2024 年 8 月底修复了该漏洞。 SolarWinds Web Help Desk 是一款 IT 服务台套…

影刀RPA实战番外:excel函数应用指南

Excel函数是用于执行特定计算、分析和数据处理任务的预定义公式。它们可处理数学计算、文本处理、逻辑判断、日期和时间运算、查找和引用数据等。例如&#xff0c;SUM函数可以计算一系列数字的总和&#xff0c;IF函数进行逻辑测试&#xff0c;VLOOKUP函数在表格中查找数据&…

HTML之表单设计

1、HTML表单 HTML表单是用于收集用户输入的信息&#xff0c;并将用户输入的内容信息传到后台服务器中。 表单是通过form标签实现。 特别注意&#xff1a;如果一些内容提交后&#xff0c;没有将内容提交给后台服务器&#xff0c;那么需要添加一个name属性&#xff0c;语法&am…

鼠标移入盒子,盒子跟随鼠标移动

demo效果&#xff1a; 鼠标移入盒子&#xff0c;按下鼠标,开启移动跟随移动模式,再次按下关闭移动模式 涉及主要属性 在元素上单击鼠标按钮时输出鼠标指针的坐标&#xff1a; var x event.pageX; // 获取水平坐标 var y event.pageY; // 获取垂直坐标元素offsetL…

JDK-23与JavaFX配置在IDEA中

一、安装 1.IDEA安装&#xff0c;可以查看CSDN 2.JDK,JavaFX安装&#xff0c;可以查看CSDN 二、配置JDK 打开IDEA&#xff0c;选择个项目&#xff0c;点击图中的设置按钮&#xff1a; 点击项目设置&#xff1a; 点击“”添加JDK&#xff0c;寻找相应的JDK目录就行 三、配置…

Python快速入门教程

目录 1. Python 简介 2. 环境准备 3. 第一个 Python 程序 4. 变量与数据类型 5. 基本操作与控制结构 6. 函数与模块 7. 实践项目 结语 Python 是一种非常友好的编程语言&#xff0c;特别适合初学者。它的语法简洁&#xff0c;容易上手&#xff0c;并且广泛应用于各种领…

机器视觉运动控制一体机在DELTA并联机械手视觉上下料应用

市场应用背景 DELTA并联机械手是由三个相同的支链所组成&#xff0c;每个支链包含一个转动关节和一个移动关节&#xff0c;具有结构紧凑、占地面积小、高速高灵活性等特点&#xff0c;可在有限的空间内进行高效的作业&#xff0c;广泛应用于柔性上下料、包装、分拣、装配等需要…

从docker中导出已经存在的容器

从docker中导出已经存在的容器,作用:创建一个容器可以给多台电脑的docker使用&#xff0c;不用重复安装环境。 操作步骤&#xff1a; (1)先运行要导出的容器&#xff0c;并在cmd终端使用docker ps 查看运行的详细信息&#xff0c;留意一下 COMMAND对应的值后面运行容器需要使用…

创建匿名管道

匿名管道&#xff1a; pipe()函数可用于创建一个管道&#xff0c;以实现进程间的通信。 头文件是#include<unistd.h>&#xff0c;参数是int类型的数组 fd[0]表示读端 fd[1]表示写端 如下代码使用pipe函数创建管道&#xff0c;并打印出来&#xff0c;最后关闭终端。 #…

力扣 简单 70.爬楼梯

文章目录 题目介绍题解 题目介绍 题解 思路分析&#xff1a; 确定dp数组以及下标的含义&#xff1a;dp[i]&#xff1a; 爬到第i层楼梯&#xff0c;有dp[i]种方法确定递推公式&#xff1a;从dp[i]的定义可以看出&#xff0c;dp[i] 可以有两个方向推出来。首先是dp[i - 1]&…

Springboot基于微信小程序的同城优惠软件的开发-计算机毕设 附源码24287

Springboot基于微信小程序的同城优惠软件的开发 摘要 随着互联网技术的发展&#xff0c;网络购物越来越受到大家的欢迎。电子商务这一概念大家都不在陌生。通过互联网进行的商品贸易范围越来越广泛&#xff0c;从经典的电子商品、到化妆品、书籍等&#xff0c;发展到小吃商品&a…

PCL学习——点云基础

点云基础 一、什么是三维点云二、获取三维点云的几种方式三、主要挑战四、什么是PCL 一、什么是三维点云 三维点云&#xff08;3D Point Cloud&#xff09;是一种用于表示三维空间中对象或场景的数据结构。在最基础的形式中&#xff0c;它是一个包含多个三维坐标点&#xff08…

SpringBoot民宿预定信息管理系统-计算机毕业设计源码89828

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2研究背景 1.3论文结构与章节安排 2 民宿预定信息管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分…

Pytest日志收集器配置

前言 在pytest框架中&#xff0c;日志记录&#xff08;logging&#xff09;是一个强大的功能&#xff0c;它允许我们在测试期间记录信息、警告、错误等&#xff0c;从而帮助调试和监控测试进度。 pytest与Python标准库中的logging模块完美集成&#xff0c;因此你可以很容易地在…

Spring源码解析(35)之Spring全体系源码流程图

一、前言 画了一个spring全体系的流程图&#xff0c;spring容器创建过程&#xff0c;spring生命周期过程&#xff0c;AOP过程&#xff0c;Spring事务执行过程。 二、Spring体系源码图

【1024程序员节】之C++系列完结篇:Web编程

文章目录 一、Web编程1. 使用C标准库和第三方库2. 使用CWeb框架3. 使用C与JavaScript的集成4. 数据库交互5. 部署和运维 二、CppCMS框架构建Web应用1. 安装 CppCMS&#xff1a;2. 创建项目目录和文件3. 编写源代码4. 编译和运行5. 访问 Web 应用 三、HTTP介绍1. 请求头部字段&a…

Vue项目的创建

安装Vue工具 Vue CLI Vue CLI Vue.js 开发的标准工具&#xff0c;Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 npm install -g vue/cli安装之后&#xff0c;你就可以在命令行中访问 vue 命令。你可以通过简单运行 vue&#xff0c;看看是否展示出了一份所有可用命令的…