首页 > 其他分享 >Matplotlib基础回顾

Matplotlib基础回顾

时间:2024-12-26 20:26:03浏览次数:5  
标签:plot plt 回顾 子图 基础 Matplotlib matplotlib np import

一.常用的API:

1.绘图类型

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

2.Image函数

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

3.Axis函数

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

4.Figure 函数

函数名称作用
Figtext在画布上添加文本
Figure创建一个新画布
Show显示数字
Savefig保存当前画布
Close关闭画布窗口

二.pylab模块

  pylabmatplotlib 库中的一个子模块,提供了许多用于绘图和数值计算的功能。它将 matplotlib 的绘图功能和 numpy 数值计算功能进行了整合。pylab 的设计理念是模仿 MATLAB(Matlab 是一个数学软件,广泛用于数值计算和绘图),因此它提供了类似于 MATLAB 的接口

        通常,pylab 被用作 matplotlib 的一个简化接口,但是现代的 matplotlibnumpy 推荐直接使用它们的具体模块,因为 pylab 会导入所有内容(包括 matplotlibnumpy 的大量功能),这可能导致命名冲突

1.导入模块

import pylab

或是:

from pylab import *

这将导入 matplotlibnumpy 的常用功能,例如 plotsinlinspace 等,使得代码书写更加简洁。

2.常用的一些功能

1.绘制图形:

from pylab import *

#创建数据
x = linspace(0, 10, 100)
y = sin(x)

# 绘制图形
plot(x, y)

# 显示图形
show()
  • pylab.linspace(0, 10, 100) 等价于 numpy.linspace(0, 10, 100),它生成了从 0 到 10 的 100 个均匀分布的点。
  • pylab.sin(x) 计算了 x 中每个值的正弦值,等价于 numpy.sin(x)
  • pylab.plot(x, y) 绘制了 x 和 y 的图像。
  • pylab.show() 显示绘制的图形。

2.绘制多个图形

from pylab import *

# 创建数据
x = linspace(0, 10, 100)
y1 = sin(x)
y2 = cos(x)

# 绘制两个图形
plot(x, y1, label='sin(x)')
plot(x, y2, label='cos(x)')

# 添加图例
legend()

# 显示图形
show()

3. 子图(Subplot):

from pylab import *

# 创建数据
x = linspace(0, 10, 100)
y1 = sin(x)
y2 = cos(x)

# 创建 1 行 2 列的子图
subplot(1, 2, 1)
plot(x, y1, label='sin(x)')
title('Sine Function')

subplot(1, 2, 2)
plot(x, y2, label='cos(x)')
title('Cosine Function')

# 显示图形
show()

4.直方图

from pylab import *

# 创建数据
data = randn(1000)

# 绘制直方图
hist(data, bins=30)

# 显示图形
show()

3.pylab存在的一些问题

pylab 曾经是 matplotlib 的常见用法,但随着时间的推移,越来越多人建议直接使用 matplotlibnumpy 的具体模块。这是因为 pylab 会将很多功能一次性导入到当前的命名空间,这样容易造成命名冲突,尤其是在复杂项目中。

4.更为推荐使用现代用法

import numpy as np
import matplotlib.pyplot as plt

# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 绘制图形
plt.plot(x, y)

# 显示图形
plt.show()

之后的讲解都将围绕现代用法展开

三.常用函数

1.plot函数

plot() 函数是 matplotlib 库中最常用的绘图函数之一,它用于创建二维线图(即将数据点连接成一条线)。这个函数非常灵活,能够支持不同类型的图形,如线图、散点图等。

(1)使用语法

pylab.plot(x, y, format_string=None, **kwargs)

(2)参数解释

  • x: x 轴数据,可以是一个数组或列表。

  • y: y 轴数据,可以是一个数组或列表。

  • format_strifng: 格式字符串,用于指定线条样式、颜色等。例如:'r-'(红色实线),'b:'(蓝色虚线),'g--'(绿色虚线),'o'(圆点)。可以包含颜色、线型和标记类型等信息

  • **kwargs: 其他关键字参数,用于指定线条的属性。如 label(标签)、linewidth(线宽)、markersize(标记大小)等

plot 函数可以接受一个或两个数组作为参数,分别代表 x 和 y 坐标。如果你只提供一个数组,它将默认用作 y 坐标,而 x 坐标将默认为数组的索引。

(3)格式字符串

颜色: 'b':蓝色 'g':绿色 'r':红色 'c':青色 'm':洋红色 'y':黄色 'k':黑色 'w':白色

标记:

'.':点标记'.':点标记
'o':圆圈标记'v':向下三角标记
'^':向上三角标记'<':向左三角标记
'>':向右三角标记's':方形标记
'p':五边形标记'*':星形标记
'h':六边形标记1'H':六边形标记2
'+':加号标记'x':叉号标记
'D':菱形标记'd':细菱形标记
'|':竖线标记'_':横线标记

线条样式: '-':实线 '--':虚线 '-.':点划线 ':':点线

(4)plot()基本用法

1.基本线条
import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)  # 生成从 0 到 10 的 100 个点
y = np.sin(x)  # 计算每个 x 对应的 sin(x)

# 绘制图形
plt.plot(x, y)

# 显示图形
plt.show()

这会生成一条从 (0, 0)(10, sin(10)) 的曲线。

2.使用不同的线型和颜色
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.cos(x)

# 绘制红色虚线
plt.plot(x, y, 'r--')  # 'r--' 表示红色虚线

plt.show()
  • 'r' 表示红色。
  • '--' 表示虚线。
3.绘制多个图形
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 绘制两个图形
plt.plot(x, y1, label='sin(x)', color='r')
plt.plot(x, y2, label='cos(x)', color='b')

