【数学建模美赛M奖速成系列】Matplotlib绘图技巧(一)

Matplotlib图像基础

  • 写在前面
  • 1 基本绘图实例:sin、cos函数图
  • 2 plot()函数详解
    • **kwargs参数:
  • 3 matplotlib中绘图的默认配置
  • 4 设置图的横纵坐标的上下界
  • 5 设置横纵坐标上的记号
  • 6 调整图像的脊柱
  • 7 添加图例
  • 8 给一些特殊点加注释
  • 9 子图
  • 最后

写在前面

前面我们讲过,好的图表在论文写作中是相当重要的,这里学姐为大家整理了一些Matplotlib快速入门内容以及论文绘图的技巧,帮助大家快速学习绘图。这里整理了完整的文档与技巧,有需要的同学看下面,另外,如果没有美赛经验想要获奖,欢迎咨询哦~

1 基本绘图实例:sin、cos函数图

from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
show()

在这里插入图片描述

2 plot()函数详解

调用形式一般为:

plot([x], y, [fmt], data=None, *kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2],,
*kwargs)

其中可选参数[fmt]是一个字符串,用于定义图的基本属性:颜色(color)、点型(marker)、线型(linestyle)
具体形式为:

fmt = [color][marker][linestyle]
注意这里的三个属性只能是每个属性的单个字母缩写,若属性用的是全名则不能用[fmt]

**kwargs参数:

  • x: x轴数据
  • y: y轴数据
  • linewidth: 线宽
  • color:线条颜色

在这里插入图片描述

  • marker: 标记风格

在这里插入图片描述

  • linestyle: 线条样式

在这里插入图片描述

  • markerfacecolor 标记颜色
  • markersize 标记大小
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c, 'b|-')
plt.plot(x, s)
show()

在这里插入图片描述

3 matplotlib中绘图的默认配置

from pylab import *
import numpy as np
import matplotlib.pylab as plt
# 创建一个8*6(point)的图,并设置分辨率为80
figure(figsize=(8, 6), dpi=80)
# 创建一个新的1*1的子图,接下来的图样绘制在其中的第一块中
subplot(1, 1, 1)
# 得到坐标点(x,y)坐标
X = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
C, S = np.cos(X), np.sin(X)
# 绘制余弦曲线,使用蓝色的、连续的、宽度为1的线条
plot(X, C, color='blue', linewidth=2.5,
linestyle='-')
# 绘制正弦曲线,使用绿色的、连续的、宽度为1的线条
plot(X, S, color='green', linewidth=2.0,
linestyle='-')
# 设置横轴的上下限
xlim(-4.0, 4.0)
# 设置横轴记号
xticks(np.linspace(-4, 4, 9, endpoint=True),
fontproperties='Times New Roman', size=20)
# 设置纵轴记号
yticks(np.linspace(-1, 1, 5, endpoint=True))
#设置横纵坐标的名称以及对应字体格式
font = {'family' : 'Times New Roman',
'weight' : 'normal',
'size' : 20,
}
# 设置横轴标签
plt.xlabel('X axis', font)
# 设置纵轴标签
plt.ylabel('Y axis', font)
# 设置图像标题
plt.title('Demo Figure', font)
# 以分辨率72来保存图片
savefig('demo.png', dpi=72)
# 在屏幕上显示
show()

在这里插入图片描述

4 设置图的横纵坐标的上下界

xlim(), ylim()
from pylab import *
import numpy as np
# 得到坐标点(x,y)坐标
X = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
C, S = np.cos(X), np.sin(X)
x_min, x_max = X.min(), X.max()
c_min, c_max = C.min(), C.max()
s_min, s_max = S.min(), C.max()
y_min, y_max = min(c_min, s_min), max(c_max,
s_max)
# 设置横纵坐标上下界的偏移量,这样能够完整的显示图像且最美观
dx = (x_max - x_min) * 0.2
dy = (y_max - y_min) * 0.2
# 设置上下限
xlim(x_min - dx, x_max + dx)
ylim(y_min - dy, y_max + dy)
# 绘制余弦曲线,使用蓝色的、连续的、宽度为2.5的线条
plot(X, C, color='blue', linewidth=2.5,
linestyle='-')
# 绘制正弦曲线,使用绿色的、连续的、宽度为2.0的线条
plot(X, S, color='green', linewidth=2.0,
linestyle='-')
show()

