首页 > 编程语言 >Python包——Matplotlib

Python包——Matplotlib

时间:2024-10-28 08:51:06浏览次数:6  
标签:set 函数 Python 子图 Matplotlib plt matplotlib 绘制

        Matplotlib 是 Python 中一个广泛使用的绘图库,它能够生成高质量的图表和图形。它提供了一个类似于 MATLAB 的绘图框架,使得数据可视化变得简单和直观。下面是一些关于如何使用 Matplotlib 的基础知识和示例。

1.常用API

1.1 绘图类型

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

1.2 Image 函数

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

1.3 Axis 函数

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

1.4 Figure 函数

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

关闭画布窗口

2.pylab 模块

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

优点

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

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

缺点

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

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

3.常用函数

3.1 plot 函数

        pylab.plot 是一个用于绘制二维图形的函数。它可以根据提供的 x 和 y 数据点绘制线条和/或标记。它位于 matplotlib.pyplot 模块中,通常通过 plt.plot() 的形式被调用,其中 plt 是matplotlib.pyplot 的常用别名。plot 函数可以绘制线性和非线性数据关系,以及离散点。通过调整 plot 函数的参数,用户可以自定义线条的样式、颜色、标记等属性。

import matplotlib.pyplot as plt  
  
# 数据  
x = [1, 2, 3, 4, 5]  
y = [1, 4, 9, 16, 25]  
  
# 绘制图表  
plt.plot(x, y)  
  
# 显示图表  
plt.show()

在这个例子中,x 和 y 是两个列表,分别代表横坐标和纵坐标的数据点。plt.plot(x, y) 会根据这些数据点绘制一条折线图。

常用参数

  • linestyle 或 ls:指定线条的样式,如实线(-)、虚线(--)、点线(:)或点划线(-.)。
  • color 或 c:指定线条的颜色,可以是字符串形式的颜色名(如 'red''blue'),也可以是 RGB 或 RGBA 元组。
  • marker:指定数据点的标记样式,如点(.)、圆圈(o)、星号(*)等。
  • markersize 或 ms:指定数据点标记的大小。
  • label:为线条指定一个标签,用于图例的显示。
import matplotlib.pyplot as plt  
  
# 数据  
x = [1, 2, 3, 4, 5]  
y1 = [1, 4, 9, 16, 25]  
y2 = [2, 3, 5, 7, 11]  
  
# 绘制两条线条,并设置不同的样式和颜色  
plt.plot(x, y1, label='y1', linestyle='--', color='blue', marker='o')  
plt.plot(x, y2, label='y2', linestyle='-', color='red', marker='*')  
  
# 添加标题和坐标轴标签  
plt.title("Example Plot")  
plt.xlabel("x")  
plt.ylabel("y")  
  
# 添加图例  
plt.legend()  
  
# 显示图表  
plt.show()

3.2 figure 函数

  figure 函数是用于创建一个新的图形窗口或激活一个已存在的图形窗口的主要函数。这个函数位于 matplotlib.pyplot 模块中,并且通常通过 plt.figure() 的形式被调用,figure 函数允许用户指定图形的大小、分辨率、背景颜色等属性,并且返回一个 Figure 对象,该对象可以被用来进一步定制图形,如添加子图(axes)、标题、图例等。

常用参数

  • num:图形的编号或名称。如果指定了一个已经存在的编号或名称,那么 figure 函数将激活那个图形窗口,而不是创建一个新的。
  • figsize:一个元组,指定图形的大小(宽度,高度),单位为英寸。
  • dpi:图形的分辨率,即每英寸的点数(dots per inch)。
  • facecolor:图形的背景颜色。
  • edgecolor:图形的边框颜色。
import matplotlib.pyplot as plt  
  
# 创建一个新的图形窗口,指定大小为 8x6 英寸,分辨率为 100 dpi  
fig = plt.figure(figsize=(8, 6), dpi=100)  
  
# 在图形窗口中添加一个子图,并绘制数据  
ax = fig.add_subplot(111)  
ax.plot([1, 2, 3, 4], [1, 4, 9, 16], label='y=x^2')  
  
# 添加标题和坐标轴标签  
ax.set_title('Example Plot')  
ax.set_xlabel('x')  
ax.set_ylabel('y')  
  