# 添加图例
plt.legend()

# 显示图形
plt.show()

label 参数用于给图形添加标签,plt.legend() 用于显示图例。

label也可以在legend中添加,但不推荐

 # 绘制两条曲线
    line1 = ax.plot(x, y1, 'r:')  # 红色虚线
    line2 = ax.plot(x, y2, 'b:')  # 蓝色虚线

    # 通过 line1[0] 和 line2[0] 获取 Line2D 对象,传递给 legend
    #添加图例,
    #参数:
    # handles:包含曲线的实例
    # labels:设置标签
    # loc:是指定图例位置的参数,其参数值可以用字符串或整数来表示
    ax.legend(handles=[line1[0], line2[0]], labels=['sin(x)', 'cos(x)'], loc='best')
4.使用标记和线条
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

# 绘制带有圆点标记的实线
plt.plot(x, y, 'b-o')  # 'b-o' 表示蓝色线条,并且每个数据点用圆点标记

plt.show()
  • 'o' 表示使用圆点标记每个数据点。
  • 'b' 表示蓝色的线。
5. 设置线宽和标记大小
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

# 设置线宽和标记大小
plt.plot(x, y, linewidth=2, markersize=5, marker='o', label='sin(x)')

# 添加标签
plt.legend()

plt.show()
  • linewidth=2 设置线宽为 2。
  • markersize=5 设置标记的大小。
  • marker='o' 设置标记类型为圆形。
6. 将多个数据绘制在同一图中
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 绘制两个不同的图形
plt.plot(x, y1, label='sin(x)', color='r', linestyle='-')  # 红色实线
plt.plot(x, y2, label='cos(x)', color='b', linestyle='--')  # 蓝色虚线

# 添加图例
plt.legend()

plt.show()

(5)其他常用参数:

  • linewidth:控制线条宽度。
  • markersize:控制标记的大小。
  • alpha:控制图形的透明度,取值范围是 [0, 1],0 表示完全透明,1 表示完全不透明。

2.figure 函数

figure()matplotlib 库中的一个非常重要的函数,它用于创建一个新的 图形窗口。在 matplotlib 中,图形窗口是指用于展示图形的容器。使用 figure() 可以创建一个新的图形对象,并对其进行自定义设置。

(1)参数说明

  • num:图形窗口的编号或名称。如果设置为整数,表示图形的编号;如果设置为字符串,则表示图形的名称。如果未指定,matplotlib 会自动为图形分配一个编号。
  • figsize:设置图形的大小,接受一个元组 (宽度, 高度),单位为英寸。例如 (8, 6) 表示 8 英寸宽,6 英寸高。
  • dpi:每英寸点数(dots per inch),用于设置图形的分辨率。默认值通常是 100。
  • facecolor:设置图形的背景颜色,可以使用颜色名(如 'white' 或 'blue')或 RGB/RGBA 值。
  • edgecolor:设置图形边框的颜色。
  • frameon:是否显示图形的边框,默认为 True
  • clear:如果为 True,则在创建图形之前会清空当前图形的内容。默认为 False

(2)figure.add_axes()

Matplotlib 定义了一个 axes 类(轴域类),该类的对象被称为 axes 对象(即轴域对象),它指定了一个有数值范围限制的绘图区域。在一个给定的画布(figure)中可以包含多个 axes 对象,但是同一个 axes 对象只能在一个画布中使用。

参数说明:

是一个包含四个元素的列表或元组,格式为 [left, bottom, width, height],其中:

left 和 bottom 是轴域左下角的坐标,范围从 0 到 1。

width 和 height 是轴域的宽度和高度,范围从 0 到 1。

使用实例:

  # 创建图形和坐标轴
    fig = plt.figure(figsize=(10, 5), facecolor='grey')
    ax = fig.add_axes([0.1, 0.1, 0.6, 0.6])

    # 数据生成
    x = np.linspace(0, 10, 100)
    y1 = np.sin(x)
    y2 = np.cos(x)

    # 绘制两条曲线
    ax.plot(x, y1, label='sin(x)函数')  # 红色虚线
    ax.plot(x, y2, label='cos(x)函数')

    ax.legend(loc=10)
    plt.show()

(3)axes.legend()

legend 函数用于添加图例,以便识别图中的不同数据系列。图例会自动显示每条线或数据集的标签。

参数说明:

  • abels 是一个字符串序列,用来指定标签的名称

  • loc 是指定图例位置的参数,其参数值可以用字符串或整数来表示

  • handles 参数,它也是一个序列,它包含了所有线型的实例

legend() 函数 loc 参数:

位置字符串表示整数数字表示
自适应Best0
右上方upper right1
左上方upper left2
左下lower left3
右下lower right4
右侧right5
居中靠左center left6
居中靠右center right7
底部居中lower center8
上部居中upper center9
中部center10

3.subplot 函数

subplot()matplotlib 中用于在一个图形窗口中创建多个子图的函数。它允许用户在一个图形区域内,按照指定的网格布局来展示多个子图。每个子图可以包含不同的绘图内容,并且它们共享同一个图形窗口。

使用语法:

fig.add_subplot(nrows, ncols, index, **kwargs)

 **kwargs表示其他的一些参数,他不是一个参数

  • nrows:子图的行数。
  • ncols:子图的列数。
  • index:当前子图的位置,从 1 开始,按照行优先顺序排列。例如,index=1 表示第一行第一列的位置,index=2 表示第一行第二列的位置,以此类推。
  • **kwargs:额外的可选参数,如 sharexsharey(用于共享坐标轴),或者是图形的标题、标签等。

使用实例:

1. 创建 2x2 子图
import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
y4 = np.exp(x)