在这里插入图片描述

5 设置横纵坐标上的记号

xticks(), yticks()

这两个函数的用处在于指明横纵轴需要显示的内容和显示内容的位置,参数的值可以有两种情况:

  • 当横纵坐标的值为普通的数字时:参数为一个list,list中的元素为数字,此时两个函数的参数只需要这一个list
  • 当横纵坐标的值为公式(使用的latex中的公式表示,如’pipipi’)或其他和当前的坐标值不同的值时:参数为两个list,第一个list为普通数字对应的是纵坐标值,第二个list为第一个list中纵坐标位置对应要显示的值,可以是公式也可以是其他和当前纵坐标值不同的表示
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
c, s = np.cos(x), np.sin(x)
xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$',
r'$+\pi$'])
yticks([-1, 0, +1],
[r'$-1$', r'$0$', r'$+1$'])
plt.plot(x, c)
plt.plot(x, s)
show()

在这里插入图片描述

6 调整图像的脊柱

坐标轴和上面的记号连在一起就形成了脊柱(Spines,一条线段上又一系列凸起,是不是很像脊柱),它记录了数据区域的范围,它们可以放在任意位置,不过默认是放在图的四边。
实际上每幅图都有四条脊柱(上下左右),为了将脊柱放在图的中间,我们必须将其中的两条(上和右)设置为无色,然后调整剩下的两条到合适的位置——数据空间的0点。

from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
# 设置坐标轴gca(),获取坐标轴信息
ax = gca()
'''
使用ax.spines[]选定边框,使用set_color()将选定的边框的颜
色设为 none
'''
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
'''
移动坐标轴,将bottom即x坐标轴移动到y=0的位置
ax.xaixs为x轴,set_ticks_position()用于从上下左右
(top/bottom/left/right)四条脊柱中选择一个作为x轴
使用set_position()设置边框位置:y=0的位置。位置的所有属性
包括:outward、axes、data
'''
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
'''
将left 即y坐标轴设置到x=0的位置
'''
ax.yaxis.set_ticks_position('left') # 选定y轴
ax.spines['left'].set_position(('data', 0))
plt.show()

在这里插入图片描述

7 添加图例

在 plot() 函数中增加一个参数 label ,再通过 legend()函数显示图例

from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c, label='cosine')
plt.plot(x, s, label='sine')
plt.legend(loc='upper left')
plt.show()

在这里插入图片描述

8 给一些特殊点加注释

scatter(x, y, s=None, c=None, marker=None,
cmap=None, norm=None, vmin=None, vmax=None,
alpha=None, linewidths=None, verts=None,
edgecolors=None, hold=None, data=None, *kwargs)
x - x 值
向量
y - y 值
向量
sz - 标记面积
36 (默认) | 数值标量 | 行或列向量 | []
c - 标记颜色
[0 0 1] (默认) | RGB 三元数 |RGB 三元数组成的三列
矩阵 | 向量 | 'r' | 'g' | 'b' | .
mkr - 标记类型
'o' (默认) | '+' | '*' | '.' | 'x' | .
'filled' - 用于填充标记内部的选项
ax - 目标坐标区
Axes 对象 | PolarAxes 对象
'MarkerEdgeColor' - 标记轮廓颜色
'flat' (默认) | 'none' | RGB 三元数 | 'r' | 'g' |
'b' | .
'MarkerFaceColor' - 标记填充颜色
'none' (默认) | 'flat' | 'auto' | RGB 三元数 | 'r'
| 'g' | 'b' | .
'LineWidth' - 标记边缘的宽度
0.5 (默认) | 正值
s - Scatter 对象
Scatter 对象

函数用于在图像中绘制散点

