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

Python库学习(十):Matplotlib绘画库

1. 介绍

Matplotlib 是一个用于绘制图表和可视化数据的 Python 库。它提供了丰富的绘图工具,可以用于生成各种静态、交互式和动画图表。Matplotlib 是数据科学、机器学习和科学计算领域中最流行的绘图库之一。

1.1 关键特性

以下是 Matplotlib 的一些关键特性:

  • 简单易用: Matplotlib 提供了简单而直观的 API,使得用户能够轻松创建各种类型的图表。

  • 多种绘图类型: 支持绘制各种类型的图表,包括线图、散点图、柱状图、饼图、等高线图、3D 图表等。

  • 自定义性强: 用户可以轻松地自定义图表的外观和样式,包括颜色、线型、标签、标题等。

  • 支持 LaTex: 支持使用 LaTeX 渲染文本,使得图表标签和注释可以具有高质量的数学表达式。

  • 交互式图表: Matplotlib 可以嵌入到交互式环境中,如 Jupyter Notebook,支持交互式数据探索和动态更新。

  • 支持多种输出格式: 可以将图表保存为多种格式,如 PNG、PDF、SVG、EPS 等。

  • 对象导向: Matplotlib 的图表是通过对象导向的方式创建的,这意味着用户可以直接操作图表的元素,使得定制化和复杂的图表更加容易。

  • 内置样式和颜色映射: 提供了内置的样式表和颜色映射,使得用户可以轻松地应用一致的风格和颜色。

  • 复杂图表和子图: 支持创建复杂的图表布局和多子图,适用于需要展示多个数据视图的场景。

  • 跨平台: 可以在多个操作系统上运行,包括 Windows、Linux 和 macOS

1.2 其他介绍

Github(截止当前 18.2K):https://github.com/matplotlib/matplotlib

  • 官方文档: https://matplotlib.org/stable/users/explain/quick_start.html
  • 中文文档: https://matplotlib.net/stable/users/getting_started/index.html

2. 安装&升级

2.1 安装

# pip方式安装
$ pip install matplotlib

# conda方式安装
$ conda install matplotlib

2.2 升级

# pip方式升级
$ pip install --upgrade matplotlib

# conda方式升级
$ conda update matplotlib

3. 绘图风格

3.1 对象风格

使用面向对象的风格画图,首先要创建画布(大容器),然后在画布中填充子图信息(小容器)

import matplotlib.pyplot as plt
import numpy as np

if __name__ == '__main__':
    # 设置字体以便正确显示中文
    plt.rcParams['font.sans-serif'] = ['FangSong']
    # 正确显示连字符
    plt.rcParams['axes.unicode_minus'] = False
    # --------------- 创建画布 ---------------
    fig = plt.figure()
    # 设置画布大小
    fig.set_size_inches(75)
    # 设置画布颜色
    fig.set_facecolor('ivory')

    # --------------- 创建子图 ---------------
    # 设置子图位置
    subImg = fig.add_axes([0.10.10.80.8])
    # 设置x、y轴数据
    x = np.linspace(01020)
    y1 = np.power(x, 2)
    y2 = x * 10
    
    # 画线
    subImg.plot(x, y1, 'r', ls='-', linewidth=2, label='$x^2$')
    subImg.plot(x, y2, 'b', ls='--', linewidth=2, label='$x*10$')

    # 添加文本标志
    subImg.text(3.47.5r'$x^2$', fontsize=12)
    subImg.text(17.5r'$x*10$', fontsize=12)

    # 设置子图标题
    subImg.set_title("子图A标题", fontdict={'size'16})

    subImg.legend(loc='upper left')  # 生成图例
    # # 设置x、y轴标志
    subImg.set_xlabel('X轴', fontdict={'size'14})
    subImg.set_ylabel('Y轴', fontdict={'size'14})
    # 显示图片
    plt.show()
alt

3.2 API风格

除此上文风格,Matplotlib还提供一种类MATLAB风格的API,这种使用方式没有画布和子图的概念,直接调用函数即可绘图和显示。