# 创建 2x2 子图
plt.subplot(2, 2, 1)  # 第一行第一列
plt.plot(x, y1)
plt.title('Sine')

plt.subplot(2, 2, 2)  # 第一行第二列
plt.plot(x, y2)
plt.title('Cosine')

plt.subplot(2, 2, 3)  # 第二行第一列
plt.plot(x, y3)
plt.title('Tangent')

plt.subplot(2, 2, 4)  # 第二行第二列
plt.plot(x, y4)
plt.title('Exponential')

# 调整子图间距,避免重叠
plt.tight_layout()

# 显示图形
plt.show()
  • plt.subplot(2, 2, 1) 表示创建一个 2x2 网格的第一个子图(第一行第一列)。
  • plt.subplot(2, 2, 2) 表示第二个子图(第一行第二列),依此类推。
2. 共享坐标轴
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建 2x1 的子图,两个子图共享 y 轴
plt.subplot(2, 1, 1, sharex=True, sharey=True)
plt.plot(x, y1)
plt.title('Sine')

plt.subplot(2, 1, 2, sharex=True, sharey=True)
plt.plot(x, y2)
plt.title('Cosine')

# 显示图形
plt.tight_layout()
plt.show()

sharex=True, sharey=True 表示两个子图共享相同的 x 轴和 y 轴。

3. 使用 subplot() 在同一位置绘制多个图形

subplot() 可以在同一位置绘制多个图形,但通常这种做法不推荐,因为会覆盖之前的图形。如果需要多个图形重叠在一起,可以使用 plt.plot() 的不同参数进行区分,或者使用 ax 对象来更精细地控制每个子图。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建一个 1x1 网格并绘制多个图形
plt.subplot(1, 1, 1)
plt.plot(x, y1, label='sin(x)', color='r')
plt.plot(x, y2, label='cos(x)', color='b')

plt.legend()
plt.title('Sine and Cosine')

plt.show()

4.subplots 函数

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

使用语法:

fig, axs = plt.subplots(nrows, ncols, figsize=(width, height))
1.subplot() 与 subplots() 的区别
  • subplot():用于在一个图形窗口中按指定的网格位置(行列)安排多个子图,每次调用 subplot() 都是切换到指定位置的子图。
  • subplots():返回一个包含多个子图的 Figure 对象和一个 axes 数组,可以在其中同时管理多个子图,更适用于处理多个子图的场景,尤其是当子图数量较多时。

参数说明:

  • nrows: 子图的行数。

  • ncols: 子图的列数。

  • figsize: 图形的尺寸,以英寸为单位。

2.使用 subplots() 创建多个子图
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 使用 subplots 创建 2x1 的网格布局
fig, axs = plt.subplots(2, 1)

# 绘制子图
axs[0].plot(x, y1)
axs[0].set_title('Sine')

axs[1].plot(x, y2)
axs[1].set_title('Cosine')

plt.tight_layout()
plt.show()

5.subplot2gird 函数

subplot2grid()matplotlib 中一个功能强大的函数,用于在一个图形窗口中创建不规则布局的子图。与 subplot() 不同,subplot2grid() 允许你定义一个更为灵活的网格布局,并指定每个子图的占据区域,而不是强制要求按行列索引排列。

使用语法:

ax = plt.subplot2grid(shape, loc, rowspan=1, colspan=1)

参数说明:

  • shape:定义整个网格的大小,通常是一个二元组 (nrows, ncols),表示总共有多少行和多少列。
  • loc:指定当前子图的位置,通常是一个二元组 (row, col),表示子图的起始位置(从 0 开始)。
  • rowspan:指定当前子图占据的行数(默认为 1),如果需要跨越多行,可以设置为大于 1 的值。
  • colspan:指定当前子图占据的列数(默认为 1),如果需要跨越多列,可以设置为大于 1 的值。
  • **kwargs:额外的可选参数,用于设置子图的属性,例如图形标题、坐标轴标签等。

使用实例:

1. 创建一个简单的 3x3 网格,并将子图设置为跨越多个行和列
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)

# 创建 3x3 网格
plt.figure(figsize=(8, 6))

# 第一个子图,位置为 (0, 0),占用 1 行 1 列
plt.subplot2grid((3, 3), (0, 0))
plt.plot(x, y1)
plt.title('Sine')

# 第二个子图,位置为 (0, 1),占用 1 行 1 列
plt.subplot2grid((3, 3), (0, 1))
plt.plot(x, y2)
plt.title('Cosine')

# 第三个子图,位置为 (1, 0),占用 2 行 1 列(跨越第二行)
plt.subplot2grid((3, 3), (1, 0), rowspan=2)
plt.plot(x, y3)
plt.title('Tangent')

# 调整布局,避免重叠
plt.tight_layout()

plt.show()
  • plt.subplot2grid((3, 3), (0, 0)) 创建了一个 3x3 网格中的第一个子图,位于第一行第一列。
  • plt.subplot2grid((3, 3), (0, 1)) 创建了第二个子图,位于第一行第二列。
  • plt.subplot2grid((3, 3), (1, 0), rowspan=2) 创建了第三个子图,位于第二列,并且跨越了第二行和第三行。
2. 自定义网格布局,创建复杂的子图排列
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)

# 创建一个 4x4 的网格
plt.figure(figsize=(10, 8))

# 第一个子图,位于位置 (0, 0)
plt.subplot2grid((4, 4), (0, 0))
plt.plot(x, y1)
plt.title('Sine')

# 第二个子图,位于位置 (0, 1),跨越 2 列
plt.subplot2grid((4, 4), (0, 1), colspan=2)
plt.plot(x, y2)
plt.title('Cosine')