参数:

  • x/y:都是向量形式,且维度相同,分别对应坐标点的横纵坐标
  • scalar: 标记大小,以平方磅为单位的标记面积,可以有一下形式:
    • 数值标量 : 以相同的大小绘制所有标记。
    • 行或列向量 : 使每个标记具有不同的大小。x、y 和 sz中的相应元素确定每个标记的位置和面积。sz 的长度必须等于 x 和 y 的长度。
    • [] : 使用 36 平方磅的默认面积。
  • color:标记的颜色,有下列不同的赋值方式:
    • RGB 三元数或颜色名称 - 使用相同的颜色绘制所有标记。
    • 由 RGB 三元数组成的三列矩阵 - 对每个标记使用不同的颜色。矩阵的每行为对应标记指定一种 RGB 三元数颜色。行数必须等于 x 和 y 的长度
    • 向量 - 对每个标记使用不同的颜色,并以线性方式将 c 中的值映射到当前颜色图中的颜色。c 的长度必须等于 x 和y 的长度。要更改坐标区的颜色图,请使用 colormap 函数。如果散点图中有三个点,并且您希望这些颜色成为颜色图的索引,请以三元素列向量的形式指定 c。
    • 在这里插入图片描述
cnames = {
'aliceblue': '#F0F8FF',
'antiquewhite': '#FAEBD7',
'aqua': '#00FFFF',
'aquamarine': '#7FFFD4',
'azure': '#F0FFFF',
'beige': '#F5F5DC',
'bisque': '#FFE4C4',
'black': '#000000',
'blanchedalmond': '#FFEBCD',
'blue': '#0000FF',
'blueviolet': '#8A2BE2',
'brown': '#A52A2A',
'burlywood': '#DEB887',
'cadetblue': '#5F9EA0',
'chartreuse': '#7FFF00',
'chocolate': '#D2691E',
'coral': '#FF7F50',
'cornflowerblue': '#6495ED',
'cornsilk': '#FFF8DC',
'crimson': '#DC143C',
'cyan': '#00FFFF',
'darkblue': '#00008B',
'darkcyan': '#008B8B',
'darkgoldenrod': '#B8860B',
'darkgray': '#A9A9A9',
'darkgreen': '#006400',
'darkkhaki': '#BDB76B',
'darkmagenta': '#8B008B',
'darkolivegreen': '#556B2F',
'darkorange': '#FF8C00',
'darkorchid': '#9932CC',
'darkred': '#8B0000',
'darksalmon': '#E9967A',
'darkseagreen': '#8FBC8F',
'darkslateblue': '#483D8B',
'darkslategray': '#2F4F4F',
'darkturquoise': '#00CED1',
'darkviolet': '#9400D3',
'deeppink': '#FF1493',
'deepskyblue': '#00BFFF',
'dimgray': '#696969',
'dodgerblue': '#1E90FF',
'firebrick': '#B22222',
'floralwhite': '#FFFAF0',
'forestgreen': '#228B22',
'fuchsia': '#FF00FF',
'gainsboro': '#DCDCDC',
'ghostwhite': '#F8F8FF',
'gold': '#FFD700',
'goldenrod': '#DAA520',
'gray': '#808080',
'green': '#008000',
'greenyellow': '#ADFF2F',
'honeydew': '#F0FFF0',
'hotpink': '#FF69B4',
'indianred': '#CD5C5C',
'indigo': '#4B0082',
'ivory': '#FFFFF0',
'khaki': '#F0E68C',
'lavender': '#E6E6FA',
'lavenderblush': '#FFF0F5',
'lawngreen': '#7CFC00',
'lemonchiffon': '#FFFACD',
'lightblue': '#ADD8E6',
'lightcoral': '#F08080',
'lightcyan': '#E0FFFF',
'lightgoldenrodyellow': '#FAFAD2',
'lightgreen': '#90EE90',
'lightgray': '#D3D3D3',
'lightpink': '#FFB6C1',
'lightsalmon': '#FFA07A',
'lightseagreen': '#20B2AA',
'lightskyblue': '#87CEFA',
'lightslategray': '#778899',
'lightsteelblue': '#B0C4DE',
'lightyellow': '#FFFFE0',
'lime': '#00FF00',
'limegreen': '#32CD32',
'linen': '#FAF0E6',
'magenta': '#FF00FF',
'maroon': '#800000',
'mediumaquamarine': '#66CDAA',
'mediumblue': '#0000CD',
'mediumorchid': '#BA55D3',
'mediumpurple': '#9370DB',
'mediumseagreen': '#3CB371',
'mediumslateblue': '#7B68EE',
'mediumspringgreen': '#00FA9A',
'mediumturquoise': '#48D1CC',
'mediumvioletred': '#C71585',
'midnightblue': '#191970',
'mintcream': '#F5FFFA',
'mistyrose': '#FFE4E1',
'moccasin': '#FFE4B5',
'navajowhite': '#FFDEAD',
'navy': '#000080',
'oldlace': '#FDF5E6',
'olive': '#808000',
'olivedrab': '#6B8E23',
'orange': '#FFA500',
'orangered': '#FF4500',
'orchid': '#DA70D6',
'palegoldenrod': '#EEE8AA',
'palegreen': '#98FB98',
'paleturquoise': '#AFEEEE',
'palevioletred': '#DB7093',
'papayawhip': '#FFEFD5',
'peachpuff': '#FFDAB9',
'peru': '#CD853F',
'pink': '#FFC0CB',
'plum': '#DDA0DD',
'powderblue': '#B0E0E6',
'purple': '#800080',
'red': '#FF0000',
'rosybrown': '#BC8F8F',
'royalblue': '#4169E1',
'saddlebrown': '#8B4513',
'salmon': '#FA8072',
'sandybrown': '#FAA460',
'seagreen': '#2E8B57',
'seashell': '#FFF5EE',
'sienna': '#A0522D',
'silver': '#C0C0C0',
'skyblue': '#87CEEB',
'slateblue': '#6A5ACD',
'slategray': '#708090',
'snow': '#FFFAFA',
'springgreen': '#00FF7F',
'steelblue': '#4682B4',
'tan': '#D2B48C',
'teal': '#008080',
'thistle': '#D8BFD8',
'tomato': '#FF6347',
'turquoise': '#40E0D0',
'violet': '#EE82EE',
'wheat': '#F5DEB3',
'white': '#FFFFFF',
'whitesmoke': '#F5F5F5',
'yellow': '#FFFF00',
'yellowgreen': '#9ACD32'}
  • marker: 标记样式