实现上面的图片效果代码如下:

import matplotlib.pyplot as plt
import numpy as np

if __name__ == '__main__':
    # 设置字体以便正确显示中文
    plt.rcParams['font.sans-serif'] = ['FangSong']
    # 正确显示连字符
    plt.rcParams['axes.unicode_minus'] = False

    # 设置x、y轴数据
    x = np.linspace(01020)
    y1 = np.power(x, 2)
    y2 = x * 10

    # 画线
    plt.plot(x, y1, 'r', ls='-', linewidth=2, label='$x^2$')
    plt.plot(x, y2, 'b', ls='--', linewidth=2, label='$x*10$')

    # 添加文本标注
    plt.text(3.47.5r'$x^2$', fontsize=12)
    plt.text(17.5r'$x*10$', fontsize=12)
    # 设置子图标题
    plt.title("示例标题", fontdict={'size'16})
    # 生成图例
    plt.legend(loc='upper left')
    # 设置x、y轴标志
    plt.xlabel('X轴')
    plt.ylabel('Y轴')

    # 显示图片
    plt.show()

4. 快速绘图

4.1 折线图

  • plt.plot() : 主要用于绘制折线图的主要函数之一。
import matplotlib.pyplot as plt
import numpy as np

if __name__ == '__main__':
    # 设置字体以便正确显示中文
    plt.rcParams['font.sans-serif'] = ['FangSong']
    # 正确显示连字符
    plt.rcParams['axes.unicode_minus'] = False

    # 设置x、y轴数据
    x = np.linspace(01020)
    y1 = np.power(x, 2)
    y2 = x * 10

    # 图一位置,subplot(1, 2, 1) 代表画布是1行2列,当前图位于第1列
    plt.subplot(121)
    plt.title("图一")
    plt.plot(x, y1)

    # 图一位置,subplot(1, 2, 2) 代表画布是1行2列,当前图位于第2列
    plt.subplot(122)
    plt.title("图二")
    plt.plot(x, y2)
    # 显示图片
    plt.show()
alt

4.2 曲线图

严格来说,plot( )函数绘制的是折线图而非曲线图,因为该函数只是将顺序相邻的点以直线连接,如想画曲线图,推荐使用semilogx( )、semilogy( )和loglog( )等函数。

import matplotlib.pyplot as plt
import numpy as np

# 设置字体以便正确显示中文
plt.rcParams['font.sans-serif'] = ['FangSong']
# 正确显示连字符
plt.rcParams['axes.unicode_minus'] = False

if __name__ == '__main__':
    # 生成示例数据
    x = np.linspace(110100)
    y = np.exp(x)

    # 创建画布和子图,1行3列
    fig, (ax1, ax2, ax3) = plt.subplots(13, figsize=(155))

    # 使用semilogx()在第一个子图中绘制对数x轴的折线图
    ax1.semilogx(x, y, label='对数x轴折线图')
    ax1.set_title('semilogx() 示例')
    ax1.set_xlabel('对数X轴')
    ax1.set_ylabel('Y轴')
    ax1.legend()

    # 使用semilogy()在第二个子图中绘制对数y轴的折线图
    ax2.semilogy(x, y, label='对数y轴折线图')
    ax2.set_title('semilogy() 示例')
    ax2.set_xlabel('X轴')
    ax2.set_ylabel('对数Y轴')
    ax2.legend()

    # 使用loglog()在第三个子图中绘制对数坐标轴的折线图
    ax3.loglog(x, y, label='对数坐标轴折线图')
    ax3.set_title('loglog() 示例')
    ax3.set_xlabel('对数X轴')
    ax3.set_ylabel('对数Y轴')
    ax3.legend()

    # 调整子图之间的距离
    plt.tight_layout()

    # 显示图表
    plt.show()
alt

4.3 柱状图

  • plot.bar(): 用来绘制垂直柱状图
  • plot.barh(): 用来绘制水平柱状图
import matplotlib.pyplot as plt