# 第三个子图,位于位置 (1, 0),占 2 行 1 列
plt.subplot2grid((4, 4), (1, 0), rowspan=2)
plt.plot(x, y3)
plt.title('Tangent')

# 第四个子图,位于位置 (3, 3)
plt.subplot2grid((4, 4), (3, 3))
plt.plot(x, y1)
plt.title('Sine Again')

plt.tight_layout()
plt.show()
  • plt.subplot2grid((4, 4), (0, 0)) 创建了一个 4x4 网格中的第一个子图。
  • plt.subplot2grid((4, 4), (0, 1), colspan=2) 创建了第二个子图,它跨越了第二列和第三列。
  • plt.subplot2grid((4, 4), (1, 0), rowspan=2) 创建了第三个子图,它跨越了第二行和第三行。
  • plt.subplot2grid((4, 4), (3, 3)) 创建了第四个子图,它位于最后一个位置。
3. 共享坐标轴的子图布局

使用 subplot2grid() 时,可以通过手动设置坐标轴共享来使多个子图共享 x 轴或 y 轴。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建一个 2x2 的网格
plt.figure(figsize=(8, 6))

# 第一个子图,位置为 (0, 0)
ax1 = plt.subplot2grid((2, 2), (0, 0))
ax1.plot(x, y1)
ax1.set_title('Sine')

# 第二个子图,位置为 (0, 1),共享 y 轴
ax2 = plt.subplot2grid((2, 2), (0, 1), sharey=ax1)
ax2.plot(x, y2)
ax2.set_title('Cosine')

plt.tight_layout()
plt.show()
  • 第一个子图 ax1 绘制了 y1(正弦)。
  • 第二个子图 ax2 绘制了 y2(余弦),并且共享了 ax1 的 y 轴(sharey=ax1)。

6.grid 函数

matplotlib 中,grid() 函数用于控制图形中的网格线显示。网格线是为了使得图形中的数据更易于读取,它帮助我们定位坐标轴上的数据值。

使用语法:

ax.grid(b=None, which='major', axis='both', **kwargs)

参数说明:

  • b:布尔值,表示是否显示网格。如果为 True,显示网格;如果为 False,隐藏网格;如果为 None(默认值),则自动设置网格的显示。

  • which:指定网格的显示范围,取值包括:

    • 'major':只显示主网格线(默认值)。
    • 'minor':只显示次网格线。
    • 'both':显示主网格线和次网格线。
  • axis:指定显示网格的坐标轴,取值包括:

    • 'both':显示 x 和 y 轴的网格线(默认值)。
    • 'x':仅显示 x 轴的网格线。
    • 'y':仅显示 y 轴的网格线。
  • color:网格线的颜色,可以使用颜色名称(如 'k',表示黑色),或者 RGB/RGBA 值。

  • linestyle:网格线的样式,可以是:

    • '-'(实线,默认值)
    • '--'(虚线)
    • ':'(点线)
    • '-.'(点划线)
  • linewidth:网格线的宽度,默认值为 0.5,可以通过此参数调整网格线的粗细。

  • **kwargs:其他额外的参数,用于设置网格线的属性(例如透明度 alpha、线型 dashes 等)。

使用实例:

1.显示网格线
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y)

# 开启网格线
plt.grid(True)

plt.show()
2.仅显示 x 轴的网格线
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.cos(x)

plt.plot(x, y)

# 仅显示 x 轴的网格线
plt.grid(True, axis='x')

plt.show()

axis='x' 只显示 x 轴上的网格线。

3.仅显示 y 轴的网格线
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.tan(x)

plt.plot(x, y)

# 仅显示 y 轴的网格线
plt.grid(True, axis='y')

plt.show()
 4.显示主网格线和次网格线
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y)

# 开启主网格线和次网格线
plt.grid(True, which='both')

# 显示次刻度
plt.minorticks_on()

plt.show()
  • plt.grid(True, which='both') 启用了主网格线和次网格线。
  • plt.minorticks_on() 显示了次刻度线,进而显示次网格线。

7.xscale 和 yscale 函数

matplotlib 中,xscale()yscale() 函数用于设置坐标轴的缩放方式,即控制 x 轴和 y 轴的刻度类型。通过这些函数,你可以设置坐标轴为线性(linear)、对数(log)、对数平方(symlog)等不同的缩放方式。

基本语法

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

参数说明

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

使用实例:

1.对数缩放
import matplotlib.pyplot as plt
import numpy as np

x = np.logspace(0.1, 2, 100)  # 创建对数分布的数据
y = np.sqrt(x)

plt.plot(x, y)
plt.xscale('log')  # 设置 x 轴为对数缩放
plt.show()
2.其他的可自行尝试

xscale() 和 yscale() 的其他可选缩放类型

除了线性和对数缩放,matplotlib 还支持一些特殊的坐标轴类型,比如:

  • logit:适用于显示概率数据,常用于机器学习中的概率值展示。
  • symlog:对数平方缩放,允许显示负数,适用于值跨越零的情况。

8.set_xlim 和 set_ylim 函数

set_xlim()set_ylim() 函数用于设置坐标轴的显示范围,即控制 x 轴和 y 轴的数值区间。通过这些函数,你可以精确地控制坐标轴的最小值和最大值,从而调整图形的显示区域,突出显示特定的数据范围。

使用语法:

ax.set_xlim(left, right)
ax.set_ylim(bottom, top)

参数说明:

  • left:x 轴的最小值。如果未指定,matplotlib 将自动决定。
  • right:x 轴的最大值。如果未指定,matplotlib 将自动决定。
  • **kwargs:额外的可选参数,用于设置 x 轴的其他属性,例如 linearlog 等。

