【Matplotlib】一文搞定Matplotlib绘图配置(大三学长的万字笔记)

文章目录

  • 一、Matplotlib介绍
    • 1 - 介绍
    • 2 - 安装
  • 二、基本配置
    • 1 - 中文配置
    • 2 - 查看字体库
    • 3 - 基本绘图
    • 4 - 线样式和颜色
  • 三、画布配置
    • 1 - 基本配置
    • 2 - 多图绘制 | 同一画布(重叠)
    • 3 - 多图绘制 | 多个画布
    • 4 - 多图绘制 | 同一画布(子图)
    • 5 - 多图绘制 | 嵌套
  • 四、绘图属性配置
    • 1 - 双轴显示
    • 2 - 图例
    • 3 - 线条属性
    • 4 - 坐标轴刻度
    • 5 - 坐标轴设置
    • 6 - 标题和网格
    • 7 - 标签
    • 8 - 文本
    • 9 - 注释
    • 10 - 保存图片
  • 结语

大家好,这篇文章是我整理的 Matplotlib 绘制图象,所用到的基本配置,涵盖了大部分的使用场景(万字长文,请不要嫌我啰嗦哦,只为了大家能更好的理解),是绘制直方图、热力图等图象的基础。

🚀 大家好,我是向阳花,数据科学路上,与你同行。🚀
🔥 博主的Python数据分析专栏正在火热更新中🔥,不要错过呀 ~

一、Matplotlib介绍

1 - 介绍

matplotlib是一个 python 2D 绘图库,同时也提供了一部分 3D 绘图的接口,利用它可以画出许多高质量的图像。只需几行代码即可生成直方图,条形图,饼图,散点图等。它的官网这样描述它:Matplotlib: Visualization with Python(用 Python 进行可视化)。

在数据分析与机器学习中,我们经常要用到大量的可视化操作,制作一张精美的图片,可以直观展示数据。大家记住一句话:字不如表,表不如图,一图胜千言

2 - 安装

  • anaconda环境

自带 matplotlib ,无需另外安装。

  • 其他Python环境
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

安装后同时导入数据分析三剑客(numpy,pandas,matplotlib):

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

执行后可能出现警告,再次执行就会消失。

二、基本配置

1 - 中文配置

使用 matplotlib 绘图默认不会显示中文和负号,需要添加以下代码配置。

# 当浏览器不显示绘图图片时,加上这一行
%matplotlib inline# 让图片可以显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
# 让图片可以显示负号
plt.rcParams['axes.unicode_minus'] = False# 支持svg矢量图
%config InlineBackend.figure_format = 'svg'

2 - 查看字体库

通过以下代码,可以查看自己电脑上的可用字体库。

from matplotlib.font_manager import FontManagerfm = FontManager()
my_fonts = set(f.name for f in fm.ttflist)
my_fonts

运行结果显示的字体,都可以设置到上面中文的代码中,将 'SimHei' 替换掉。

3 - 基本绘图

matplotlib 使用 plot() 函数绘制折线图。

在后面,我们会看到这样调用的:plt.plot(),也会看到这样调用的:ax.plot()。使用这两种方式画图,可视化结果是一样的。

# =======第一种方式=======
fig=plt.figure(figsize=(4,4))
plt.plot([1,2,3,4],[1,2,3,4])
# =======第二种方式=======
fig=plt.figure(figsize=(4,4))
ax=fig.add_subplot(111)
ax.plot([1,2,3,4],[1,2,3,4])

它们的绘图结果都是:

那么这两种方法调用有什么区别呢?

其实,第一种方法是先创建了一个画布(figure),然后在画布上绘图;第二种方法是也是先创建了一个画布,然后在画布上创建了一个子图区域,在子图区域上作图。

也就是说,通过子图的方式,一个画布上可以绘制多个子图,如果直接在画布上画,那么我们只能画出重叠图和嵌套图(在下面会讲到这两种图)。

使用 matplotlib 绘图的基本流程:

(第一次使用 mermaid 绘制流程图,绘制的有些复杂难以理解了,还望见谅。)

修改Y轴刻度与范围
添加Y轴名称
修改X轴刻度与范围
添加X轴名称
选定子图
是否创建子图
创建画布
添加标题
绘制图形
添加图例
是否绘制完成
保存图形
显示图形

绘制下面二次函数的图象:
y = x 2 y = \def\sqr#1{#1^2} \sqr{x} y=x2

