当前位置: 首页 > news >正文

Python----数据分析(Matplotlib四:Figure的用法,创建Figure对象,常用的Figure对象的方法)

一、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(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, clear=False, **kwargs)
名称描述
num可选参数,指定图形窗口的编号或名称。如果 num 为 新的图形窗口。如果 None,则创建一个 num 已经存在,则获取该图形窗口。
figsize可选参数,指定图形窗口的大小,以英寸为单位。默认为None,使用 Matplotlib 的默认值。
dpi可选参数,指定图形的分辨率,以点每英寸为单位。默认为 None,使用 Matplotlib 的默认值。
facecolor可选参数,指定图形窗口的背景颜色。默认None,使用为 Matplotlib 的默认值。
edgecolor可选参数,指定图形窗口的边缘颜色。默认为 None,使用 Matplotlib 的默认值。
frameon可选参数,布尔值,指定是否绘制图形窗口的边框。默认为True
clear可选参数,布尔值,指定是否清除图形窗口中的内容。默认为False
**kwargs其他关键字参数,用于进一步自定义图形窗口的属性。
import matplotlib.pyplot as pltplt.plot([0, 1], [1, 2])
fig = plt.figure(num=1, clear=True)
plt.plot([0, 1], [2, 3])plt.show()

 

2.2、subplots

        在Matplotlib中, subplots用于创建包含多个子图(subplot)的图形。这允许你在 同一个 Figure 对象内组织多个图表,从而方便地比较数据或者展示多方面的信息。

fig, axs = matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, width_ratios=None, height_ratios=None, subplot_kw=None, gridspec_kw=None)
名称描述
nrows=1子图的行数,设置为1,表示创建一个子图的行。
ncols=1子图的列数,设置为1,表示创建一个子图的列。
sharex=False布尔值,设置为False,表示子图之间不共享x轴刻度。每个子图 都有自己的x轴。
sharey=False布尔值,设置为False,表示子图之间不共享y轴刻度。每个子图 都有自己的y轴。
squeeze=True布尔值,设置为True,表示如果只创建了一个子图,则返回一 个子图对象而不是一个只包含一个子图对象的数组。
width_ratios=None列宽比例的序列,设置为None表示默认比例。如果提供 序列,它将用于调整各列的宽度比例。
height_ratios=None行高比例的序列,设置为None表示默认比例。如果提供 序列,它将用于调整各行的高度比例。
subplot_kw=None字典,设置为None,表示没有额外的关键字参数传递给 add_subplot调用。如果需要,可以传递一个字典来设置子图的属性。
gridspec_kw=None字典,设置为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', fontsize=16, color='red')# 显示图形
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', fontsize=12, color='red',horizontalalignment='right', verticalalignment='top')# 显示图形
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), facecolor='blue')# 获取背景色
facecolor = fig.get_facecolor()
print(facecolor)# 显示图像
plt.show()

3.7、get_dpi

        该方法用于获取图形(Figure)对象的分辨率。