使用实例:

1.设置x轴范围
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y)

# 设置 x 轴的范围
plt.xlim(2, 8)  # 设置 x 轴范围为 [2, 8]

plt.show()
2.设置y轴的范围
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.cos(x)

plt.plot(x, y)

# 设置 y 轴的范围
plt.ylim(-0.5, 0.5)  # 设置 y 轴范围为 [-0.5, 0.5]

plt.show()
3.也可以给各个子图设置
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, axs = plt.subplots(2)

# 绘制第一个子图
axs[0].plot(x, y1)
axs[0].set_xlim(0, 5)  # 设置第一个子图的 x 轴范围
axs[0].set_ylim(-1, 1)  # 设置第一个子图的 y 轴范围

# 绘制第二个子图
axs[1].plot(x, y2)
axs[1].set_xlim(5, 10)  # 设置第二个子图的 x 轴范围
axs[1].set_ylim(-1, 1)  # 设置第二个子图的 y 轴范围

plt.show()

9.set_xticks 和 set_yticks 函数

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

使用语法:

ax.set_xticks(ticks)
ax.set_yticks(ticks)

参数说明:

ticks: 一个包含刻度位置的列表或数组

使用实例:

设置x轴刻度

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y)

# 设置 x 轴的刻度位置
plt.xticks([0, 2, 4, 6, 8, 10])  # 设置 x 轴刻度线的位置

plt.show()
次刻度线(Minor Ticks)

你也可以通过设置 minor=True 来控制次刻度线的位置。次刻度线通常用于显示更加细致的数据间隔。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y)

# 设置 x 轴的主刻度
plt.xticks([0, 2, 4, 6, 8, 10])

# 设置 x 轴的次刻度
plt.gca().set_xticks(np.arange(0, 10, 0.5), minor=True)

# 显示次刻度
plt.minorticks_on()

plt.show()
  • plt.xticks([0, 2, 4, 6, 8, 10]) 设置了主刻度。
  • plt.gca().set_xticks(np.arange(0, 10, 0.5), minor=True) 设置了次刻度,间隔为 0.5
  • plt.minorticks_on() 启用了次刻度的显示。

10.twinx 和 twiny 函数

twinx()twiny() 函数用于创建具有共享 x 轴或 y 轴的多个坐标轴。它们使得在一个图形中绘制两个具有不同 y 轴(或 x 轴)刻度的图表成为可能。具体来说:

  • twinx() 用于创建共享 x 轴,但有独立 y 轴的第二个坐标轴。
  • twiny() 用于创建共享 y 轴,但有独立 x 轴的第二个坐标轴。

这些函数非常有用,尤其是在需要在同一张图表上展示具有不同尺度的数据时。

使用语法:

ax2 = ax.twinx()
  • ax 是原始坐标轴对象,调用 twinx() 会创建一个新的坐标轴 ax2,该坐标轴共享 ax 的 x 轴,但具有独立的 y 轴。

使用实例:

1.使用 twinx() 创建共享 x 轴的两个 y 轴
import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.exp(x / 3)

fig, ax1 = plt.subplots()

# 绘制第一个 y 轴的图形
ax1.plot(x, y1, 'g-', label='sin(x)')
ax1.set_xlabel('x')
ax1.set_ylabel('sin(x)', color='g')
ax1.tick_params(axis='y', labelcolor='g')

# 创建共享 x 轴的第二个 y 轴
ax2 = ax1.twinx()
ax2.plot(x, y2, 'b-', label='exp(x/3)')
ax2.set_ylabel('exp(x/3)', color='b')
ax2.tick_params(axis='y', labelcolor='b')

plt.show()
  • ax1 是第一个坐标轴,它绘制了 sin(x) 数据,并且 y 轴的刻度是绿色的。
  • ax2 是通过 ax1.twinx() 创建的共享 x 轴的新坐标轴,它绘制了 exp(x/3) 数据,y 轴刻度是蓝色的。
2.使用 twiny() 创建共享 y 轴的两个 x 轴
import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x1 = np.linspace(0, 10, 100)
y = np.log(x1 + 1)
x2 = np.linspace(0, 100, 100)

fig, ax1 = plt.subplots()

# 绘制第一个 x 轴的图形
ax1.plot(x1, y, 'r-', label='log(x + 1)')
ax1.set_xlabel('x1')
ax1.set_ylabel('log(x + 1)', color='r')
ax1.tick_params(axis='y', labelcolor='r')

# 创建共享 y 轴的第二个 x 轴
ax2 = ax1.twiny()
ax2.plot(x2, y, 'g-', label='linear scale')
ax2.set_xlabel('x2')
ax2.tick_params(axis='x', labelcolor='g')

plt.show()
  • ax1 是第一个坐标轴,绘制了 log(x + 1) 数据,并且 x 轴的刻度是红色的。
  • ax2 是通过 ax1.twiny() 创建的共享 y 轴的新坐标轴,它绘制了一个不同的数据集(线性数据),并且 x 轴刻度是绿色的。
3. 在同一张图中使用 twinx() 和 twiny()
import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x1 = np.linspace(0, 10, 100)
y1 = np.sin(x1)
y2 = np.log(x1 + 1)
x2 = np.linspace(0, 100, 100)

fig, ax1 = plt.subplots()

# 绘制第一个 y 轴的图形
ax1.plot(x1, y1, 'r-', label='sin(x)')
ax1.set_xlabel('x1')
ax1.set_ylabel('sin(x)', color='r')
ax1.tick_params(axis='y', labelcolor='r')

# 创建共享 x 轴的第二个 y 轴
ax2 = ax1.twinx()
ax2.plot(x1, y2, 'b-', label='log(x + 1)')
ax2.set_ylabel('log(x + 1)', color='b')
ax2.tick_params(axis='y', labelcolor='b')