# 添加图例  
ax.legend()  
  
# 显示图形  
plt.show()

3.3 标题中文乱码

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

局部处理:

from matplotlib.font_manager import _rebuild
_rebuild()
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

全局处理:

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

import matplotlib
print(matplotlib.matplotlib_fname())

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

同时,设置 axes.unicode_minus 为 False 以正常显示负号。

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

from matplotlib.font_manager import _rebuild
_rebuild()

3.4 subplot 函数

  subplot 函数是用于在同一个图形窗口中创建多个子图(axes)的函数。subplot 函数允许用户指定子图的布局(即行数、列数以及当前子图的位置),并在指定的位置上创建一个子图。

subplot 函数的基本用法是 plt.subplot(nrows, ncols, index),其中:

  • nrows:子图的行数。
  • ncols:子图的列数。
  • index:当前子图的位置编号,从左到右、从上到下开始计数,编号从 1 开始。

        另外,subplot 函数也接受一个三位数的快捷方式,其中第一个数字是行数(十位),第二个数字是列数(个位),第三个数字是位置编号(百位上的数字忽略,只考虑个位和十位)。例如,plt.subplot(235) 相当于 plt.subplot(2, 3, 5),表示在一个 2 行 3 列的子图布局中创建第 5 个子图。

import matplotlib.pyplot as plt  
  
# 使用三位数快捷方式创建一个 2 行 2 列的子图布局,并在第 1 个位置创建子图  
plt.subplot(221)  
plt.plot([1, 2, 3], [1, 4, 9])  
  
# 在第 2 个位置创建子图  
plt.subplot(222)  
plt.plot([1, 2, 3], [1, 2, 3])  
  
# 在第 3 个位置创建子图  
plt.subplot(223)  
plt.plot([1, 2, 3], [9, 4, 1])  
  
# 在第 4 个位置创建子图  
plt.subplot(224)  
plt.plot([1, 2, 3], [3, 2, 1])  
  
# 显示图形  
plt.show()

在这个例子中,我们使用三位数快捷方式创建了一个 2 行 2 列的子图布局,并在每个位置上分别绘制了一条折线图。

3.5 subplots 函数

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

subplots 函数的基本用法是 plt.subplots(nrows=1, ncols=1, figsize=None, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw),其中:

  • nrows 和 ncols 分别指定子图的行数和列数。
  • figsize 是一个元组,指定图形窗口的大小(宽度,高度),单位为英寸。
  • sharex 和 sharey 分别指定是否共享 x 轴和 y 轴。
  • squeeze 指定当 nrows=1 或 ncols=1 时,是否返回单个 Axes 对象而不是 Axes 数组。
  • subplot_kw 是一个字典,用于传递给每个子图的 add_subplot 方法的关键字参数。
  • gridspec_kw 是一个字典,用于传递给 GridSpec 构造函数的关键字参数,以创建更复杂的子图布局。
  • **fig_kw 是传递给 Figure 构造函数的其他关键字参数。

subplots 函数返回一个元组 (fig, axs),其中 fig 是 Figure 对象,代表图形窗口,axs 是一个数组或单个 Axes 对象(取决于 nrowsncols 和 squeeze 参数),代表子图。

 

import matplotlib.pyplot as plt  
  
# 创建一个包含 2 行 2 列子图的图形窗口  
fig, axs = plt.subplots(2, 2)  
  
# 在第一个子图上绘制数据  
axs[0, 0].plot([1, 2, 3], [1, 4, 9])  
  
# 在第二个子图上绘制数据  
axs[0, 1].plot([1, 2, 3], [1, 2, 3])  
  
# 在第三个子图上绘制数据  
axs[1, 0].plot([1, 2, 3], [9, 4, 1])  
  
# 在第四个子图上绘制数据  
axs[1, 1].plot([1, 2, 3], [3, 2, 1])  
  
# 调整子图之间的间距(可选)  
plt.tight_layout()  
  
# 显示图形  
plt.show()

在这个例子中,我们创建了一个包含 2 行 2 列子图的图形窗口,并在每个子图上分别绘制了一条折线图。我们还使用了 plt.tight_layout() 函数来调整子图之间的间距,以确保它们不会重叠。