import matplotlib.pyplot as plt# 创建一个图形对象
fig = plt.figure(dpi=120)# 获取图形的DPI
dpi = fig.get_dpi()
print(f"The 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, label='Line 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, forward=True)
名称描述
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(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
名称描述
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(left=0.1, right=0.7, top=0.9, bottom=0.1, hspace=0.2, wspace=0.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()

相关文章:

Python----数据分析(Matplotlib四:Figure的用法,创建Figure对象,常用的Figure对象的方法)

一、Figure的用法 在 Matplotlib 中, Figure对象是整个绘图的顶级容器,它是所有绘图元素的基础, 提供了一个用于绘制图形的画布空间。 在 Matplotlib 中, Axes对象是进行数据绘制和设置坐标轴等操作的核心区域,它与 Fi…...

CameraX学习2-关于录像、慢动作录像

CameraX实现录像 首先在起预览时就要配置录像usecase,对于cameraX来说就是绑定录像usecase到lifecycle。如下。 1,创建Recorder对象,是与 VideoCapture 紧密耦合的 VideoOutput 实现。Recorder可以用来配置录像的分辨率、比例等,还…...

Java链接redis

一、准备工作就像谈恋爱 首先咱们得来点仪式感是不是&#xff1f;打开你的Maven&#xff08;Gradle玩家别打我&#xff09;&#xff0c;把这两个宝贝依赖给我焊死在pom.xml里&#xff1a; <!-- 经典永不过时的Jedis --> <dependency> <groupId>redis.cli…...

2025最新群智能优化算法:基于RRT的优化器(RRT-based Optimizer,RRTO)求解23个经典函数测试集,MATLAB

一、基于RRT的优化器 基于RRT的优化器&#xff08;RRT-based Optimizer&#xff0c;RRTO&#xff09;是2025年提出的一种新型元启发式算法。其受常用于机器人路径规划的快速探索随机树&#xff08;RRT&#xff09;算法的搜索机制启发&#xff0c;首次将RRT算法的概念与元启发式…...

VBA 数据库同一表的当前行与其他行的主键重复判断实现方案

目的&#xff0c;判断是否主键重复&#xff0c;不重复则登录新数据&#xff0c;重复则不登录。 定义类型&#xff1a; DataRecord   tableName 表名   rowNumber 行号   columnName 列名   data 数据 想要实现的代码逻辑如下&#xff1a; 模拟数据库的登录过程。假设…...

DeepSeek开启AI办公新模式,WPS/Office集成DeepSeek-R1本地大模型!

从央视到地方媒体&#xff0c;已有多家媒体机构推出AI主播&#xff0c;最近杭州文化广播电视集团的《杭州新闻联播》节目&#xff0c;使用AI主持人进行新闻播报&#xff0c;且做到了0失误率&#xff0c;可见AI正在逐渐取代部分行业和一些重复性的工作&#xff0c;这一现象引发很…...

android为第三方提供部分系统接口

文章目录 Settings - 亮灭屏Settings - 恢复出厂设置Settings - 数字锁屏/解锁Settings - 设置系统时间PackageInstaller - 安装/卸载第三方应用摘要:本文对系统模块进行改造,提供广播等形式的接口对外提供无法直接调用的系统级别接口,实现部分功能的集合。如果是广播形式,…...

Android 自定义View 加 lifecycle 简单使用

前言 本文是自定义view中最简单的使用方法&#xff0c;分别进行 ‘onMeasure’、‘onDraw’、‘自定义样式’、‘lifecycle’的简单使用&#xff0c;了解自定义view的使用。 通过lifecycle来控制 动画的状态 一、onMeasure做了什么&#xff1f; 在onMeasure中获取view 的宽和…...

在K8S中,svc底层是如何实现的?

在Kubernetes中&#xff0c;Service是集群内部的一个抽象层&#xff0c;用于定义一组Pod的逻辑分组&#xff0c;并提供统一的访问入口点&#xff0c;同时还可以对这些Pod提供负载均衡和网络代理功能。Service底层的实现主要包括以下几个关键组件和技术&#xff1a; 标签选择器…...

Python pyqt小技巧:默认打开某文件(即自动加载某文件)

文章目录 前言 前言 有的时候需要界面自动加载某文件。不需要人为在打开选择。 import os #自带 import sys # 获取该程序当前文件目录dir_name os.path.dirname(os.path.realpath(sys.argv[0])) f1 os.path.join(dir_name, 题目调度规程.xls) # 拼接路径 文件必须和程序在…...

vue2实现组件库的自动按需引入,unplugin-auto-import,unplugin-vue-components

1.使用ant-design-vue或者element-ui时&#xff0c;如何每个组件都去import导入组件&#xff0c;大大降低了开发效率&#xff0c;如果全局一次性注册会增加项目体积&#xff0c;那么如何实现既不局部引入&#xff0c;也不全局注册&#xff1f; 2.在element-plus官网看到有说明…...

C++第十节:map和set的介绍与使用

【本节要点】 1.关联式容器2.键值对3.map介绍与使用4.set介绍与使用5.multimap与multisedd的介绍与使用 一、关联式容器&#xff1a;数据管理的核心利器 关联式容器是STL中用于高效存储和检索键值对&#xff08;key-value pair&#xff09;的数据结构&#xff0c;其底层基于红黑…...

线性代数笔记28--奇异值分解(SVD)

1. 奇异值分解 假设矩阵 A A A有 m m m行 n n n列 奇异值分解就是在 A A A的行向量上选取若干对标准正交基&#xff0c;对它作 A A A矩阵变化并投射到了 A A A的列空间上的正交基的若干倍数。 A v → u → σ u → ∈ R m v → ∈ R n A\overrightarrow{v}\overrightarrow{u…...

【从零开始学习计算机科学】硬件设计与FPGA原理

硬件设计 硬件设计流程 在设计硬件电路之前,首先要把大的框架和架构要搞清楚,这要求我们搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。如果你找到了的参考设计,最好还是…...

项目中同时使用Redis(lettuce)和Redisson的报错

温馨提示&#xff1a;图片有点小&#xff0c;可以放大页面进行查看... 问题1&#xff1a;版本冲突 直接上图&#xff0c;这个错表示依赖版本不匹配问题&#xff0c;我本地SpringBoot用的是2.7&#xff0c;但是Redisson版本用的3.32.5。 我们通过点击 artifactId跟进去 发现它…...

leetcode-数组

26. 删除有序数组中的重复项 已解答 简单 相关标签 相关企业 提示 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 n…...

人工智能里的深度学习指的是什么?

深度学习&#xff08;Deep Learning, 简称DL&#xff09;是机器学习领域的一个重要分支&#xff0c;它通过构建和训练深层神经网络模型&#xff0c;从大量数据中自动学习和提取特征&#xff0c;以实现复杂任务的自动化处理和决策。以下是关于深度学习的详细介绍&#xff1a; 一…...

docker本地部署ollama

启动ollama容器 1.使用该命令启动CPU版运行本地AI模型 docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama 2.此命令用于启动GPU版本运行AI模型 前提是笔记本已配置NVIDIA的GPU驱动&#xff0c;可在shell中输入nvidia-smi查看详细情况…...

LangChain构建语言模型驱动应用的强大框架

LangChain 核心功能与组件链&#xff08;Chains&#xff09;记忆&#xff08;Memory&#xff09;提示模板&#xff08;Prompts&#xff09;代理&#xff08;Agents&#xff09;数据检索&#xff08;Indexes&#xff09; 应用场景文档问答自动化工作流知识管理系统 发展历程总结…...

2025-03-08 学习记录--C/C++-PTA 习题10-2 递归求阶乘和

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h>double fact( int n ); double facts…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...