# 设置字体以便正确显示中文
plt.rcParams['font.sans-serif'] = ['FangSong']
# 正确显示连字符
plt.rcParams['axes.unicode_minus'] = False

if __name__ == '__main__':
    # 生成示例数据
    names = ['孙悟空''猪八戒''唐僧''沙僧']
    values = [36247545]
    plt.title("年龄分布图")

    # 创建画布和子图
    fig, (ax1, ax2) = plt.subplots(12, figsize=(125))

    # 使用plot.bar()在第一个子图中绘制垂直条形图
    ax1.bar(names, values, color='blue')
    ax1.set_title('垂直条形图示例')
    ax1.set_xlabel('姓名')
    ax1.set_ylabel('年龄')

    # 使用plot.barh()在第二个子图中绘制水平条形图
    ax2.barh(names, values, color='green')
    ax2.set_title('水平条形图示例')
    ax2.set_xlabel('年龄')
    ax2.set_ylabel('姓名')

    # 调整子图之间的距离
    plt.tight_layout()

    # 显示图表
    plt.show()
alt

4.4 散点图

scatter() 函数用于绘制散点图,散点图是一种展示两个变量之间关系的常见图表类型。每个点的位置由两个变量的值决定,横轴表示一个变量,纵轴表示另一个变量。

1. 参数说明
scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, *, plotnonfinite=False, data=None, **kwargs)
  • x, y: 必需,表示散点图上点的横坐标和纵坐标。
  • s: 用于指定散点的大小。可以是一个标量,表示所有点的大小相同;也可以是一个数组,表示每个点的大小。
  • c: 用于指定散点的颜色。可以是一个标量,表示所有点的颜色相同;也可以是一个数组,表示每个点的颜色。此外,你还可以通过设置 c 参数为字符串值来表示使用预定义的颜色映射。
  • marker: 用于指定散点的标记样式,例如 'o' 表示圆点,'^' 表示三角形等。
  • cmap: 用于指定颜色映射,仅当 c 参数为数组时起作用。更多颜色参考文档: https://matplotlib.org/stable/users/explain/colors/colormaps.html
  • norm: 用于标准化颜色映射。
  • alpha: 用于指定散点的透明度,取值范围为 0(完全透明)到 1(完全不透明)。
  • linewidths: 用于指定散点边缘的线宽。
  • edgecolors: 用于指定散点边缘的颜色。
2. 代码示例
import matplotlib.pyplot as plt
import numpy as np

# 设置字体以便正确显示中文
plt.rcParams['font.sans-serif'] = ['FangSong']
# 正确显示连字符
plt.rcParams['axes.unicode_minus'] = False

if __name__ == '__main__':
    # 生成示例数据
    x = np.random.randn(50)
    y = np.random.randn(50)
    # 随机数,用于映射颜色
    color = 10 * np.random.rand(50)
    # 随机数表示点的面积
    area = np.square(30 * np.random.rand(50))
    plt.scatter(x, y, label="数据点", c=color, marker="o", s=area, cmap='flag', edgecolor='r')
    # 添加标题和标签
    plt.title("散点图示例")
    plt.xlabel("X轴")
    plt.ylabel("Y轴")
    # 显示图例
    plt.legend()
    # 显示图表
    plt.show()
alt

4.5 饼图