# 创建一个等差数列数组(-5至5,100个数据,差值相同)
x = np.linspace(-5,5,100)# 绘制 y = x**2 的函数图象
plt.plot(x,x**2)

4 - 线样式和颜色

plot() 函数通过两个属性 colorlinestyle 设置线段颜色和线段样式。它们的简写形式是 c 和 ls,也可以将它们写到一起(写在一起的例子在下文给出),但是不建议。

就上面的抛物线代码进行改编:

# 绘制 y = x**2 的函数图象
plt.plot(x,x**2,color='g',linestyle='-.')


它还有两种等价写法:

plt.plot(x,x**2,c='g',ls='-.')
# not suggest,make people look at it and do not understand
plt.plot(x,x**2,'g-.')

那么 color 和 linestyle 的取值有哪些呢?这里我罗列了官方文档给出的一些。

**Colors**The supported color abbreviations are the single letter codes=============    ===============================
character        color
=============    ===============================
``'b'``          blue
``'g'``          green
``'r'``          red
``'c'``          cyan
``'m'``          magenta
``'y'``          yellow
``'k'``          black
``'w'``          white
=============    ===============================and the ``'CN'`` colors that index into the default property cycle.If the color is the only part of the format string, you can
additionally use any  `matplotlib.colors` spec, e.g. full names
(``'green'``) or hex strings (``'#008000'``).

通俗来讲,意思就是 color 可以有三种写法,单个字母简写,英文单词,十六进制(不可以缩写为井号加3个字符)。

**Line Styles**=============    ===============================
character        description
=============    ===============================
-          		solid line style
--        		dashed line style
-.         		dash-dot line style
:         		dotted line style
=============    ===============================

三、画布配置

画布配置是 Matplotlib 中非常重要的一块,后面绘制许多图形,都建立在画布配置基础之上,需要深刻掌握记忆。

1 - 基本配置

基本配置写在 plt.figure() 函数参数上。

参数配置
figsize画布宽高
dpi分辨率
facecolor画布背景颜色

此外,还可以通过 plt.grid() 函数为画布添加网格。

# 画布配置
plt.figure(figsize=(5,3),dpi=100,facecolor='g') # 画正弦曲线
x = np.linspace(0,2*np.pi,100)
y = np.sin(x)
plt.plot(x,y)# 配置网格
plt.grid()

2 - 多图绘制 | 同一画布(重叠)

在同一个画布上绘制多个图象,只需要多次调用 plt.plot() 函数即可。

plt.figure(figsize=(5,4)) # 画布大小
x = np.linspace(0,2*np.pi,100)
y1 = np.sin(x) # 正弦函数
y2 = np.cos(x) # 余弦函数
# 绘制多个图象
plt.plot(x,y1,ls='--')
plt.plot(x,y2,ls='-.')

3 - 多图绘制 | 多个画布

通过 plt.show() 方法立即显示图片,即可出现多个画布。在调用了这个方法之后,后面调用 plt 对象绘制图象,将是初始配置,figsize,dpi等配置没有了。

在上面的代码基础上,只添加一行:

# 绘制多个图象
plt.plot(x,y1,ls='--')
plt.show() # 添加的行
plt.plot(x,y2,ls='-.')

运行结果出现了两个图。

4 - 多图绘制 | 同一画布(子图)

通过 plt.subplot(),plt.subplots() 函数可以进行子图配置。这两个函数只相差了一个 s ,它们的区别就是,前者是调用它返回一个子图对象,后者是调用它返回多个子图对象。

  • plt.subplot()
# 创建画布对象
fig = plt.figure(figsize=(4,3))x = np.linspace(-2,2,100)
y1 = x # 一次函数
y2 = np.sin(x) # 正弦函数
y3 = 1/x # 反比例函数
y4 = x**2 # 二次函数# 子图1
ax1 = plt.subplot(221) # 221表示2行2列中的第一个图
ax1.set_title('子图1')
ax1.plot(x,y1)# 子图2
ax2 = plt.subplot(222) # 221表示2行2列中的第一个图
ax2.set_title('子图2')
ax2.plot(x,y2)# 子图3
ax3 = plt.subplot(223) # 221表示2行2列中的第一个图
ax3.set_title('子图3')
ax3.plot(x,y3)# 子图4
ax4 = plt.subplot(224) # 221表示2行2列中的第一个图
ax4.set_title('子图4')
ax4.plot(x,y4)# 设置自动调整布局
fig.tight_layout()