# 创建共享 y 轴的第二个 x 轴
ax3 = ax1.twiny()
ax3.plot(x2, y1, 'g-', label='sin(x) on a different scale')
ax3.set_xlabel('x2')
ax3.tick_params(axis='x', labelcolor='g')

plt.show()
  • ax1 和 ax2 使用 twinx() 共享 x 轴,并分别显示 sin(x) 和 log(x + 1) 数据。
  • ax3 使用 twiny() 创建一个新的坐标轴,且它共享 y 轴,显示了不同的数据(sin(x))。

11.柱状图

柱状图(Bar Chart)是一种常用的数据可视化工具,用于展示分类数据的分布情况。

使用语法:

ax.bar(x, height, width=0.8, bottom=None, align='center', **kwargs)

参数说明:

  • x: 柱状图的 X 轴位置。

  • height: 柱状图的高度。

  • width: 柱状图的宽度,默认为 0.8。

  • bottom: 柱状图的底部位置,默认为 0。

  • align: 柱状图的对齐方式,可以是 'center'(居中对齐)或 'edge'(边缘对齐)。

  • **kwargs: 其他可选参数,用于定制柱状图的外观,如 color、edgecolor、linewidth 等。

使用实例:

1.基本柱状图
import matplotlib.pyplot as plt

# 类别和对应的值
categories = ['A', 'B', 'C', 'D']
values = [3, 7, 5, 10]

plt.bar(categories, values)  # 绘制柱状图
plt.xlabel('Categories')     # x 轴标签
plt.ylabel('Values')         # y 轴标签
plt.title('Basic Bar Chart') # 图表标题

plt.show()
2.设置颜色等
import matplotlib.pyplot as plt

categories = ['A', 'B', 'C', 'D']
values = [3, 7, 5, 10]

# 设置柱子颜色
plt.bar(categories, values, color='skyblue')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Bar Chart with Custom Colors')

plt.show()
3.水平柱状图

通过 barh() 函数,可以绘制水平的柱状图。

import matplotlib.pyplot as plt

categories = ['A', 'B', 'C', 'D']
values = [3, 7, 5, 10]

# 绘制水平柱状图
plt.barh(categories, values, color='lightgreen')

plt.xlabel('Values')
plt.ylabel('Categories')
plt.title('Horizontal Bar Chart')

plt.show()
4.堆叠柱状图 (Stacked Bar Chart)

堆叠柱状图通过将多个数据系列“堆叠”在同一个柱子上,以显示每个类别的多个值。

import matplotlib.pyplot as plt
import numpy as np

# 类别和不同数据系列
categories = ['A', 'B', 'C', 'D']
values1 = [3, 7, 5, 10]
values2 = [1, 4, 2, 6]

# 创建堆叠柱状图
plt.bar(categories, values1, label='Series 1', color='skyblue')
plt.bar(categories, values2, bottom=values1, label='Series 2', color='lightcoral')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Stacked Bar Chart')
plt.legend()

plt.show()
5.分组柱状图 (Grouped Bar Chart)

分组柱状图适用于展示每个类别下多个系列数据的比较,每个类别内会有多个并排的柱子。

import matplotlib.pyplot as plt
import numpy as np

# 类别和不同数据系列
categories = ['A', 'B', 'C', 'D']
values1 = [3, 7, 5, 10]
values2 = [1, 4, 2, 6]

# 设置柱子宽度
bar_width = 0.35
index = np.arange(len(categories))

# 绘制第一个系列
plt.bar(index, values1, bar_width, label='Series 1', color='skyblue')

# 绘制第二个系列
plt.bar(index + bar_width, values2, bar_width, label='Series 2', color='lightcoral')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Grouped Bar Chart')
plt.xticks(index + bar_width / 2, categories)  # 设置 x 轴的标签位置
plt.legend()

plt.show()

12.直方图

直方图(Histogram)是一种常用的数据可视化工具,用于展示数值数据的分布情况。

使用语法:

ax.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, **kwargs)

使用实例:

from matplotlib import pyplot as plt
import numpy as np

# 生成随机数据,生成均值为 0,标准差为 1 的标准正态分布的随机样本
data = np.random.randn(1000)

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

# 绘制直方图
ax.hist(data, bins=30, color='skyblue', edgecolor='black')

# 设置标题和标签
ax.set_title('Simple Histogram')
ax.set_xlabel('Value')
ax.set_ylabel('Frequency')

# 显示图形
plt.show()

13.饼图

饼图是一种常见的可视化图表,用于展示各部分占总体的比例,适用于类别数据的可视化。matplotlib 提供了 pie() 函数来绘制饼图。饼图将一个圆形分成若干扇形,每个扇形的面积与该类别的数值成比例。

使用语法:

ax.pie(x, explode=None, labels=None, colors=None, autopct=None, shadow=False, startangle=0, **kwargs)

参数说明:

  • x:各部分的数值或比例,必须是一个列表或数组。
  • labels:对应每个部分的标签,通常是类别名。
  • colors:为每个部分指定颜色,可以传递颜色名称、RGB值、或颜色列表。
  • explode:用于突出显示某个部分,传递一个与 x 长度相同的数组,指定每个部分的“爆炸”程度。
  • autopct:显示百分比的格式,可以是 '%1.1f%%' 或自定义格式化字符串。
  • startangle:饼图起始角度,控制第一个扇形的位置。
  • radius:饼图的半径,控制饼图的大小。
  • wedgeprops:字典,控制扇形的外观,例如边框颜色、宽度等。

使用实例:

1.基本饼图
import matplotlib.pyplot as plt