3.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。

3.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 等。

3.8 xscale 和 yscale 函数

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

语法

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

参数

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

import matplotlib.pyplot as plt  
import numpy as np  
  
# 创建数据  
x = np.linspace(1, 100, 100)  
y = np.log10(x)  
  
# 创建图形和子图  
fig, ax = plt.subplots()  
  
# 绘制数据  
ax.plot(x, y)  
  
# 设置 x 轴为对数比例尺  
ax.xscale('log')  
  
# 显示图形  
plt.show()

在这个例子中,我们创建了一个线性空间的数据集 x,并计算了它的对数 y。然后,我们创建了一个图形和一个子图,并在子图上绘制了数据。最后,我们使用 ax.xscale('log') 将 x 轴的比例尺设置为对数。

3.9 set_xlim 和 set_ylim 函数

   set_xlim 和 set_ylim 函数用于设置图形中 x 轴和 y 轴的显示范围。这两个函数是 Axes 对象的方法,允许您指定轴的最小值和最大值,从而控制图形上数据的显示区域。

set_xlim 函数用于设置 x 轴的显示范围。它的一般用法是:

ax.set_xlim(left, right, emit=True, auto=False, **kwargs)
  • ax 是一个 Axes 对象,代表图形中的一个子图。
  • left 和 right 分别指定 x 轴的最小值和最大值。
  • emit 是一个布尔值,指定是否在设置范围时触发事件(通常不需要更改)。
  • auto 是一个布尔值,如果设置为 True,则会自动计算并设置 x 轴的范围(通常不使用,因为直接指定了范围)。
  • **kwargs 是传递给方法的其他关键字参数(通常不使用)。

set_ylim 函数与 set_xlim 类似,但用于设置 y 轴的显示范围。参数与 set_xlim 相同,但作用于 y 轴。

3.10 set_xticks 和 set_yticks 函数

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

set_xticks 函数用于设置 x 轴的刻度位置。它的一般用法是:

ax.set_xticks(ticks, minor=False, **kwargs)
  • ax 是一个 Axes 对象,代表图形中的一个子图。
  • ticks 是一个列表或数组,指定 x 轴上应该显示的刻度值。
  • minor 是一个布尔值,如果设置为 True,则设置的是次要刻度(通常不需要更改,因为默认操作的是主要刻度)。
  • **kwargs 是传递给方法的其他关键字参数,可以用于设置刻度标签等其他属性(通常不使用,因为刻度标签通过 set_xticklabels 设置)

set_yticks 函数与 set_xticks 类似,但用于设置 y 轴的刻度位置,参数与 set_xticks 相同,但作用于 y 轴。

import matplotlib.pyplot as plt  
import numpy as np  
  
# 创建数据  
x = np.linspace(0, 10, 11)  # 注意这里我们生成了11个点,包括端点  
y = x ** 2  
  
# 创建图形和子图  
fig, ax = plt.subplots()  
  
# 绘制数据  
ax.plot(x, y, 'o-')  
  
# 设置 x 轴和 y 轴的刻度位置  
ax.set_xticks([0, 2, 4, 6, 8, 10])  
ax.set_yticks([0, 4, 16, 36, 64, 100])  
  
# 显示图形  
plt.show()

        在这个例子中,我们创建了一个从 0 到 10 的线性空间的数据集 x(包含11个点),并计算了它的平方值 y。然后,我们创建了一个图形和一个子图,并在子图上绘制了数据点。最后,我们使用 ax.set_xticks([0, 2, 4, 6, 8, 10]) 和 ax.set_yticks([0, 4, 16, 36, 64, 100]) 分别设置了 x 轴和 y 轴的刻度位置。

3..11 twinx 和 twiny 函数

   twinx 和 twiny 函数用于创建一个共享相同 x 轴或 y 轴但具有独立 y 轴或 x 轴的“孪生”轴。这些函数非常有用于在同一图形中绘制不同比例尺或不同数据类型的两条或多条曲线,而不需要使用不同的子图。

twinx 函数用于创建一个共享 x 轴但具有独立 y 轴的孪生轴。它的一般用法是:

ax2 = ax1.twinx()
  • ax1 是原始的 Axes 对象。
  • ax2 是返回的新 Axes 对象,它与 ax1 共享 x 轴,但有自己的 y 轴。