效果如下:

  • plt.subplots()

从官方文档我们得知,Function : Create a figure and a set of subplots.它会返回一个画布对象和一个子图集合,因此等下我们使用两个变量来接收返回值。

fig,axes = plt.subplots(2,2)x = np.linspace(-2,2,100)
y1 = x # 一次函数
y2 = np.sin(x) # 正弦函数
y3 = 1/x # 反比例函数
y4 = x**2 # 二次函数# 得到第一维
ax0,ax1 = axes[0],axes[1]
# 第二维
ax00,ax01 = ax0[0],ax0[1]
ax10,ax11 = ax1[0],ax1[1]# 利用这四个子图对象画图
ax00.plot(x,y1)
ax01.plot(x,y2)
ax10.plot(x,y3)
ax11.plot(x,y4)# 自动调整布局
fig.tight_layout()

运行结果如下:

5 - 多图绘制 | 嵌套

图形嵌套是指在一个图形中再嵌套一个或多个图象,它不同于第一种情况(多图绘制 | 同一画布(重叠))。有三个函数 add_subplot(),axes(),add_axes() 可以实现图象重叠,下面请看代码示例。

  • add_subplot()
fig = plt.figure(figsize=(4,3))# 图象1
axes1 = fig.add_subplot(1,1,1) # 1,1,1表示它在第一行,第一列,占一个
# 绘制一条直线
axes1.plot([0,1],[1,3])# 嵌套图象2
axes2 = fig.add_subplot(2,2,1,facecolor='g') # 2,2,1表示它在第二行,第二列,第一个
axes2.plot([0,1],[1,3])

  • axes()
fig = plt.figure(figsize=(4,3))x = np.linspace(-2,2,100)
# 图1
y1 = x
plt.plot(x,y1)# 嵌套图2
y2 = x**2
axes1 = plt.axes([0.55,0.55,0.3,0.3]) # [left, bottom, width, height]
axes1.plot(x,y2,color='g')

效果图如下:

  • add_axes()

在上一个代码的基础上,只改变最后两行,改为:

axes1 = fig.add_axes([0.18,0.18,0.3,0.3])
axes1.plot(x,y2,color='r')

效果如下:

四、绘图属性配置

1 - 双轴显示

双轴显示是指,两个或多个图象共用 X 轴,但是它们的 Y 轴不一样,使用的是左边的 Y 轴或者是右边的 Y 轴。

plt.figure(figsize=(4,3))x = np.linspace(0,10,100)# image one
# 得到当前轴域
axes1 = plt.gca()
axes1.plot(x,np.exp(x),color='r') # 指数函数# 为轴设置标签
axes1.set_xlabel('time')
axes1.set_ylabel('exp',c='r')
# 设置刻度的颜色
axes1.tick_params(axis='y',labelcolor='red')# image two
axes2 = axes1.twinx() # 和 image one 共享X轴
axes2.plot(x,np.sin(x),c='b') # sinx图象axes2.set_ylabel('sin',c='b')axes2.tick_params(axis='y',labelcolor='blue')# auto adjust layout
plt.tight_layout()

运行结果如下:

2 - 图例

图例(legend),是图象中用于标记哪个图象是表示什么的指示,一般是正方形。图例的设置有两种方法,一种是先设置标签(label)之后直接显示,另外一种是最后设置标签。

  • 先设置标签
plt.figure(figsize=(4,3))x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x),label='sin')
plt.plot(x,np.cos(x),label='cos')# 显示图例,默认在空白处显示
plt.legend()


此外,还可以调整图例的大小,位置等。

plt.legend(loc='upper left',fontsize=10)
  • 后设置标签