在这里插入图片描述

  • edgecolors: 轮廓颜色,参数形式和color类似
  • alpha: 透明度,值在[0, 1]范围内,1表示不透明,0表示透明
  • linewidths: 线宽,表示标记边缘的宽度,默认是"face"
  • cmap: 自定义色彩盘,实际上就是一个三列的矩阵,shape为 [N,3][N, 3][N,3],一个实例可以参考matplotlib使用自己想要的color map

annotate(s, xy, *args, **kwargs)
函数用于在图形上给数据点添加文本注解,而且支持带箭头的划线工具,方便我们在合适的位置添加描述信息。具体的内容可以参考Matplotlib中的annotate用法
参数:

  • s: 注释文本中的内容
  • color: 注释文本的颜色
  • xy: 被注释的坐标点,二维元组形式(x, y)
  • xytext: 注释文本的坐标点,也是二维元组(x, y)形式
  • xycoords: 被注释的坐标系属性,允许输入的值如下图:
    在这里插入图片描述
  • textcoords: 注释文本的坐标系属性,默认与xycoords属性值相同,除了允许输入xycoords的属性值,还允许输入以下两种:

在这里插入图片描述

  • arrowprops: 用于标注的箭头的样式,这个参数是一个dict类型的数据。如果该属性为空,则会在注释文本和被注释点之间画一个箭头。箭头的样式可以通过 arrowstyle 关键字来指定默认的可选类型, arrowstyle 关键字包含的默认类型包括以下:
    在这里插入图片描述
    如果没有 arrowstyle 关键字,则箭头的样式可以由以下关键字指定(注意 arrowstyle 和以下关键字不能同时存在)
    在这里插入图片描述
    箭头、坐标点和注释文本之间的关系属性包括如下图。其中connectionstyle属性用于控制注释点和注释文本之间的连接线的属性,比如弧度,角度之类的信息,这里还不是太清楚。
    在这里插入图片描述
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
# 调整图像的脊柱
ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left') # 选定y轴
ax.spines['left'].set_position(('data', 0))
# 在2*np.pi/3的位置给两条函数曲线加上一个注释
t = 2 * np.pi / 3
plt.plot([t, t], [0, np.cos(t)], color='blue',
linewidth=2.5,linestyle=' -')
scatter([t, ], [np.cos(t), ], 50, color='blue')
annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}
{2}$',
xy=(t, np.sin(t)), xycoords='data',
xytext=(+10, +30), textcoords='offset
points', fontsize=16,
arrowprops=dict(arrowstyle="->",
connectionstyle="arc3,rad=.2"))
plot([t,t],[0,np.sin(t)], color ='red',
linewidth=2.5, linestyle=" -")
scatter([t,],[np.sin(t),], 50, color ='red')
annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}
{2}$',color='green',
xy=(t, np.cos(t)), xycoords='data',
xytext=(-90, -50), textcoords='offset
points', fontsize=16,
arrowprops=dict(arrowstyle="->",
connectionstyle="arc3,rad=.2")) # arc, angle,
armA, rad
show()