iny 函数与 twinx 类似,但用于创建一个共享 y 轴但具有独立 x 轴的孪生轴,参数与 twinx 相同,但创建的是共享 y 轴而独立 x 轴的孪生轴。

import matplotlib.pyplot as plt  
import numpy as np  
  
# 创建数据  
x = np.linspace(0, 10, 100)  
y1 = np.sin(x)  
y2 = np.exp(x / 20)  # 一个增长更快的函数,需要不同的比例尺  
  
# 创建图形和子图  
fig, ax1 = plt.subplots()  
  
# 在 ax1 上绘制第一条曲线  
ax1.plot(x, y1, 'b-')  
ax1.set_xlabel('X 轴')  
ax1.set_ylabel('sin(x)', color='b')  
  
# 创建共享 x 轴的孪生轴  
ax2 = ax1.twinx()  
  
# 在 ax2 上绘制第二条曲线  
ax2.plot(x, y2, 'r-')  
ax2.set_ylabel('exp(x/20)', color='r')  
  
# 显示图形  
plt.show()

3.12各种类型的图

        在 Matplotlib 库中,柱状图、直方图、饼图、折线图和散点图是五种常用的数据可视化图表类型。每种图表都有其特定的用途和绘制方法。以下是这些图表类型的简要介绍和绘制示例:

 柱状图(Bar Chart)

        柱状图用于显示不同类别的数据之间的比较。每个类别通常用一个垂直或水平的柱子表示,柱子的高度或长度代表该类别的数值。

绘制示例


import matplotlib.pyplot as plt 
import numpy as np 
	

categories = ['A', 'B', 'C', 'D'] 
values = [4, 7, 1, 8] 
plt.bar(categories, values) 
plt.xlabel('Categories') 
plt.ylabel('Values') 
plt.title('Bar Chart Example') 

plt.show()

 直方图(Histogram)

        直方图用于显示数据的分布情况。它将数据分成一系列连续的区间(或“桶”),并计算每个区间中的数据点数量。直方图通常用于显示连续变量的频率分布。

绘制示例

import matplotlib.pyplot as plt  
import numpy as np  
  
data = np.random.randn(1000)  # 生成正态分布的数据  
  
plt.hist(data, bins=30, edgecolor='black')  
plt.xlabel('Value')  
plt.ylabel('Frequency')  
plt.title('Histogram Example')  
plt.show()

饼图(Pie Chart)

        饼图用于显示一个整体中各部分所占的比例。整个饼图代表100%或某个总量,而饼图中的每个部分代表该总量中的一个组成部分。

绘制示例

import matplotlib.pyplot as plt  
  
sizes = [15, 30, 45, 10]  # 各部分的大小  
labels = ['A', 'B', 'C', 'D']  # 各部分的标签  
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']  # 各部分的颜色  
explode = (0.1, 0, 0, 0)  # 突出显示第一个部分  
  
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)  
plt.axis('equal')  # 确保饼图是圆形的  
plt.title('Pie Chart Example')  
plt.show()

折线图(Line Chart)

        折线图用于显示数据随时间或其他连续变量的变化趋势。数据点通过直线或曲线连接起来,以显示数据之间的连续性和趋势。

绘制示例

import matplotlib.pyplot as plt  
import numpy as np  
  
x = np.linspace(0, 10, 100)  
y = np.sin(x)  
  
plt.plot(x, y, label='sin(x)')  
plt.xlabel('X axis')  
plt.ylabel('Y axis')  
plt.title('Line Chart Example')  
plt.legend()  
plt.show()

散点图(Scatter Plot)

        散点图用于显示两个变量之间的关系。每个数据点表示一个观测值,其位置由两个变量的值决定。散点图通常用于检查两个变量之间是否存在某种关系或趋势。

绘制示例

import matplotlib.pyplot as plt  
import numpy as np  
  
x = np.random.rand(50)  
y = np.random.rand(50)  
  
plt.scatter(x, y, color='blue', alpha=0.5)  
plt.xlabel('X axis')  
plt.ylabel('Y axis')  
plt.title('Scatter Plot Example')  
plt.show()