plt.figure(figsize=(4,3))x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))
plt.plot(x,np.cos(x))plt.legend(labels=['sin','cos'], # 按照图片显示顺序对应fontsize=10,loc='center',ncol=2, # 显示成2列# 图例的具体位置[x,y,width,height]bbox_to_anchor=[0,1,1,0.2])

3 - 线条属性

线条属性在 plot() 方法中使用(前面讲到 plot 方法可以由画布对象调用,也可以由子图对象调用,如果忘记了往上面翻复习一下),线条属性主要有以下这些(前两个在之前也已经提到过)。

属性作用
color线条颜色
linestyle线条样式
linewidth线宽
alpha透明度
marker拐点处的标记样式
mfc(marker face color标记的背景颜色
# 以折线图为例
fig = plt.figure(figsize=(4,3))
x = np.random.randint(0,20,10)
plt.plot(x,color='r',ls='--',lw='1',alpha=0.2,marker='o',mfc='g',)

效果图如下:

4 - 坐标轴刻度

默认情况下,我们设置的X轴的范围,就是X轴的取值范围,刻度是默认的,Y轴也是根据Y的取值范围确定的。有时候我们需要修改刻度,使得图象更加细致,通过 xticks()yticks() 方法可以修改刻度。

plt.figure(figsize=(4,3))x = np.linspace(0,10)
y = np.sin(x)
plt.plot(x,y)# 设置X和Y轴的刻度
plt.xticks(ticks=np.arange(0,11,1),fontsize=10,color='g')
plt.yticks(ticks=[-1,0,1],labels=['min','0','max'], # 显示刻度标签fontsize=10,color='b',ha='right' # 水平对齐方式)# 立即显示图象,如果不加会打印很多对象地址
plt.show()

5 - 坐标轴设置

如果我们想要修改坐标轴的范围,那么可以使用两种方法。

现在是不改变坐标轴范围的情况:

plt.figure(figsize=(5,3))x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y,c='r')plt.show()


现在我们改变X、Y的刻度范围:

  • 通过 xlim 和 ylim 方法

现在我们在原来代码的基础上,添加上两行代码:

plt.figure(figsize=(4,3))x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y,c='r')# 改变X轴范围为-2-8,Y轴范围为-2-2
plt.xlim(-2,8)
plt.ylim(-2,2)plt.show()

  • 通过 axis 方法

在原来没有改变坐标轴范围的代码基础上添加一行代码:

plt.figure(figsize=(4,3))x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y,c='r')# 改变X轴范围为-2-8,Y轴范围为-2-2
plt.axis([-2,8,-2,2])plt.show()

也可以实现同样的效果:

此外,坐标轴还有以下设置,作为 axis() 方法的参数:

参数值作用
off不显示坐标轴
equal让X轴和Y轴刻度距离(分度值)相同
scaled自动缩放坐标轴和图片匹配
tight紧凑型自动适配图片
square让画布呈现正方形,X轴和Y轴宽高一致

下面是代码示例:

plt.figure(figsize=(4,3))x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y,c='r')# 改变X轴范围为-2-8,Y轴范围为-2-2
plt.axis('off')plt.show()

因为使用的是 off ,那么就是不显示坐标轴,得到的就是如下曲线。

6 - 标题和网格

一张图片拥有一个标题,可以直观的告诉人们这是描述什么的图象,因此图片标题是非常重要的。此外,我们还可以给图片设置网格底,下面介绍图片标题以及网格的设置。

fig = plt.figure(figsize=(4,3))plt.title('直线')  # 设置标题# 设置父标题
plt.suptitle('父标题',y=1.1, # 位置fontsize=10) # 设置网格线
plt.grid(ls='--',# 网格线样式lw=0.5, # 线宽c='gray',# 线条颜色axis='y' # 只显示Y轴网格线)plt.plot([0,1],[1,3])

效果如下:

7 - 标签

标签是用于描述X轴、Y轴的文本,比如说,横轴表示科目,纵轴表示分数,那么就要通过标签来设置。

project = ['科目一','科目二','科目三']
scores = [90,80,100]fig = plt.figure(figsize=(4,3))# 设置标签(rotation表示旋转角度)
plt.xlabel('科目',fontsize=10,rotation=45)
# horizontalalignment表示水平对齐方式
plt.ylabel('分数',fontsize=10,rotation=0,horizontalalignment='right')plt.plot(project,scores)

8 - 文本

文本是用于标记图象中某个点的值是多少,见的是非常多的,在绘图中会经常使用到。

fig = plt.figure(figsize=(4,3))x = np.linspace(1,10,10)
y = np.random.randint(20,40,10)plt.plot(x,y,ls='--',marker='*')# 加上文本
for a,b in zip(x,y):# 这个循环的意思是,分别取 x,y 中的一个元素,返回一个元组plt.text(x = a, # x轴坐标y = b + 1, # y轴坐标(用于确定文本位置)s = b, # 文本内容fontsize = 10, # 字体大小color='g',ha='center',va='center')

9 - 注释

有时候某一个点可能有特殊含义,需要用文字说明,那么这时候就需要使用到注释。注释是一种用箭头指向某一个位置,然后显示文本的方式。

fig = plt.figure(figsize=(4,3))x = np.linspace(1,10,10)
y = np.array([10,20,30,40,20,30,10,20,0,30])plt.plot(x,y,ls='--',marker='*')# 添加注释 annotation
plt.annotate(s='最大值', # 注释内容xy=(4,40), # 注释的坐标点,也就是箭头指向的位置xytext=(1,35), # 标注内容的位置# 箭头样式arrowprops = {'width':1, # 箭头线的宽度'headwidth':4, # 箭头头部的宽度'facecolor':'red' # 箭头的背景颜色}
)plt.show()

10 - 保存图片

有时候,我们希望将自己可视化的作品图片保存下来,用于PPT展示或其他用处,那么我们可以使用 savefig() 方法。

fig = plt.figure(figsize=(4,3))x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))# 保存图片
plt.savefig('sin.png')

