学代码的网站,手机网站解析,丹阳是哪里,山东省建设资格中心网站一、Figure的用法 在 Matplotlib 中#xff0c; Figure对象是整个绘图的顶级容器#xff0c;它是所有绘图元素的基础#xff0c; 提供了一个用于绘制图形的画布空间。 在 Matplotlib 中#xff0c; Axes对象是进行数据绘制和设置坐标轴等操作的核心区域#xff0c;它与 Fi…一、Figure的用法 在 Matplotlib 中 Figure对象是整个绘图的顶级容器它是所有绘图元素的基础 提供了一个用于绘制图形的画布空间。 在 Matplotlib 中 Axes对象是进行数据绘制和设置坐标轴等操作的核心区域它与 Figure对象紧密相关共同构建了完整的绘图体系。 创建Figure对象和 Axes 1、隐式创建:当直接调用绘图函数(如plt.plot())而没有预先创建 Figure 对象时Matplotlib 会自动隐式创建一个Figure对象和一个Axes对象。 2、显式创建使用函数来手动创建一个 Figure对象。 二、创建Figure对象
2.1、figure 在Matplotlib 中 figure 函数用于创建一个新的图形窗口或者获取当前活跃的图 形窗口。每个图形窗口可以包含一个或多个坐标轴Axes可以在其上绘制数 据。
plt.figure(numNone, figsizeNone, dpiNone, facecolorNone, edgecolorNone, frameonTrue, clearFalse, **kwargs)
名称描述num可选参数指定图形窗口的编号或名称。如果 num 为 新的图形窗口。如果 None则创建一个 num 已经存在则获取该图形窗口。figsize可选参数指定图形窗口的大小以英寸为单位。默认为None使用 Matplotlib 的默认值。dpi可选参数指定图形的分辨率以点每英寸为单位。默认为 None使用 Matplotlib 的默认值。facecolor可选参数指定图形窗口的背景颜色。默认None使用为 Matplotlib 的默认值。edgecolor可选参数指定图形窗口的边缘颜色。默认为 None使用 Matplotlib 的默认值。frameon可选参数布尔值指定是否绘制图形窗口的边框。默认为Trueclear可选参数布尔值指定是否清除图形窗口中的内容。默认为False**kwargs其他关键字参数用于进一步自定义图形窗口的属性。
import matplotlib.pyplot as pltplt.plot([0, 1], [1, 2])
fig plt.figure(num1, clearTrue)
plt.plot([0, 1], [2, 3])plt.show()2.2、subplots 在Matplotlib中 subplots用于创建包含多个子图subplot的图形。这允许你在 同一个 Figure 对象内组织多个图表从而方便地比较数据或者展示多方面的信息。
fig, axs matplotlib.pyplot.subplots(nrows1, ncols1, sharexFalse, shareyFalse, squeezeTrue, width_ratiosNone, height_ratiosNone, subplot_kwNone, gridspec_kwNone)
名称描述nrows1子图的行数设置为1表示创建一个子图的行。ncols1子图的列数设置为1表示创建一个子图的列。sharexFalse布尔值设置为False表示子图之间不共享x轴刻度。每个子图 都有自己的x轴。shareyFalse布尔值设置为False表示子图之间不共享y轴刻度。每个子图 都有自己的y轴。squeezeTrue布尔值设置为True表示如果只创建了一个子图则返回一 个子图对象而不是一个只包含一个子图对象的数组。width_ratiosNone列宽比例的序列设置为None表示默认比例。如果提供 序列它将用于调整各列的宽度比例。height_ratiosNone行高比例的序列设置为None表示默认比例。如果提供 序列它将用于调整各行的高度比例。subplot_kwNone字典设置为None表示没有额外的关键字参数传递给 add_subplot调用。如果需要可以传递一个字典来设置子图的属性。gridspec_kwNone字典设置为None表示没有额外的关键字参数传递给 GridSpec对象。如果需要可以传递一个字典来控制子图的布局。
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x np.arange(-10, 10, 0.01)
y1 np.sin(x) 100
y2 np.cos(x)
y3 np.tan(x)
y4 1 / (1 np.exp(-x)) # Sigmoid function# 创建一个 2x2 的子图网格
fig, axs plt.subplots(2, 2)# 第一个子图
axs[0, 0].plot(x, y1)
axs[0, 0].set_title(Sine Wave)
axs[0, 0].set_xlabel(X-axis)
axs[0, 0].set_ylabel(Y-axis)# 第二个子图
axs[0, 1].plot(x, y2)
axs[0, 1].set_title(Cosine Wave)
axs[0, 1].set_xlabel(X-axis)
axs[0, 1].set_ylabel(Y-axis)# 第三个子图
axs[1, 0].plot(x, y3)
axs[1, 0].set_title(Tangent Wave)
axs[1, 0].set_xlabel(X-axis)
axs[1, 0].set_ylabel(Y-axis)# 第四个子图
axs[1, 1].plot(x, y4)
axs[1, 1].set_title(Sigmoid Function)
axs[1, 1].set_xlabel(X-axis)
axs[1, 1].set_ylabel(Y-axis)# 调整子图间距
plt.tight_layout()# 显示图形
plt.show() 三、常用的Figure对象的方法
3.1、add_subplot
fig.add_subplot(nrows, ncols, plot_number)
名称描述nrows子图的总行数。ncols子图的总列数。plot_number当前子图在其所在布局中的位置从1开始计数从左上角到右 下角。 该函数会返回一个 Axes 对象。 import matplotlib.pyplot as plt# 创建一个图形窗口
fig plt.figure()# 添加第一个子图位于2行1列布局中的第1个位置
ax1 fig.add_subplot(2, 1, 1)
ax1.plot([0, 1], [0, 1])
ax1.set_title(00)# 添加第二个子图位于2行1列布局中的第2个位置
ax2 fig.add_subplot(2, 1, 2)
ax2.plot([0, 1], [1, 0])
ax2.set_title(01)plt.tight_layout()# 显示图形
plt.show() 3.2、add_axes 该函数允许你在图形 Figure中的任意位置添加一个子图Axes)。与subplots 或 add_subplot 不同add_axes允许你精确地指定子图的位置和大小。
matplotlib.figure.Figure.add_axes(rect, **kwargs)
名称描述rect一个形如 [左边界, 底边界, 宽度, 高度] 的列表指定子图的位置和大 小。这些值是在归一化坐标中的其中 0 表示图形的左边界1 表示右边界0 表示底部1 表示顶部。**kwargs其他可选的关键字参数用于控制子图的属性。
import matplotlib.pyplot as plt# 创建一个图形
fig plt.figure()# 添加一个子图位置是图形左下角的1/4处大小为图形宽度的1/2和高度的1/2
ax fig.add_axes([0.5, 0.1, 0.5, 0.5])# 使用这个子图绘制一些数据
ax.plot([0, 1], [0, 1])# 显示图形
plt.show() 3.3、suptitle 该函数用于在图形 Figure上添加一个中心对齐的标题这个标题位于所有子图 Axes的顶部。使用 suptitle 可以为整个图形设置一个总标题而不仅仅是单 个子图。
matplotlib.figure.Figure.suptitle(t, **kwargs)
名称描述t字符串表示要添加的标题文本。**kwargs其他可选的关键字参数用于控制标题的样式如字体大小 fontsize、颜色 color等。
import matplotlib.pyplot as plt# 创建一个图形
fig plt.figure()# 在图形上添加两个子图
ax1 fig.add_subplot(121) # 第一个子图两行一列的第一个位置
ax2 fig.add_subplot(122) # 第二个子图两行一列的第二个位置# 使用第一个子图绘制一些数据
ax1.plot([0, 1], [0, 1])
ax1.set_title(ax1)# 使用第二个子图绘制一些数据
ax2.plot([0, 1], [1, 0])
ax2.set_title(ax2)
# 为整个图形添加一个总标题
fig.suptitle(Test Suptitle, fontsize16, colorred)# 显示图形
plt.show() 3.4、text 该函数用于在图表的任意位置添加文本通常在 的指定坐标位置上放置文本。
matplotlib.axes.Axes.text(x, y, s, **kwargs)
名称描述x, y浮点数或数组指定文本的位置坐标。s字符串要添加的文本内容。**kwargs其他可选的关键字参数用于控制文本的样式如 体大小、 color颜色、 fontsize字 horizontalalignment水平对齐方式如 ‘left’, ‘center’, ‘right’、 verticalalignment垂直对齐方式如 ‘top’, ‘center’, ‘bottom’等。
import matplotlib.pyplot as plt# 创建一个图形和一个子图
fig, ax plt.subplots()# 绘制一些数据
ax.plot([0, 1, 2], [0, 1, 0])# 在坐标 (1, 0.5) 处添加文本
ax.text(1, 0.5, Sample Text, fontsize12, colorred,horizontalalignmentright, verticalalignmenttop)# 显示图形
plt.show()
3.5、axes 在 matplotlib中如果你想要获取一个图形(Figure)中的所有轴(Axes )你可以査看 Figure 对象的 axes 属性。
import matplotlib.pyplot as plt# 创建一个图形和一个子图
fig, ax plt.subplots(2, 2)# 获取图形中的所有轴
axes fig.axes# axes 是一个包含所有轴的列表
for ax in axes:# 包含了每一个轴的x和y的相对位置(从左下角开始计算)、轴的宽度和高度(相对于整个图形)print(ax)# 显示图像
plt.show()
3.6、get_facecolor 该函数是一个用于获取轴Axes或填充区域Patch背景色的方法。具体来说 它返回一个表示颜色的 RGBA 元组其中 RGBA 分别代表红色、绿色、蓝色和 alpha透明度值。这些值通常在 0 到 1 的范围内。
import matplotlib.pyplot as plt# 创建一个图形
fig plt.figure(figsize(8, 6), facecolorblue)# 获取背景色
facecolor fig.get_facecolor()
print(facecolor)# 显示图像
plt.show()
3.7、get_dpi 该方法用于获取图形Figure对象的分辨率。
import matplotlib.pyplot as plt# 创建一个图形对象
fig plt.figure(dpi120)# 获取图形的DPI
dpi fig.get_dpi()
print(fThe DPI of the figure is: {dpi})# 显示图像
plt.show()
3.8、get_gca 该函数是 “get current axis” 的缩写它用于获取当前图形figure中的当前坐标 轴axis对象。这个函数非常有用因为它允许你访问并修改当前活动的坐标轴的 属性。
import matplotlib.pyplot as plt# 创建一个图形和坐标轴
plt.figure()
plt.plot([1, 2, 3], [1, 2, 3])# 获取当前坐标轴
ax plt.gca()# 使用坐标轴对象进行自定义
ax.set_title(Sample Plot)
ax.set_xlabel(X axis)
ax.set_ylabel(Y axis)# 显示图形
plt.show() 3.9、get_label 该方法用于获取坐标轴例如线和柱状图的标签。这个方法通常用于获取已经设 置好的标签以便于后续的检查或修改。
import matplotlib.pyplot as plt# 创建一些数据
x [1, 2, 3]
y [1, 2, 3]# 绘制线图并设置标签
line, plt.plot(x, y, labelLine 1)# 获取线的标签
label line.get_label()
print(Label of the line:, label)# 显示图形和图例
plt.legend()
plt.show() 3.10、get_size_inches 该方法用于获取图形的大小以英寸为单位。
import matplotlib.pyplot as plt# 创建一个图形对象可以指定大小宽度高度单位为英寸
fig plt.figure(figsize(8.0, 6.0))# 使用 get_size_inches() 方法获取图形的大小
size_in_inches fig.get_size_inches()
print(Size of the figure in inches:, size_in_inches)# 绘制一些数据
plt.plot([1, 2, 3], [1, 2, 3])# 显示图形
plt.show() 3.11、set_size_inches 该方法用于设置图形对象的大小单位为英寸。这个方法允许用户在创建图形后改变 其尺寸从而影响输出图像的分辨率和显示效果。
matplotlib.figure.Figure.set_size_inches(width, height, forwardTrue)
名称描述width, height浮点数指定图形的宽度和高度单位为英寸。forward布尔值默认为 True。如果为 True则在调整图形大小时同时 更新所有子图的大小和位置。如果为 False则仅改变图形的大小而不更新子 图。
import matplotlib.pyplot as plt# 创建一个图形对象
fig plt.figure(figsize(2, 2))# 使用 set_size_inches 方法设置图形的大小
fig.set_size_inches(10, 6) # 设置宽度为10英寸高度为6英寸# 绘制一些数据
plt.plot([1, 2, 3], [1, 2, 3])# 显示图形
plt.show() 3.12、set_dpi 该方法用于设置图形对象的分辨率单位为每英寸点数Dots Per Inch, DPI。这 个方法影响输出图像的质量和文件大小通常与 精确控制图形的尺寸和输出质量。
matplotlib.figure.Figure.set_dpi(dpi)
名称描述dpi一个浮点数或整数指定图形的分辨率即每英寸的点数。
import matplotlib.pyplot as plt# 创建一个图形对象
fig, ax plt.subplots()# 设置图形的尺寸为 6x4 英寸
fig.set_size_inches(10, 6)# 使用 set_dpi 方法设置图形的分辨率
fig.set_dpi(200) # 设置分辨率为 100 DPI# 绘制一些数据
ax.plot([1, 2, 3], [1, 2, 3])print(fig.get_size_inches())
print(fig.get_dpi())# 显示图形
plt.show() 3.13、tight_layout 该函数用于自动调整子图参数使之填充整个图像区域同时确保子图之间的标签和 标题不会重叠。这个方法对于创建布局整齐的图形非常有用尤其是在子图较多或标 签较长时。
import matplotlib.pyplot as plt# 创建一个包含多个子图的图形
fig, axs plt.subplots(2, 2)# 在每个子图中绘制一些数据
axs[0, 0].plot([1, 2, 3], [1, 2, 3])
axs[0, 0].set_title(00)
axs[0, 0].set_xlabel(x)
axs[0, 0].set_ylabel(y)axs[0, 1].plot([1, 2, 3], [3, 2, 1])
axs[0, 1].set_title(01)
axs[0, 1].set_xlabel(x)
axs[0, 1].set_ylabel(y)axs[1, 0].plot([1, 2, 3], [1, 3, 2])
axs[1, 0].set_title(10)
axs[1, 0].set_xlabel(x)
axs[1, 0].set_ylabel(y)axs[1, 1].plot([1, 2, 3], [2, 1, 3])
axs[1, 1].set_title(11)
axs[1, 1].set_xlabel(x)
axs[1, 1].set_ylabel(y)# 使用 tight_layout 自动调整子图布局
plt.tight_layout()# 显示图形
plt.show() 3.14、subplots_adjust 该函数允许用户手动调整子图之间的空间以及子图与图形边缘之间的空间。这个方 法提供了比 tight_layout 更细粒度的控制特别适用于需要精确控制布局的情 况。
fig.subplots_adjust(leftNone, bottomNone, rightNone, topNone, wspaceNone, hspaceNone)
名称描述left子图区域左边缘与图形左边缘之间的距离范围从 0 到 1。bottom子图区域下边缘与图形下边缘之间的距离范围从 0 到 1。right子图区域右边缘与图形右边缘之间的距离范围从 0 到 1。top子图区域上边缘与图形上边缘之间的距离范围从 0 到 1。wspace子图之间的水平间距范围从 0 到 1。hspace子图之间的垂直间距范围从 0 到 1。
import matplotlib.pyplot as plt# 创建一个包含多个子图的图形
fig, axs plt.subplots(2, 2)# 在每个子图中绘制一些数据
axs[0, 0].plot([1, 2, 3], [1, 2, 3])
axs[0, 1].plot([1, 2, 3], [3, 2, 1])
axs[1, 0].plot([1, 2, 3], [1, 3, 2])
axs[1, 1].plot([1, 2, 3], [2, 1, 3])# 使用 subplots_adjust 手动调整子图布局
plt.subplots_adjust(left0.1, right0.7, top0.9, bottom0.1, hspace0.2, wspace0.2)# 显示图形
plt.show() 3.15、clear 在matplotlib库中 Axes对象代表绘图区域和 都有clear函数。 Axes对象的 Figure对象代表整个图形 clear函数主要用于清除该轴子图上的所有图形 元素包括线条、标记、文本、图像等 Figure对象的 clear函数用于清除整个图 形中的所有子图和其他相关元素
import matplotlib.pyplot as plt# 创建一个包含多个子图的图形
fig, axs plt.subplots(2, 2)# 在每个子图中绘制一些数据
axs[0, 0].plot([1, 2, 3], [1, 2, 3])
axs[0, 1].plot([1, 2, 3], [3, 2, 1])
axs[1, 0].plot([1, 2, 3], [1, 3, 2])
axs[1, 1].plot([1, 2, 3], [2, 1, 3])# 使用 tight_layout 自动调整子图布局
fig.tight_layout()# # Axes对象的clear
# axs[0, 0].clear()# Figure对象的clear
fig.clear()# 显示图形
plt.show()