标签:set,函数,Python,子图,Matplotlib,plt,matplotlib,绘制
From: https://blog.csdn.net/2301_77084486/article/details/143191385

相关文章

  • Python算法学习2-序列
    序列名[下标]或序列名[-序号]引用序列中各个元素s="abcdefg"s[0]#'a's[6]#'g's[-1]#'g's[-7]#'a's[-4]#'d'列表len()可以求列表中元素个数list()可将迭代类型转化成列表s='abcdefg's=list(s)#s=['a','b','......
  • (赠源码)基于python+HTML5+flask+mysql技术的酒店在线系统的设计与实现89223-计算机毕业
    目录1绪论1.1课题背景及意义1.1.1课题背景1.1.2课题意义1.2 研究现状1.2.1国外研究现状1.2.2 国内研究现状2 开发工具和开发平台2.1关键性知识及技术简介2.1.1HTML5介绍2.1.2 Flask框架概述2.2Python简介2.3 开发环境及工具3系统分......
  • 【已解决,含泪总结】非root权限在服务器Ubuntu18.04上配置python和torch环境,代码最终成
    配置torch环境pip升级因为一些包安装不成功可能和pip版本有关,所以先升级pip吸取之前python有多个版本的经验,所以我指定了Python版本的pip进行升级就是python3.8版本:/home/某某/Python3.8/bin/python3.8(要换成你实际的python位置)/home/某某/Python3.8/bin/python3.8-......
  • Python实现摇号系统
    1.引言摇号系统在现代社会中有广泛的应用,特别是在车牌摇号、房屋摇号等公共资源分配领域。摇号系统的主要目的是通过随机分配的方式,确保资源的公平、公正分配。本文将详细介绍如何使用Python实现一个简单的摇号系统,包括系统的准备工作、基础理论知识、详细步骤、常见问题解答以及......
  • python爬虫实战案例——抓取B站视频,不同清晰度抓取,实现音视频合并,超详细!(内含完整代码)
    文章目录1、任务目标2、网页分析3、代码编写1、任务目标目标网站:B站视频(https://www.bilibili.com/video/BV1se41117WP/?vd_source=e8e376ccbc5aa4cfd88e6a7917adfd1a),用于本文测验要求:抓取该网址下的视频,将其存入本地,如下:2、网页分析在分析网页前,我们需要明白......
  • python数学建模习题六
    学号后四位3026,1班6.1importnetworkxasnximportmatplotlib.pyplotaspltL1=[(1,2),(1,3),(1,4),(2,3),(2,6),(3,4),(4,5),(5,6)]G1=nx.Graph();G1.add_nodes_from(range(1,7))G1.add_edges_from(L1);posl=nx.shell_layout(G1)plt.subplot(131......
  • Python 函数的返回值定义语法
    什么是函数返回值?函数在执行完成后,返回给调用者的结果返回值的应用语法:使用关键字:return来返回结果def函数(参数...):函数体return返回值变量=函数(参数)注意:函数体在遇到return后就结束了,所以写在return后的代码不会执行练习:#定义一个函数,完成两......
  • python可以对excel进行那些操作
    根据标题“Python可以对Excel进行哪些操作”,Python对Excel的操作能力强大,涵盖数据读写、格式设置、图表创建、数据分析和自动化处理等功能。例如,1、读取和写入数据:Python可以读取Excel文件中的数据,并将数据写入到Excel中;2、格式设置:Python能够调整字体、颜色、单元格的大小和排列;3......
  • 中值滤波python代码
    文章目录一、中值滤波二、代码实现一、中值滤波中值滤波使用了局部邻域(窗口)里的中值来代替上述局部平均法中的局部平均值。即将以该点为中心的某个窗口框住的各像素的中间值作为处理后图象中该点像素的值。能有效处理椒盐噪声。二、代码实现下图代码实现了中值滤波对......
  • 100种算法【Python版】第14篇——Pollard‘s Rho 质因数分解算法
    本文目录1基本原理2算法步骤3数学示例4python代码1基本原理Pollard’sRho算法是由约翰·波拉德(JohnPollard)于1975年提出的一种用于整数因数分解的概率算法。它以高效性和实现简洁著称。核心原理伪随机序列生成:利用一个简单的迭代函数生成一个伪随机......