# 数据
sizes = [15, 30, 45, 10]  # 各部分的数值
labels = ['A', 'B', 'C', 'D']  # 各部分的标签

# 绘制饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%')

plt.title('Basic Pie Chart')
plt.show()
  • sizes:表示每个部分的大小。
  • labels:为每个部分指定标签。
  • autopct='%1.1f%%':显示每个部分所占的百分比,并保留一位小数。
2.指定颜色
import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99']  # 自定义颜色

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')

plt.title('Pie Chart with Custom Colors')
plt.show()
3. 突出显示某一部分(explode

通过 explode 参数,你可以将某一部分突出显示,常用于突出重要的类别。

import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']
explode = (0.1, 0, 0, 0)  # 让第一个部分('A')突出显示

plt.pie(sizes, labels=labels, autopct='%1.1f%%', explode=explode)

plt.title('Pie Chart with Exploded Section')
plt.show()
  • explode 的值 (0.1, 0, 0, 0) 表示第一个部分 'A' 被“爆炸”出来,其他部分保持原位。
4. 调整起始角度(startangle

你可以通过 startangle 参数旋转饼图,控制第一个扇形的起始位置。

import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']

plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)

plt.title('Pie Chart with Custom Start Angle')
plt.show()
  • startangle=90 将饼图的第一个扇形旋转到 90 度的位置。
5.圆形饼图和椭圆形饼图

通过设置 radius 参数,可以调整饼图的大小

import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']

# 设置 radius 参数
plt.pie(sizes, labels=labels, autopct='%1.1f%%', radius=1.2)

plt.title('Pie Chart with Custom Radius')
plt.show()
6.带有百分比的自定义格式:

如果你希望显示特定格式的百分比,可以使用 autopct 参数。常用的格式化字符串有:

  • '%1.1f%%':保留 1 位小数的百分比。
  • '%d%%':显示整数百分比。
  • lambda x: f'{x:.2f}%':使用自定义格式。
import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']

# 自定义百分比格式
plt.pie(sizes, labels=labels, autopct=lambda x: f'{x:.2f}%')

plt.title('Pie Chart with Custom Percentage Format')
plt.show()
7.显示百分比之外的更多信息:

你也可以在 autopct 中显示除了百分比之外的其他信息。

import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']

# 自定义百分比格式
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, 
        wedgeprops={'edgecolor': 'black'})  # 为每个扇形添加边框

plt.title('Pie Chart with Edge Borders')
plt.show()
8.显示饼图的中心

为了让饼图看起来更美观,通常会将饼图的中心设置为空白区域,通过绘制一个白色圆圈覆盖住中央部分。

import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']

# 绘制饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)

# 绘制中心圆,白色覆盖饼图中心
centre_circle = plt.Circle((0, 0), 0.70, color='white', fc='white', linewidth=1)
plt.gca().add_artist(centre_circle)

plt.title('Donut Chart (Pie Chart with Center Cut Out)')
plt.show()

14.散点图

散点图(Scatter Plot)是一种常用的数据可视化工具,用于展示两个变量之间的关系。

使用语法:

ax.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, **kwargs)

参数说明:

  • x: X 轴数据。

  • y: Y 轴数据。

  • s: 点的大小,可以是标量或数组。

  • c: 点的颜色,可以是标量、数组或颜色列表。

  • marker: 点的形状,默认为 'o'(圆圈)。

  • cmap: 颜色映射,用于将颜色映射到数据。

  • norm: 归一化对象,用于将数据映射到颜色映射。

  • vmin, vmax: 颜色映射的最小值和最大值。

  • alpha: 点的透明度,取值范围为 0 到 1。

  • linewidths: 点的边框宽度。

  • edgecolors: 点的边框颜色。

  • **kwargs: 其他可选参数,用于定制散点图的外观。

使用实例:

1.基本
import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 绘制散点图
plt.scatter(x, y)

plt.xlabel('X Axis')  # x 轴标签
plt.ylabel('Y Axis')  # y 轴标签
plt.title('Basic Scatter Plot')  # 图表标题

plt.show()
  • x 和 y 是我们要绘制的两个变量。
  • scatter() 函数根据 x 和 y 的值绘制出散点图。
2.设置点的颜色和大小

你可以通过 c 参数设置每个点的颜色,通过 s 参数设置每个点的大小。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
sizes = [20, 50, 100, 200, 500]  # 设置点的大小
colors = [0, 1, 2, 3, 4]  # 设置点的颜色,数字会映射为不同的颜色

plt.scatter(x, y, s=sizes, c=colors, cmap='viridis', alpha=0.7)

plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.title('Scatter Plot with Custom Colors and Sizes')

plt.colorbar()  # 显示颜色条,映射到 `c` 的值
plt.show()
  • sizes 列表决定了每个点的大小。
  • colors 列表决定了每个点的颜色,cmap 用于定义颜色的映射。
  • alpha=0.7 设置透明度,使得点稍微透明。
  • colorbar() 添加一个颜色条,帮助我们理解颜色和数值的对应关系。
2.设置点的形状和透明度

你可以通过 marker 参数设置散点的形状,并通过 alpha 控制透明度。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.scatter(x, y, marker='^', color='red', alpha=0.5)

plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.title('Scatter Plot with Custom Marker and Transparency')

plt.show()
  • marker='^' 设置每个数据点为三角形。
  • color='red' 设置所有点的颜色为红色。
  • alpha=0.5 设置透明度为 50%。
3.不同颜色、大小和形状的多个类别

如果数据分为多个类别,可以使用不同的颜色、大小或形状来区分不同的类别

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11, 8, 6, 7, 10, 12]
categories = ['A', 'A', 'B', 'B', 'A', 'B', 'B', 'A', 'A', 'B']