在这里插入图片描述

9 子图

图像的属性包括以下几个:
在这里插入图片描述

from pylab import *
'''
subplot()函数的参数中,除最后一维的其他维表示子图的大小,最
后一维表示当前子图在图像中的位置,如下实例,在2*2的网格里,
第四个子图为(2, 2, 4)
创建横跨多个位置的子图用gridspec实现
'''
"""
添加多个固定大小的子图:
fig = plt.figure(figsize=(10, 10), dpi=80,
facecolor='red')
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 4)
ax1.plot() .
ax2.plot() .
"""
subplot(2,2,1)
xticks([]), yticks([])
text(0.5,0.5,
'subplot(2,2,1)',ha='center',va='center',size=20,
alpha=.5)
subplot(2,2,2)
xticks([]), yticks([])
text(0.5,0.5,
'subplot(2,2,2)',ha='center',va='center',size=20,
alpha=.5)
subplot(2,2,3)
xticks([]), yticks([])
text(0.5,0.5,
'subplot(2,2,3)',ha='center',va='center',size=20,
alpha=.5)
subplot(2,2,4)
xticks([]), yticks([])
text(0.5,0.5,
'subplot(2,2,4)',ha='center',va='center',size=20,
alpha=.5)
# savefig(' ./figures/subplot-grid.png', dpi=64)
show()

在这里插入图片描述