1. 参数说明
pie(
        x, explode=None, labels=None, colors=None, autopct=None,
        pctdistance=0.6, shadow=False, labeldistance=1.1,
        startangle=0, radius=1, counterclock=True, wedgeprops=None,
        textprops=None, center=(00), frame=False,
        rotatelabels=False, *, normalize=True, hatch=None, data=None)
  • x: 必需,表示每个部分的大小,可以是一个数组或一个标量。如果是一个数组,表示每个扇形的大小;如果是一个标量,表示所有扇形的大小相同。
  • explode: 用于指定哪些扇形被拉出。如果某个值大于0,表示对应索引的扇形会被拉出一定的距离。
  • labels: 扇形上显示的标签,可以是一个数组或 None。
  • colors: 扇形的颜色,可以是一个颜色列表,表示每个扇形的颜色;也可以是 None,表示使用默认颜色。
  • autopct: 控制在饼图上显示每个部分的百分比,可以是字符串格式化,例如 '%1.1f%%'。
  • pctdistance: 百分比标签与圆心的距离,取值范围为 [0, 1]。
  • shadow: 是否在饼图下方添加阴影。
  • labeldistance: 标签与圆心的距离,取值范围为 [0, 1]。
  • startangle: 饼图起始角度,按逆时针方向计算,0 度表示从正 x 轴开始。
  • radius: 饼图的半径。
  • counterclock: 是否按逆时针方向绘制饼图。
  • wedgeprops: 扇形的属性字典,用于设置扇形的样式,例如边界颜色、边界宽度等。
  • textprops: 标签的属性字典,用于设置标签的样式,例如字体大小、颜色等。
  • center: 饼图的中心坐标。
  • frame: 是否绘制一个带有刻度标签的坐标轴框架。
  • rotatelabels: 是否旋转标签。
  • normalize: 如果为 True,则将 x 归一化为百分比。
2.代码示例
import matplotlib.pyplot as plt

# 设置字体以便正确显示中文
plt.rcParams["font.sans-serif"] = ["FangSong"]
# 正确显示连字符
plt.rcParams["axes.unicode_minus"] = False

if __name__ == '__main__':
    # 示例数据
    labels = ['Go''PHP''C''Java''Python']
    sizes = [15519.52040.5]
    # 哪个闪现
    explode = (00.1000)
    # 使用pie()绘制饼状图
    plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, explode=explode,
            colors=['gold''lightskyblue''lightcoral''lightgreen''purple'])

    # 添加标题
    plt.title('后端编程语言占比')

    # 显示图表
    plt.show()
alt

4.6 等值线图

import matplotlib.pyplot as plt
import numpy as np

# 设置字体以便正确显示中文
plt.rcParams["font.sans-serif"] = ["FangSong"]
# 正确显示连字符
plt.rcParams["axes.unicode_minus"] = False

if __name__ == '__main__':
    # 创建示例数据
    x = np.linspace(-55100)
    y = np.linspace(-55100)
    X, Y = np.meshgrid(x, y)
    Z = np.sin(np.sqrt(X ** 2 + Y ** 2))

    # 创建画布和子图
    fig, (ax1, ax2) = plt.subplots(12, figsize=(125))

    # ------------------------------ 图A-contour-填充示例 ----------------------------------
    contour_plot = ax1.contour(X, Y, Z, levels=20, cmap='viridis')
    fig.colorbar(contour_plot, label='Z值')
    ax1.set_title('等值线图示例')
    ax1.set_xlabel('X轴')
    ax1.set_ylabel('Y轴')

    # ------------------------------ 图B-contourf-填充示例 ----------------------------------
    contour_plot = ax2.contourf(X, Y, Z, levels=20, cmap='viridis')
    fig.colorbar(contour_plot, label='Z值')
    ax2.set_title('等值线图(填充)')
    ax2.set_xlabel('X轴')
    ax2.set_ylabel('Y轴')

    # 显示图表
    plt.show()
alt

4.7 矢量合成图

矢量合成图以箭头的形式绘制矢量,因此也被称为箭头图。矢量合成图以箭头的方向表示矢量的方向。

import matplotlib.pyplot as plt
import numpy as np

# 设置字体以便正确显示中文
plt.rcParams["font.sans-serif"] = ["FangSong"]
# 正确显示连字符
plt.rcParams["axes.unicode_minus"] = False