运行之后,不仅会在 Jupyter Notebook 下打印图片,还会保存图片到当前目录。

我们还可以添加一些别的设置:

fig = plt.figure(figsize=(4,3))x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))# 保存图片
plt.savefig(fname = 'sin.png',# 图片名字dpi = 100, # 图片像素密度facecolor = 'pink', # 背景颜色pad_inches = 1 # 内边距
)

查看保存下来的图片:

结语

本文主要讲解了Matplotlib绘图相关配置,是利用Matplotlib绘图的基本功。

⭐️如果有不懂的地方,欢迎大家和我一起探讨 ~

好啦,这就是今天要分享给大家的全部内容了,我们下期再见!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海外媒体发稿:软文写作方法方式?一篇好的软文理应合理规划?

不同种类的软文会有不同的方式,下面小编就来来给大家分析一下: 方法一、要选定文章的突破点: 所说突破点就是这篇文章文章软文理应以什么样的视角、什么样的见解、什么样的语言设计理念、如何文章文章的标题来写。不同种类的传播效果&#…

【Leetcode】对称二叉树||递归(击败100%)

step by step. 题目: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2,1,3] 输出…

使用node.js 搭建一个简单的HelloWorld Web项目

文档结构 config.ini #将本文件放置于natapp同级目录 程序将读取 [default] 段 #在命令行参数模式如 natapp -authtokenxxx 等相同参数将会覆盖掉此配置 #命令行参数 -config 可以指定任意config.ini文件 [default] authtokencc83c08d73357802 #对应一条隧…

Android 性能调优之bitmap的优化

背景 Android开发中,加载图片过多、过大很容易引起OutOfMemoryError异常,即我们常见的内存溢出。因为Android对单个应用施加内存限制,默认分配的内存只有几M(具体视不同系统而定)。而载入的图片如果是JPG之类的压缩格…

Python爬虫在电商数据挖掘中的应用

作为一名长期扎根在爬虫行业的专业的技术员,我今天要和大家分享一些有关Python爬虫在电商数据挖掘中的应用与案例分析。在如今数字化的时代,电商数据蕴含着丰富的信息,通过使用爬虫技术,我们可以轻松获取电商网站上的产品信息、用…

【数学】协方差介绍、相关系数介绍,Python代码

协方差 协方差(Covariance)是统计学中用来衡量两个随机变量之间关系的一种度量。它反映了这两个变量的变化趋势是否一致,即当一个变量偏离其均值时,另一个变量是否也倾向于偏离其均值。协方差可以帮助我们了解变量之间的线性关系…

【JAVA】七大排序算法(图解)

稳定性: 待排序的序列中若存在值相同的元素,经过排序之后,相等元素的先后顺序不发生改变,称为排序的稳定性。 思维导图: (排序名称后面蓝色字体为时间复杂度和稳定性) 1.直接插入排序 核心思…

【Vue3】Teleport 传送组件

Teleport 组件是 Vue.js 3 中引入的特性之一&#xff0c;它允许将组件的内容传送&#xff08;teleport&#xff09;到当前组件之外的目标位置&#xff0c;这在处理复杂的布局、模态框等方案时非常有用。 A.vue <template><div class"dialog"><heade…

Android Studio新版本logcat过滤说明