from pylab import *
import matplotlib.gridspec as gridspec
# gridspec的用法,可以使图像横跨多个坐标
G = gridspec.GridSpec(3, 3)
axes_1 = subplot(G[0, :])
xticks([]), yticks([])
text(0.5,0.5, 'Axes
1',ha='center',va='center',size=24,alpha=.5)
axes_2 = subplot(G[1,:-1])
xticks([]), yticks([])
text(0.5,0.5, 'Axes
2',ha='center',va='center',size=24,alpha=.5)
axes_3 = subplot(G[1:, -1])
# 确定了这个子图的位置之后,就可以直接在上面画图,直到创建了
下个新的子图
x = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
#xticks([]), yticks([])
#text(0.5,0.5, 'Axes
3',ha='center',va='center',size=24,alpha=.5)
axes_4 = subplot(G[-1,0])
xticks([]), yticks([])
'''
text()函数用于在图像上的特定位置加上一些文本,用于注释
'''
text(0.5,0.5, 'Axes
4',ha='center',va='center',size=24,alpha=.5)
axes_5 = subplot(G[-1,-2])
xticks([]), yticks([])
text(0.5,0.5, 'Axes
5',ha='center',va='center',size=24,alpha=.5)
#plt.savefig(' ./figures/gridspec.png', dpi=64)
show()

在这里插入图片描述

from pylab import *
'''
使用axes()函数来确定当前子图的位置和大小,参数为一个
list[x, y, width, height],
x,y为当前子图的左下角坐标位置,width为子图的宽度,
height为子图的高度
'''
axes([0.1,0.1,0.8,0.8])
xticks([]), yticks([])
text(0.6,0.6,
'axes([0.1,0.1,.8,.8])',ha='center',va='center',s
ize=20,alpha=.5)
axes([0.2,0.2,.3,.3])
x = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
# xticks([]), yticks([])
# text(0.5,0.5,
'axes([0.2,0.2,.3,.3])',ha='center',va='center',s
ize=16,alpha=.5)
# plt.savefig(" ./figures/axes.png",dpi=64)
show()

在这里插入图片描述

from pylab import *
axes([0.1,0.1,.5,.5])
xticks([]), yticks([])
text(0.1,0.1,
'axes([0.1,0.1,.5,.5])',ha='left',va='center',siz
e=16,alpha=.5)
axes([0.2,0.2,.5,.5])
xticks([]), yticks([])
text(0.1,0.1,
'axes([0.2,0.2,.5,.5])',ha='left',va='center',siz
e=16,alpha=.5)
axes([0.3,0.3,.5,.5])
x = np.linspace(-np.pi, np.pi, 256,
endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
# xticks([]), yticks([])
# text(0.1,0.1,
'axes([0.3,0.3,.5,.5])',ha='left',va='center',siz
e=16,alpha=.5)
axes([0.4,0.4,.5,.5])
xticks([]), yticks([])
text(0.1,0.1,
'axes([0.4,0.4,.5,.5])',ha='left',va='center',siz
e=16,alpha=.5)
# plt.savefig(" ./figures/axes-2.png",dpi=64)
show()

最后

这里整理了完整的文档与技巧,有需要的同学看下面,另外,如果没有美赛经验想要获奖,欢迎咨询哦~
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

CentOS7安装部署Zookeeper

文章目录 CentOS7安装部署Zookeeper一、前言1.简介2.架构3.集群角色4.特点5.环境 二、正文1.部署服务器2.基础环境1)主机名2)Hosts文件3)关闭防火墙4)JDK 安装部署 3.单机部署1)下载和解压2)配置文件3&…

第一讲:BeanFactory和ApplicationContext

BeanFactory和ApplicationContext 什么是BeanFactory 它是ApplicationContext的父接口它才是Spring的核心容器,主要的ApplicationContext实现都组合了它的功能 BeanFactory能做什么? 表面上看BeanFactory的主要方法只有getBean(),实际上控制反转、基…

路由器IP地址及直连实验

实验目的: (1)理解IP地址; (2)掌握路由器端口IP地址的配置方法; (3)理解路由器的直连网络。 实验器材: Cisco packet 实验内容: 实验步骤&a…

【ArcGIS微课1000例】0083:地震灾害图件制作之土壤类型分布图

本文基于1:400万矢量土壤图,制作甘肃积石山6.2级地震100km范围内土壤类型分布图。 文章目录 一、土壤分布图预览二、数据集来源及简介三、土壤分布图制作一、土壤分布图预览 二、数据集来源及简介 1. 数据来源 数据集为1:400万中国土壤图,1:400万中国土壤图(2000)由中国科…

大创项目推荐 深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 *…

模式识别与机器学习-集成学习

集成学习 集成学习思想过拟合与欠拟合判断方法 K折交叉验证BootstrapBagging随机森林的特点和工作原理: BoostingAdaBoost工作原理:AdaBoost的特点和优点:AdaBoost的缺点: Gradient Boosting工作原理:Gradient Boostin…

android 13.0 Launcher3长按app弹窗设置为圆角背景功能实现一

1.前言 在13.0的系统ROM定制化开发中,在进行一些Launcher3的定制化开发中,在使用app的弹窗的功能时,会弹出应用信息和微件之类的内容,所以在定制需求中,需要默认设置为圆角背景,接下来就来分析下相关功能的实现 如图: 2.Launcher3长按app弹窗设置为圆角背景功能实现的核…

【MYSQL】-函数

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

AcWing 1076. 迷宫问题(最短路模型)

题目链接 活动 - AcWing本课程系统讲解常用算法与数据结构的应用方式与技巧。https://www.acwing.com/problem/content/description/1078/ 来源 《信息学奥赛一本通》, kuangbin专题 , POJ3984 代码 #include <cstring> #include <iostream> #include <alg…

【网络安全常用术语解读】SCAP详解