if __name__ == '__main__':
    # 创建两个矢量
    vector1 = np.array([32])
    vector2 = np.array([-14])

    # 计算矢量合成结果
    resultant_vector = vector1 + vector2

    # 创建图表和子图
    fig, ax = plt.subplots()

    # 绘制矢量1
    ax.arrow(00, vector1[0], vector1[1], head_width=0.2, head_length=0.2, fc='blue', ec='blue', label='矢量1')

    # 绘制矢量2
    ax.arrow(00, vector2[0], vector2[1], head_width=0.2, head_length=0.2, fc='red', ec='red', label='矢量2')

    # 绘制矢量合成结果
    ax.arrow(00, resultant_vector[0], resultant_vector[1], head_width=0.2, head_length=0.2, fc='green', ec='green',
             label='结果')

    # 设置坐标轴
    ax.set_xlim(-25)
    ax.set_ylim(-18)

    # 添加网格
    ax.grid(True)
    # 添加标签和标题
    ax.set_xlabel('X轴')
    ax.set_ylabel('Y轴')
    ax.set_title('矢量图示例')

    # 添加图例
    ax.legend()

    # 显示图表
    plt.show()
alt

本文由 mdnice 多平台发布

相关文章:

Python库学习(十):Matplotlib绘画库

1. 介绍 Matplotlib 是一个用于绘制图表和可视化数据的 Python 库。它提供了丰富的绘图工具,可以用于生成各种静态、交互式和动画图表。Matplotlib 是数据科学、机器学习和科学计算领域中最流行的绘图库之一。 1.1 关键特性 以下是 Matplotlib 的一些关键特性&…...

coverity工具 代码审计

第39篇:Coverity代码审计/代码扫描工具的使用教程_希潭实验室ABC123的博客-CSDN博客...

女鹅冬天的第一件羽绒服,当然要时尚经典的

90白鸭绒,高密度充绒量和蓬松度 让这件羽绒服更加饱满更有型 三防工艺,立领连帽设计 下摆抽绳,帽子上的魔术贴设计 无一不将保暖落实在实处 宽松版型立体感很强,对身材的包容性也是非常不错...

智慧渔业方案:AI渔政视频智能监管平台助力水域禁渔执法

一、方案背景 国内有很多水库及河流设立了禁渔期,加强渔政执法监管对保障国家渔业权益、维护渔业生产秩序、保护渔民群众生命财产安全、推进水域生态文明建设具有重要意义。目前,部分地区的监管手段信息化水平低下,存在人员少、职责多、任务…...

LXC、Docker、 Kubernetes 容器以及Hypervisor的区别

LXC、Docker、 Kubernetes 容器以及Hypervisor的区别 SaaS: Software-as-a-Service(软件即服务) PaaS: Platform-as-a-Service(平台即服务) IaaS: Infrastructure-as-a-Service(基础设施即服务) 1、Docke…...

电子杂志制作不求人:简单易用的工具推荐

​如果你想要制作一份精美的电子杂志,但是又不想花费太多的时间和金钱,也不想求及朋友帮忙制作,那么可以试试这个网站制作电子杂志,展现出的效果跟专业级设计师的效果没什么区别哦 赶快收藏吧-------FLBOOK在线制作电子杂志平台&a…...

Excel冻结窗格

1、冻结表格首行 点击菜单栏中的“视图”,选择“窗口”选项卡中的“冻结窗格”下的小三角,再选择“冻结首行”; 2.冻结表格首列 点击菜单栏中的“视图”,选择“窗口”选项卡中的“冻结窗格”下的小三角,再选择“冻结…...

Flink自定义sink并支持insert overwrite 功能

前言 自定义flink sink,批模式下,有insert overwrite 需求或需要启动任务或任务完成后时,只执行一次某些操作时,则可参考此文章 组件: flink: 1.15 参考文档:https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/dev/table/sourcessinks/ 分析 inser…...

CSS Vue/RN 背景使用opacity,文字在背景上显示