# 为不同类别设置颜色和大小
colors = ['red' if cat == 'A' else 'blue' for cat in categories]
sizes = [50 if cat == 'A' else 100 for cat in categories]

plt.scatter(x, y, c=colors, s=sizes, alpha=0.6)

plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.title('Scatter Plot with Different Categories')

plt.show()
  • 根据 categories 列表的内容,将点的颜色和大小分为两类。
  • red 表示类别 A,blue 表示类别 B。
  • 点的大小根据类别分别为 50 和 100。
4.带有回归线的散点图

散点图常常用来查看两个变量之间是否存在某种关系。如果你希望在散点图中添加回归线(如线性拟合线),可以使用 numpy 来计算回归线的参数。

import matplotlib.pyplot as plt
import numpy as np

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 计算回归线
m, b = np.polyfit(x, y, 1)  # 线性拟合

# 绘制散点图
plt.scatter(x, y, color='blue')

# 绘制回归线
plt.plot(x, [m*i + b for i in x], color='red', linestyle='--')

plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.title('Scatter Plot with Regression Line')

plt.show()
  • np.polyfit(x, y, 1) 计算线性回归的斜率和截距,1 表示拟合一次方程(线性关系)。
  • plt.plot() 绘制回归线,color='red' 设置回归线的颜色为红色。
5.散点图的自定义样式

调整坐标轴的范围:

使用 xlim()ylim() 来设置 x 和 y 轴的范围。

plt.xlim(0, 6)
plt.ylim(0, 12)

设置网格线:

使用 grid(True) 来显示网格。

plt.grid(True)

添加数据标签:

可以通过循环在每个点上添加标签,便于理解数据点的意义。

for i in range(len(x)):
    plt.text(x[i], y[i], f'({x[i]}, {y[i]})')

标签:plot,plt,回顾,子图,基础,Matplotlib,matplotlib,np,import
From: https://blog.csdn.net/ETH_escober/article/details/144747438

相关文章

  • 人工智能基础导论
    人工智能基础导论绪论人工智能的主要流派符号主义(逻辑主义)连接主义(仿生学派)行为主义(控制论)符号主义:数理逻辑→逻辑演绎系统→启发式算法→专家系统→知识工程理论与技术(主流)缺点:符号主义的核心是知识表示,那么对于像感知、形象思维、模式识别等问题,又该如何“表示”呢?......
  • 2024-2025-1 20241401 《计算机基础与程序设计》 第十四周学习总结
    班级链接2024计算机基础与程序设计作业要求第十四周作业教材学习内容总结《C语言程序设计》第13-14章第13章文件操作二进制文件和文本文件:介绍了文件的两种基本类型,二进制文件和文本文件,以及它们的区别。文件的打开和关闭:介绍在C语言中打开和关闭文件的方式......
  • STM32基础控制
    执行底盘STM32控制版###电源###驱动器:放大控制信号###电机、舵机:电机+编码器+减速器###轮子###控制器与运动地盘:里程计和IMU####IMU:角速度和加速度####里程计:三轴速度、###运动学公式解析####轮距+轴距+三轴电机给的速度感知:传感器相机雷达ROS主控树......
  • 关于LC串、并联谐振回路相关公式的基础概念提要
    串联谐振:阻抗最小,电流最大,用于放大特定频率的信号。并联谐振:阻抗最大,电流最小,用于选择或过滤特定频率的信号。1.每个符号的基本含义我们从最基础的每个符号含义开始:电路参数符号R:电阻表示电路中对电流的阻碍程度,单位是欧姆(Ω)。电阻会消耗电能,转化为热能。L:电感是......
  • 自主重装服务器后无法配置基础软件怎么办?
    如果您在自主重装服务器后遇到无法配置基础软件的问题,可以尝试以下步骤解决:检查网络配置:确认服务器的公网IP已正确配置,确保可以通过外网访问服务器。更换软件源:如果基础包下载失败,尝试更换为其他可靠的软件源。例如,CentOS用户可以切换到国内的镜像源。验证依赖关系......
  • 2024-2025-1 20241322 《计算机基础与程序设计》第十四周学习总结
    2024-2025-120241322《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14这个作业的目标自学教材《C语言......
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
       这篇文章没有什么套路。就是一套自学理论和方向,具体的需要配合网络黑白去学习。毕竟是有网络才会有黑白!有自学也有培训!1.打死也不要相信什么分分钟钟教你成为大黑阔的,各种包教包会的教程,就算打不死也不要去购买那些所谓的盗号软件之类的东西。2,我之前让你们在没......
  • IP组播基础
    点到多点业务:比如IPTV、视频会议等,可以使用组播、广播、单播承载,比如A,B,C都要收看视频X单播会占用大量带宽,导致服务器压力极大广播会发送给所有的终端,存在安全隐患组播会避免上面两个方式的问题IP组播基本概念组播技术有效地满足了单点发送、多点接收的需求,实现了IP网络......
  • 速成黑客大佬?30天网络安全零基础自学宝典!新手必看
     很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。网络安全学习路线&学习资源我给大家整理了一些网络安全的资料,大家不想一个一个去找的话,可以参考一下这些......
  • 【深度学习基础|知识概述】基础数学和理论知识中的概率与统计知识:概率与概率分布、最
    【深度学习基础|知识概述】基础数学和理论知识中的概率与统计知识:概率与概率分布、最大似然估计、损失函数的应用,附代码。【深度学习基础|知识概述】基础数学和理论知识中的概率与统计知识:概率与概率分布、最大似然估计、损失函数的应用,附代码。文章目录【深度学习基......