按包名过滤 //输入package:&#xff08;输入一个p就会有提示的&#xff09; &#xff0c;后面加上包名 比如: package:com.xal.runcontrol package:包名可以完整或者输部分包名即可 package:包名需要输完整准确 package~:正则表达式过滤 不了解正则表达式的可以参考&#…

用了回不去的卷王机械键盘,看这些就够了

前几天出了一期不同价位鼠标推荐&#xff1a;外设圈彻底开卷&#xff0c;2023 下半年无脑入鼠标推荐表来了&#xff01; 结果不少小伙伴儿留言&#xff0c;鼠标是有了&#xff0c;还缺一把趁手好用且高性价比的机械键盘&#xff0c;并强烈要求咱再出一期。 话不多说&#xff0…

docker-compose部署milvus

部署milvus 上一篇介绍了使用kubernetes来部署milvus&#xff0c;这篇介绍下使用docker-compose来部署milvus。 下载docker-compose docker-compose的Github地址https://github.com/docker/compose/releases下载最新版的 docker-compose-linux-x86_64 在服务器上使用 wget …

vue+Highcharts绘制3D饼图

效果图 一、下载highcharts插件 npm install highcharts 二、main.js全局配置插件 import Highcharts from "highcharts/highcharts"; import highcharts3d from "highcharts/highcharts-3d"; highcharts3d(Highcharts); 三、封装highcharts.vue组件 …

多功能翻译工具——图片翻译器

这是一款多功能的翻译工具&#xff0c;简单几步即可完成图片翻译操作&#xff0c;支持多种语言的翻译&#xff0c;包括英语、法语、德语、西班牙语等&#xff0c;并支持文档翻译、pdf翻译、同声传译等形式的翻译功能。可以轻松翻译图片、pdf、execl、txt、word等格式的文档&…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis em

​ 鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内…

jmeter如何压测和存储

一、存储过程准备&#xff1a; 1、建立一个空表&#xff1a; 1 CREATE TABLE test_data ( id NUMBER, name VARCHAR2(50), age NUMBER ); 2、建立一个存储过程&#xff1a; 1 2 3 4 5 6 7 8 9 CREATE OR REPLACE PROCEDURE insert_test_data (n IN NUMBER) AS BEGIN --E…

代码随想录二刷博客Day3~Day4

707. 设计链表 这道题的解题思路其实就是让我们模拟一个链表的实现&#xff1a; 首先我们先要创建一个内部类作为链表的结点&#xff0c;这个内部类要包含两个元素&#xff0c;一个是val值&#xff0c;一个是指向下一个节点的指针 在构造方法这里我们要初始化一个虚拟头街点…

2023年第三届工业自动化、机器人与控制工程国际会议 | IET独立出版 | EI检索

会议简介 Brief Introduction 2023年第三届工业自动化、机器人与控制工程国际会议&#xff08;IARCE 2023&#xff09; 会议时间&#xff1a;2023年10月27 -30日 召开地点&#xff1a;中国成都 大会官网&#xff1a;www.iarce.org 2023年第三届工业自动化、机器人与控制工程国际…

java泛型和通配符的使用

泛型机制 本质是参数化类型(与方法的形式参数比较&#xff0c;方法是参数化对象)。 优势:将类型检查由运行期提前到编译期。减少了很多错误。 泛型是jdk5.0的新特性。 集合中使用泛型 总结&#xff1a; ① 集合接口或集合类在jdk5.0时都修改为带泛型的结构② 在实例化集合类时…

2023河南萌新联赛第(五)场:郑州轻工业大学--买爱心气球

题目链接&#xff1a;A-买爱心气球_2023河南萌新联赛第&#xff08;五&#xff09;场&#xff1a;郑州轻工业大学 (nowcoder.com) 题目描述 Alice 和 Bob 是一对竞技编程选手&#xff0c;他们路过了一家气球店&#xff0c;发现有 m 个大爱心气球和 n 个小爱心气球。他们决定玩…

SSM个人博客项目

文章目录 SSM个人博客系统实现项目介绍 一、准备工作0. 创建项目添加对应依赖1. 数据库设计2. 定时实体类 二、功能实现1.统一功能处理统一返回格式统一异常处理定义登录拦截器 2. 注册登录实现生成获取验证码密码加盐实现注册功能登录功能注销功能 3.登录用户博客列表获取登录…