Vue <div class"training_project_tip"> <div class"tip">展示的文字</div> </div> .training_project_tip { font-size: 12px; font-weight: 400; text-align: left; color: #ffffff; margin-top: 8px; position: relative; dis…...

vue3自定义指令批量注册

第一步、在src目录下新建directives文件文件夹 用来存放不同的指令&#xff0c;以dbounce指令为例&#xff1a; 第二步、在directives目录下创建debounce.js文件&#xff0c;文件内容如下&#xff1a; // 防抖 const debounceClick {mounted(el, binding) {let timerel.addE…...

山西电力市场日前价格预测【2023-10-18】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-18&#xff09;山西电力市场全天平均日前电价为348.72元/MWh。其中&#xff0c;最高日前电价为505.50元/MWh&#xff0c;预计出现在18: 00。最低日前电价为288.10元/MWh&#xff0c;预计…...

2-k8s-控制器介绍

文章目录 一、控制器类型二、Deployment控制器三、SatefulSet控制器四、Daemonset控制器五、Job控制器六、CronJob 控制器 一、控制器类型 Deployment&#xff1a;适合无状态的服务部署StatefullSet&#xff1a;适合有状态的服务部署DaemonSet&#xff1a;一次部署&#xff0c…...

【数据结构】二叉树--OJ练习题

目录 1 单值二叉树 2 相同的树 3 另一颗树的子树 4 二叉树的前序遍历 5 二叉树的最大深度 6 对称二叉树 7 二叉树遍历 1 单值二叉树 965. 单值二叉树 - 力扣&#xff08;LeetCode&#xff09; bool isUnivalTree(struct TreeNode* root) {if (root NULL){return true;}…...

时间复杂度为 O(n^2) 的排序算法

大家好&#xff0c;我是 方圆。对于小规模数据&#xff0c;我们可以选用时间复杂度为 O(n2) 的排序算法&#xff0c;因为时间复杂度并不代表实际代码的执行时间&#xff0c;而且它也省去了低阶、系数和常数&#xff0c;仅代表的增长趋势&#xff0c;所以在小规模数据情况下&…...

ES6 Map数据结构

1.Map是什么&#xff1f; ES6 提供的另一种新的引用类型的数据结构 它类似于对象&#xff0c;也是键值对的集合&#xff0c;但是“键”的范围不限于字符串&#xff0c;各种类型的值&#xff08;包括对象&#xff09;都可以当作键&#xff09; 以前引用类型中的对象也是键值对…...

网页数据采集HTTP Get,Post登录提交数据--VBS之Microsoft.XMLHTTP对象

MSXML中提供了Microsoft.XMLHTTP对象&#xff0c;能够完成从数据包到Request对象的转换以及发送任务。 创建XMLHTTP对象的语句如下&#xff1a; Set objXML CreateObject("Msxml2.XMLHTTP") 或 Set objXML CreateObject(“Microsoft.XMLHTTP”) Or, for version 3…...

强化科技创新“辐射力”,中国移动的数智化大棋局

作者 | 曾响铃 文 | 响铃说 丝滑流畅的5G连接、每时每刻的数字生活服务、无处不在的智能终端、拟人交流的AI助手、梦幻般的XR虚拟现实、直接感受的裸眼3D…… 不知不觉&#xff0c;那个科幻片中的世界&#xff0c;越来越近。 数智化新世界的“气氛”&#xff0c;由一个个具…...

喜报 | 擎创科技实力亮相2023科创会并荣获科技创新奖

近日&#xff0c;由国家互联网数据中心产业技术创新战略联盟&#xff08;NIISA&#xff09;主办的“2023第二届国际互联网产业科技创新大会暨互联网创新产品展览会”于北京圆满落幕。 擎创科技副总裁冯陈湧受邀出席本次论坛&#xff0c;并发表了“银行分布式核心智能运维体系思…...

vue3学习(九)--- keep-alive缓存组件

有时候我们不希望组件被重新渲染影响使用体验&#xff1b;或者处于性能考虑&#xff0c;避免多次重复渲染降低性能。而是希望组件可以缓存下来,维持当前的状态。这时候就需要用到keep-alive组件。 keep-alive有两个独有的生命周期&#xff1a;activated、 deactivated 接下来看…...

用servlet实现一个简单的猜数字游戏。

需要两个页面&#xff0c;一个jsp页面&#xff08;guess.jsp&#xff09;和servlet页面&#xff08;servlet&#xff09;。 一.jsp页面 在jsp页面中需要实现&#xff1a; 1.创建随机数并且保存在session中。 2.做个form表单提交猜的数字给servlet页面。 <%page import&…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...