本文主要介绍什么是SCAP&#xff0c;SCAP的产生背景是怎样的&#xff0c;SCAP有什么用途&#xff0c;有哪些组件&#xff0c;各个组件的用途是什么&#xff1f; SCAP产生背景 由于计算机和网络技术的快速发展&#xff0c;越来越多的软件和系统被应用到企业和机构中&#xff0c…

迭代归并:归并排序非递归实现解析

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《数据结构&算法》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! &#x1f4cb; 前言 归并排序的思想上我们已经全部介绍完了&#xff0c;但是同时也面临和快速排序一样的问题那就是递…

通信原理课设(gec6818) 007:语音识别

目录 1、去科大讯飞官网下载对应的sdk 2、科大讯飞文件夹的意思 3、配置ARM的录音环境 4、编程实现语音识别 我们的需求是将一个语音文件从客户端传到服务器&#xff0c;因此我们最好是选用tcp 现在市面上面常用的语音识别解决方案为&#xff1a;科大讯飞c和百度c 离…

龙芯3A5000上安装使用QQ

原文链接&#xff1a;龙芯3A5000上安装使用QQ hello&#xff0c;大家好啊&#xff01;今天我要给大家带来的是在龙芯3A5000处理器上安装使用QQ的文章。近期&#xff0c;腾讯发布了最新版本的QQ&#xff0c;值得一提的是&#xff0c;这一版本增加了对Linux系统下龙芯架构的支持。…

KG+LLM(一)KnowGPT: Black-Box Knowledge Injection for Large Language Models

论文链接&#xff1a;2023.12-https://arxiv.org/pdf/2312.06185.pdf 1.Background & Motivation 目前生成式的语言模型&#xff0c;如ChatGPT等在通用领域获得了巨大的成功&#xff0c;但在专业领域&#xff0c;由于缺乏相关事实性知识&#xff0c;LLM往往会产生不准确的…

项目记录:利用Redis实现缓存以提升查询效率

一、概述 当我们查询所有数据时&#xff0c;如果缓存中没有&#xff0c;则去数据库查询&#xff0c;如果有&#xff0c;直接查缓存的数据就行。注意定期更新缓存数据。 二、主体代码 private static final String ROOM_SCHEDULES_HASH "RoomSchedules";Overridepu…

HTML---JavaScript基础

文章目录 目录 文章目录 本章目标 一.JavaScript基础 概述 特点 JavaScript 基本机构 语法 网页中引用JavaScript的方式 二. JavaScript核心语法 变量 ​编辑 数据类型 数组 练习 本章目标 掌握JavaScript的组成掌握JavaScript的基本语法会定义和使用函数会使用工具进行…

引领手游技术潮流:武汉灰京文化的卓越技术创新与市场推广支持

在数字娱乐领域&#xff0c;手游行业正蓬勃发展&#xff0c;为数以亿计的玩家提供了丰富的娱乐选择。武汉灰京文化&#xff0c;作为该领域的佼佼者&#xff0c;以其强大的技术创新和全面的市场推广支持&#xff0c;为合作伙伴的成功铺平了道路&#xff0c;不仅提升了游戏质量&a…

TV端Web页面性能优化实践

01 背景 随着互联网技术的持续创新和电视行业的高速发展&#xff0c;通过电视观看在线视频已经逐渐成为大众的重要娱乐方式。奇异果App作为在TV设备上用户活跃度最高的应用之一&#xff0c;为广大用户提供了丰富的内容播放服务&#xff0c;除此之外&#xff0c;同样有会员运营、…

【Kubernetes】什么是 kubectl ?

什么是 kubectl &#xff1f; 1.什么是 kubectl &#xff1f;2.Kubernetes 内部结构3.Kubernetes API 的作用 1.什么是 kubectl &#xff1f; 在学习如何更有效地使用 kubectl 之前&#xff0c;您应该对它是什么以及它如何工作有一个基本的了解。从用户的角度来看&#xff0c;…

Javaweb-servlet

一、servlet入门 1.Servlet介绍 (1)什么是Servlet Servlet是Server Applet的简称&#xff0c;是用Java编写的是运行在 Web 服务器上的程序&#xff0c;它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet&#…