python绘图matplotlib——使用记录1

本博文来自于网络收集,如有侵权请联系删除

使用matplotlib绘图

  • 1 常用函数汇总
    • 1.1 plot
    • 1.2 legend
    • 1.3 scatter
    • 1.4 xlim
    • 1.5 xlabel
    • 1.6 grid
    • 1.7 axhline
    • 1.7 axvspan
    • 1.8 annotate
    • 1.9 text
    • 1.10 title
  • 2 常见图形绘制
    • 2.1 bar——柱状图
    • 2.2 barh——条形图
    • 2.3 hist——直方图
      • 堆积直方图
    • 阶梯型直方图
    • 2.4 pie——饼图
      • 示例1
      • 示例2
      • 内嵌环饼形图
    • 2.5 polar——极线图
    • 2.6 scatter——气泡图
    • 2.7 stem——棉棒图
    • 2.8 boxplot——箱线图
      • 示例1
      • 示例2
    • 2.9 errorbar——误差棒图
  • 3 常用统计图
    • 3.1 堆积柱状图
    • 3.2 堆积条形图
    • 3.3 并列柱状图
    • 3.4 并列条形图
    • 3.5 堆积折线图
    • 3.6 间断条形图
    • 3.7 阶梯图

matplotlib的具体用法 官网的介绍是最全的,此处只针对平时常用的绘图进行了记录

1 常用函数汇总

1.1 plot

reference:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html
函数:plt.plot(x, y, c=‘r’, marker=‘o’, ls=‘-’, lw=1, ms=1, label=‘line1’)
参数:

  • x: x轴上的数值
  • y: y轴上的数值
  • marker:点的形状
  • c: color, 颜色
  • ls: Line Styles,如,‘-’,‘–’,‘-.’,‘:’
  • lw: linewidth,线条宽度
  • label: 标记图形内容的标签文本

注,plt.plot(x, y, ‘r^:’, lw=1, ms=5, label=‘line1’)
点的颜色、形状、线型通常写在一起,如
label需要与plt.legend配合使用,

1.2 legend

reference:https://matplotlib.org/stable/api/legend_api.html
函数:plt.legend(loc=‘best’)
参数:

  • loc:图例在途中的位置,如,‘upper right’, ‘lower left’, '‘upper center’'等

代码示例

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0.05, 10, 1000)
y = np.sin(x)plt.plot(x, y, marker='o', ls='-', c='r', lw=1, ms=1, label='line1')
# plt.plot(x, y, 'r^:', lw=1, ms=5, label='line1')
plt.legend(loc='best')
plt.show()

1.3 scatter

函数:plt.scatter(x, y, c=‘b’, label=‘scatter1’)
参数:

  • x: x轴上的数值
  • y: y轴上的数值
  • c:颜色
  • label: 标记图形内容的标签文本
import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0.05, 10, 50)
y = np.sin(x)
y2 = np.cos(x)plt.scatter(x, y, c='b', label='scatter1')
plt.scatter(x, y2, c='r', label='scatter1')
plt.legend()
plt.show()

在这里插入图片描述

1.4 xlim

函数:plt.xlim(xmin, xmax)
参数:

  • xmin: x轴上的最小值
  • ymin: x轴上的最大值
  • 平移性:plt.ylim(ymin, ymax)

1.5 xlabel

函数:plt.xlabel(string)
参数:

  • string: 标签文本内容
  • 平移性:plt.ylabel(string)

1.6 grid

函数:plt.grid(linestyle=‘:’, color="r)
参数:

  • linestyle: 网格线的线条风格
  • color: 网格线的线条颜色

1.7 axhline

绘制平行与x轴的水平参考线
函数:plt.axhline(y=0, c=‘b’, ls=‘–’, lw=2)
参数:

  • y: 水平参考线的出发点
  • c: 参考线的线条颜色
  • ls: 参考线的线条风格
  • lw: 参考线的线条宽度
  • 平移性: plt.axvline(), 绘制平行与y轴的参考线

1.7 axvspan

绘制垂直于x轴的参考区域。
函数:plt.axvspan(xmin=1, xmax=2, facecolor=‘y’, alpha=0.3)
参数:

  • xmin: 参考区域的起始位置。
  • ymin: 参考区域的终止位置。
  • facecolor: 参看区域的填充颜色。
  • alpha: 参考区域的填充颜色的透明度。
  • 平移性: axhspan()
import numpy as np
from matplotlib import pyplot as pltx = np.linspace(0.05, 10, 1000)
y = np.sin(x)plt.plot(x, y, ls='-.', c="c", label="sin(x)")plt.legend()plt.axvspan(xmin=4.0, xmax=6.0, facecolor="y", alpha=0.3)
plt.axhspan(ymin=0.0, ymax=0.5, facecolor="y", alpha=0.3)plt.show()

在这里插入图片描述

1.8 annotate

添加图形内容细节的指向型注释文本。
函数:plt.annotate(“maximum”, xy=(np.pi / 2, 1), xytext=((np.pi / 2) + 1, .8), weight=“bold”, color=‘b’, arrowprops=dict(arrowstyle=“->”, connectionstyle=“arc3”, color=“b”))
参数:

  • string: 图形内容的注释文本。
  • xy: 被注释图形内容的位置坐标。
  • xytext: 注释文本的位置坐标。
  • weight: 注释文本的字体粗细风格。
  • color: 注释文本的字体颜色。
  • arrowprops: 指示被注释内容的箭头的属性字典。
import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0.05, 10, 1000)
y = np.sin(x)plt.plot(x, y, ls="-.", lw=2, c="g", label='sin(x)')
plt.legend()plt.annotate("maximum", xy=(np.pi / 2, 1), xytext=((np.pi / 2) + 1, .8), weight="bold", color='black',arrowprops=dict(arrowstyle="->", connectionstyle="arc3", color="r"))plt.show()

在这里插入图片描述

1.9 text

添加图形内容细节的无指向型注释文本
函数:plt.text(4, 0.1, “y=sin(x)”, weight=“bold”, color=“b”)
参数:

  • x: 注释文本内容所在位置的横坐标
  • y: 注释文本内容所在位置的纵坐标
  • string: 注释文本内容
  • weight: 注释文本内容的粗细风格
  • color: 注释文本内容的字体颜色
import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0.05, 10, 1000)
y = np.sin(x)plt.plot(x, y, ls='-.', lw=2, c="c", label="sin(x)")plt.legend()
plt.text(4, 0.1, "y=sin(x)", weight="bold", color="b")
plt.show()

在这里插入图片描述

1.10 title

添加图形内容的标题
函数:plt.title(string)
参数:

  • string: 图形内容的标题文本

2 常见图形绘制

2.1 bar——柱状图

函数:plt.bar(x, y, align=“center”, color=“c”, tick_label=x_label, hatch=“/”)
参数:

  • x: 柱状图中的柱体标签值。
  • y: 柱状图中的柱体高度。
  • align: 柱体对齐方式
  • color: 柱体颜色
  • tick_label: 刻度标签值
  • alpha: 柱体的透明度
  • hatch: 柱体的填充样式,如"/", “\”, “|”, "-"等,符号字符串的符号数量越多,柱体的几何图形的密集程度就越高。
import matplotlib as mpl
import matplotlib.pyplot as plt
from plotly.figure_factory import npmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsex = [i for i in range(0, 10, 1)]
y = np.random.randint(1, 20, size=10)x_label = [chr(i) for i in range(97, 97+10, 1)]
plt.bar(x, y, align="center", color="c", tick_label=x_label, hatch="/")plt.xlabel("x")
plt.ylabel("y")
plt.show()

在这里插入图片描述

2.2 barh——条形图

import matplotlib as mpl
import matplotlib.pyplot as plt
from plotly.figure_factory import npmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsex = [i for i in range(0, 10, 1)]
y = np.random.randint(1, 20, size=10)x_label = [chr(i) for i in range(97, 97+10, 1)]
plt.barh(x, y, align="center", color="c", tick_label=x_label, hatch="/")plt.xlabel("x")
plt.ylabel("y")
plt.show()

在这里插入图片描述

2.3 hist——直方图

直方图是用来展现连续型数据分布特征的统计图形,利用直方图可直观地分析出数据的集中趋势和波动情况。
函数:plt.hist(x)
参数:

  • x: 连续型数据输入值
  • bins: 用于确定柱体的个数或是柱体边缘范围
  • color: 柱体的颜色
  • histtype: 柱体类型
  • label: 图例内容
  • rwidth: 柱体宽度
import matplotlib as mpl
import matplotlib.pyplot as plt
from plotly.figure_factory import npmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsex = np.random.randint(0, 10, 100)
y = range(0, 6, 1)plt.hist(x, bins=y, color='c', histtype="bar", rwidth=1, alpha=0.6)plt.xlabel("x")
plt.ylabel("y")
plt.show()

在这里插入图片描述
除最后一个柱体的数据范围是闭区间,其它柱体的数据范围都是左闭右开区间。
总结,柱状图与直方图的区别:
直方图描述的是连续型数据的分布,柱状图描述的是离散型数据分布;柱状图的柱体之间有空隙,直方图的柱体之间无空隙。

堆积直方图

import matplotlib as mpl
import matplotlib.pyplot as plt
from plotly.figure_factory import npmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsex1 = np.random.randint(0, 10, 100)
x2 = np.random.randint(0, 10, 100)
y = range(0, 10, 1)plt.hist([x1, x2], bins=y, color=['c', 'y'], histtype="bar", rwidth=1, stacked=True, alpha=0.6)plt.xlabel("x")
plt.ylabel("y")
plt.show()

在这里插入图片描述

阶梯型直方图

将hist()的histtype改为stepfilled即可绘制阶梯型直方图

import matplotlib as mpl
import matplotlib.pyplot as plt
from plotly.figure_factory import npmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsex1 = np.random.randint(0, 10, 100)
x2 = np.random.randint(0, 10, 100)
y = range(0, 10, 1)
labels = ['a', 'b']
plt.hist([x1, x2], bins=y, color=['c', 'y'], histtype="stepfilled", rwidth=1, stacked=True, label=labels)plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.show()

在这里插入图片描述

2.4 pie——饼图

绘制不同类型数据的百分比,通过饼图可以清楚地观察数据的占比情况。
函数:plt.pie(soldNums, explode=explode, labels=kinds, autopct=“%3.1f%%”, startangle=45, shadow=True, colors=colors)
参数:

  • soldNums: 相当于x,并不是参数名称,要绘制的百分比列表
  • explode:饼片边缘偏离半径的百分比
  • labels: 标记每份饼片的文本标签内容
  • autopct: 饼片文本标签内容对应的数值百分比样式
  • startangle: 从x轴作为起始位置,第一个饼片逆时针旋转的角度
  • shadow: 是否绘制饼片的阴影
  • colors: 饼片的颜色
  • 其它参数,pctdistance: 百分比数值的显示位置,以半径长度比例值作为显示位置依据
  • 其它参数,labeldistance: 标签值的显示位置,以半径长度比例值作为显示位置依据

示例1

import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsekinds = "a", "b", "c", "d"
soldNums = [0.3, 0.2, 0.4, 0.1]
colors = ['g', 'r', 'b', 'black']
plt.pie(soldNums, labels=kinds, autopct="%3.2f%%", startangle=60, colors=colors)plt.title("不同类型占比")
plt.show()

在这里插入图片描述

示例2

import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsekinds = "a", "b", "c", "d"
soldNums = [0.3, 0.2, 0.4, 0.1]
colors = ['g', 'r', 'b', 'black']
explode = (0.1, 0.1, 0.1, 0.1)
plt.pie(soldNums, explode=explode, labels=kinds, autopct="%3.1f%%", startangle=45, shadow=True, colors=colors)plt.title("不同类型占比")
plt.show()

在这里插入图片描述

内嵌环饼形图

将饼图嵌套,可观察多组数据的比例分布

import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsekinds = ["a", "b", "c", "d"]
weight1 = [0.3, 0.2, 0.4, 0.1]
weight2 = [0.2, 0.25, 0.35, 0.2]
colors = ['g', 'r', 'b', 'black']
outer_colors = colors
inner_colors = colors
wedges1, texts1, autotexts1 = plt.pie(weight1, autopct="%3.1f%%", radius=1, pctdistance=0.85, colors=outer_colors, textprops=dict(color="w"),wedgeprops=dict(width=0.3, edgecolor="w"))
wedges2, texts2, autotexts2 = plt.pie(weight2, autopct="%3.1f%%", radius=0.65, pctdistance=0.7, colors=inner_colors, textprops=dict(color="w"),wedgeprops=dict(width=0.3, edgecolor="w"))
plt.legend(wedges1, kinds, fontsize=12, title="比例", loc="best", bbox_to_anchor=(0.6, 0, 0.4, 1))
plt.setp(autotexts1, size=12, weight="bold")
plt.setp(autotexts2, size=12, weight="bold")
plt.setp(texts1, size=12)
plt.title("不同类型占比")
plt.show()

在这里插入图片描述

2.5 polar——极线图

在极坐标轴上绘制折线图
函数:plt.plot(theta, r)
参数:

  • theta: 每个标记所在射线与极径的夹角。
  • r: 每个标记到原点的距离。
import matplotlib.pyplot as plt
import numpy as npbarSlices = 12theta = np.linspace(0, 2*np.pi, barSlices, endpoint=False)
r = 30*np.random.rand(barSlices)
plt.polar(theta, r, color="chartreuse", linewidth=2, marker="*", mfc="b", ms=10)
plt.show()

在这里插入图片描述

2.6 scatter——气泡图

二维数据借助气泡大小展示三维数据
函数:plt.scatter(x, y)
参数:

  • x: x轴上的数值。
  • y: y轴上的数值。
  • c: 散点标记的颜色。
  • cmap: 将浮点数映射成颜色的颜色映射表。
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as npa = np.random.randn(50)
b = np.random.randn(50)plt.scatter(a, b, s=np.power(10*a+20*b, 2), c=np.random.rand(50), cmap=mpl.cm.RdYlBu, marker="o")
plt.show()

在这里插入图片描述

2.7 stem——棉棒图

绘制离散有序数据
函数: plt.stem(x, y)
参数:

  • x: 指定棉棒的x轴基线上的位置
  • y: 绘制棉棒的长度
  • linefmt: 棉棒的样式
  • markerfmt : 棉棒末端的样式
  • basefmt: 指定基线的样式
import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0.5, 2*np.pi, 20)
y = np.random.randn(20)plt.stem(x, y, linefmt="-.", markerfmt="o", basefmt="-")
plt.show()

在这里插入图片描述

2.8 boxplot——箱线图

箱线图是由一个箱体和一对箱须所组成的统计图形。箱体是由第一四分位数、中位数(第二四分位数)和第三分位数所组成的。在箱须的末端之外的数值可以理解为离群值。箱须是对一组数据范围的大致直观描述。

示例1

  • x: 绘制箱线图的输入数据
import matplotlib.pyplot as plt
import numpy as npx = np.random.randn(100)plt.boxplot(x)plt.xticks([1], ["x"])
plt.ylabel("y")plt.grid(axis="y", ls=":", lw=1, color="black", alpha=0.5)
plt.show()

在这里插入图片描述

示例2

函数:bplot = plt.boxplot(testList, whis=whis, widths=width, sym=“o”, labels=labels, patch_artist=True)
参数:

  • testList: 绘制箱线图的输入数据
  • whis: 四分位间距的倍数,用来确定箱须包含数据的范围大小
  • widths: 设置箱体的宽度
  • sym: 离群值的标记样式
  • labels: 每一个数据集的刻度标签
  • patch_artist: 是否给箱体添加颜色
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as npmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False	# 显示负数testA = np.random.randn(1000)
testB = np.random.randn(1000)testList = [testA, testB]
labels = ["A", "B"]
colors = ["y", "g"]whis = 1.6
width = 0.35bplot = plt.boxplot(testList, whis=whis, widths=width, sym="o", labels=labels, patch_artist=True)
for patch, color in zip(bplot["boxes"], colors):patch.set_facecolor(color)plt.ylabel("随机数值")
plt.grid(axis="y", ls=":", lw=1, color="gray", alpha=0.4)
plt.show()

在这里插入图片描述

2.9 errorbar——误差棒图

绘制y轴方向或是x轴方向的误差范围
函数:

  • x: 数据点的水平位置
  • y: 数据点的垂直位置
  • yerr: y轴方向的数据点的误差计算方法
  • xerr: x轴方向的数据点的误差计算方法
import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0.1, 1, 10)
y = np.exp(x)plt.errorbar(x, y, fmt="bo:", yerr=0.2, xerr=0.05)plt.xlim(0, 1.1)
plt.show()

在这里插入图片描述

3 常用统计图

3.1 堆积柱状图

令函数bar中的参数bottom=y可输出堆积柱状图

import matplotlib as mpl
import matplotlib.pyplot as pltmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsex = [i for i in range(5)]
y = [i for i in range(5)]
y1 = [1 for i in range(5)]plt.bar(x, y, align="center", color="c", tick_label=["a", "b", "c", "d", "e"], label='y')
plt.bar(x, y1, align="center", bottom=y, color="g", tick_label=["a", "b", "c", "d", "e"], label='y1')plt.xlabel("x")
plt.ylabel("y")
plt.legend()plt.show()

在这里插入图片描述

3.2 堆积条形图

令函数bar中的参数left=y可输出堆积柱状图

import matplotlib as mpl
import matplotlib.pyplot as pltmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsex = [i for i in range(5)]
y = [i for i in range(5)]
y1 = [1 for i in range(5)]plt.barh(x, y, align="center", color="c", tick_label=["a", "b", "c", "d", "e"], label='y')
plt.barh(x, y1, align="center", left=y, color="g", tick_label=["a", "b", "c", "d", "e"], label='y1')plt.xlabel("x")
plt.ylabel("y")
plt.legend()plt.show()

在这里插入图片描述

3.3 并列柱状图

并列柱状图的只是单个柱状图的叠加而已,仅需注意叠加的柱状图的x的起始位置。

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as npmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsex = np.arange(5)
y = [i for i in range(5)]
y1 = [1 for i in range(5)]bar_width = 0.35
tick_label = ["a", "b", "c", "d", "e"]plt.bar(x, y, bar_width, align="center", color="c",  label='y', alpha=0.5)
plt.bar(x+bar_width, y1, bar_width, align="center", color="g", label='y1', alpha=0.5)plt.xlabel("x")
plt.ylabel("y")
plt.legend()plt.show()

在这里插入图片描述

3.4 并列条形图

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as npmpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = Falsex = np.arange(5)
y = [i for i in range(5)]
y1 = [1 for i in range(5)]bar_width = 0.35
tick_label = ["a", "b", "c", "d", "e"]plt.barh(x, y, bar_width, align="center", color="c",  label='y', alpha=0.5)
plt.barh(x+bar_width, y1, bar_width, align="center", color="g", label='y1', alpha=0.5)plt.xlabel("x")
plt.ylabel("y")
plt.legend()plt.show()

在这里插入图片描述

3.5 堆积折线图

堆积折线图是通过绘制不同数据集的折线图而产生的。堆积折线图是按照垂直方向上彼此堆叠且又不相互覆盖的排列顺序,绘制若干条折线图而形成的组合图形。

import matplotlib.pyplot as plt
import numpy as npx = np.arange(1, 5, 1)
y = [i for i in range(4)]
y1 = [1 for i in range(4)]
y2 = [2, 3, 1, 4]labels = ['y', 'y1', 'y2']
colors = ['b', 'g', 'c', 'yellow']plt.stackplot(x, y, y1, y2, labels=labels, colors=colors)
plt.legend(loc="best")plt.show()

在这里插入图片描述

3.6 间断条形图

间断条形图是在条形图的基础上绘制而成的,主要用来可视化定向数据的相同指标在时间维度上的指标值的变化情况,实现定性数据的相同指标的变化情况的有效直观比较。
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as npmpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=Falseplt.broken_barh([(10, 15), (35, 20), (60, 5)], (12, 8), facecolors="yellow")
plt.broken_barh([(5, 10), (20, 2), (28, 6), (40, 3)], (2, 8), facecolors=("r", 'b', 'g', 'c'))plt.xlim(0, 70)
plt.ylim(0, 20)
plt.xlabel("播放时间")plt.xticks(np.arange(0, 70, 10))
plt.yticks([16, 6], ["公益性广告", "食品类广告"])
plt.grid(ls=":", lw=1, color="gray")
plt.title("不同广告的播放时长")plt.show()

在这里插入图片描述
(10, 15)表示从起点是x轴的数值为10的位置起,沿x轴正方向移动15个单位。
(12, 8)表示从起点是y轴的数值为10的位置起,沿y轴正方向移动8个单位,即柱体的高度和垂直起始位置。

3.7 阶梯图

阶梯图常用中时间序列数据的可视化任务中,表示时序数据的波动周期和规律

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(1, 7, 7)
y = np.sin(x)plt.step(x, y, color="r", where="pre", lw=2)
plt.xlim(0, 8)
plt.xticks(np.arange(1,7,1))
plt.ylim(-1.1, 1.1)plt.show()

在这里插入图片描述

where的取值"pre”, 表示x轴上的每个数据点对应的y轴上的数值向左侧绘制水平线直x轴上的此数据点的左侧相邻数据点为止,取值是按照左开右闭区间进行数据点选取的。除“pre”外也可取值"post", 表示在x轴上的相邻数据点的取值是按照左闭右开区间进行数据点选取的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/768464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flutter3_douyin:基于flutter3+dart3短视频直播实例|Flutter3.x仿抖音

flutter3-dylive 跨平台仿抖音短视频直播app实战项目。 全新原创基于flutter3.19.2dart3.3.0getx等技术开发仿抖音app实战项目。实现了类似抖音整屏丝滑式上下滑动视频、左右滑动切换页面模块,直播间进场/礼物动效,聊天等模块。 运用技术 编辑器&#x…

git标签的简单操作

创建标签 git tag v1.0 # 对head指向的commit创建标签 git tag v1.1 commit_id # 对指定的commit创建标签 git tag v2.0 -a -m "标签注释" commit_id # 创建注释标签查看标签 git tag -l v1* # 查看标签,匹配v1开头的 git show v2.0 # 查看标签详细信息…

Qt如何重写closeEvent

在 Qt 中,重写 closeEvent 函数是处理窗口关闭事件的一种方式。当你关闭一个 Qt 窗口时,该窗口会接收到一个 QCloseEvent 对象。通过重写窗口类的 closeEvent 函数,你可以自定义窗口关闭时的行为。 下面是一个简单的例子,展示了如…

Netty剖析 - Why Netty

文章目录 Why NettyI/O 请求的两个阶段I/O 模型Netty 如何实现自己的 I/O 模型线程模型 - 事件分发器(Event Dispather)弥补 Java NIO 的缺陷更低的资源消耗网络框架的选型Netty 发展现状Netty 的使用 Why Netty I/O 模型、线程模型和事件处理机制优化&a…

php搭建websocket

1.项目终端执行命令:composer require topthink/think-worker 2.0.x 2.config多出三个配置文件: 3.当使用php think worker:gateway命令时,提示不支持Windows。 4.打包项目为zip格式 5.打包数据库 6.阿里云创建记录 7.宝塔面板新增站点…

Vue3 上手笔记

1. Vue3简介 2020年9月18日,Vue.js发布版3.0版本,代号:One Piece(n 经历了:4800次提交、40个RFC、600次PR、300贡献者 官方发版地址:Release v3.0.0 One Piece vuejs/core 截止2023年10月,最…

网盘——数据库操作

关于网盘的数据库模块,主要有以下几个内容:定义数据库操作类、将数据库操作类定义成单例模式、数据库操作 数据库是在Qt里面,定义成操作类,专门用这个类产生对象,对数据库实现操作,那么我们在产生对象的时…

BMS设计中的短路保护和MOSFET选型(下)

二、MOSFET参数 1、电气参数 (1)VGS :加在栅源两极之间的最大电压,一般为:-20V-+20V。 VGS额定电压是栅源两极间可以施加的最大电压。设定该额定电压的主要目的是防止电压过高导致的栅氧化层损伤。实际栅氧化层可承受的电压远高于额定电压,但是会随制造工艺的不同而改变…

01-机器学习概述

机器学习的定义 机器学习是一门从数据中研究算法的科学学科。 机器学习直白来讲, 就是根据已有的数据,进行算法选择,并基于算法和数据 构建模型,最终对未来进行预测。 机器学习就是一个模拟人决策过程的一种程序结构。 机器学…

Django——forms组件

Django——forms组件 forms组件:通过后端在Django中定义forms类,可以在 html 中动态的生成一个表单;检验用户提交的数据。 在应用中创建一个名为 :forms 的py文件 # 导入 forms 组件 from django import forms# 自定义 forms …

【python】(09)理解Python中的zip()和zip(*iterable)

系列文章回顾 【python】(01)初识装饰器Decorator 【python】(02)初识迭代器Iterator 【python】(03)初识生成器Generator 【python】(04)python中实现多任务并发和并行的区别 【python】(05)如何使用python中的logging模块记录日志信息 【python】(06)理解Python中的 lambda 、…

借记、贷记、来账、往账、挂账

应用场景:支付系统_跨行支付 一、借、贷、借记、贷记 借、贷:复式记账的一种记账符号,和科目结合起来,可以清晰的表示业务级别的资金流动。 贷记业务:指付款方向收款方发起的付款业务,指负债的增加或资产方…

PWM实现电机的正反转和调速以及TIM定时器

pwm.c #include "pwm.h"/* PWM --- PA2 --TIM2_CH3 //将电机信号控制一根接GND,一根接在PA2(TIM2_CH3), 输出PWM控制电机快慢 TIM2挂在APB1 定时器频率:84MHZ*/ void Pwm_Init(void) {GPIO_InitTypeDef GPIO_InitStruct;TIM_TimeBaseInitT…

Django下载使用、文件介绍

【一】下载并使用 【1】下载框架 (1)注意事项 计算机名称不要出现中文python解释器版本不同可能会出现启动报错项目中所有的文件名称不要出现中文多个项目文件尽量不要嵌套,做到一项一夹 (2)下载 Django属于第三方模块&#…

张宇高数一学习笔记-1-第一讲-函数极限与连续(1)

1、函数的概念与特性 1.1、函数 1、y才是x的函数,而f()是加工法则。 2、定义域是基于加工法则f()存在的,也就是说加工法则f()对()内数据的限制范围就是定义域。而 3、自变量x的取值范围来源于:定义域对()内的含x表达式的限制下得出的x的取值…

【C2架构】

C2架构 C2 架构也就可以理解为,恶意软件通过什么样的方式获取资源和命令,以及通过什么样的方式将数据回传给攻击者 使用的通信方式: 传输协议层 TCP、UDP 网络协议层 icmp(ping) 应用协议层 HTTP/HTTPS、FTP、DNS、S…

[深度学习] 常见名称概念

SOTA SOTA是指"State-of-the-art"的缩写,意为"最先进的技术"。SOTA是指在某个领域或任务中,当前被认为是最好的技术或模型。随着技术的不断发展和进步,SOTA会随之变化。对于机器学习和人工智能领域而言,SOTA…

20.Ubuntu下安装GCC

文章目录 Ubuntu下安装GCC查看官方安装指导错误缺少gmp库缺少32位开发库libcg: error: gengtype-lex.c: No such file or directoryreference 欢迎访问个人网络日志🌹🌹知行空间🌹🌹 Ubuntu下安装GCC 为了支持新的c标准&#xff…

深入了解 Vue 组件

在 Vue.js 中,组件是构建用户界面的核心概念之一。通过组件,我们可以将界面分割成独立、可复用的模块,使得代码更加清晰、灵活,并且更易于维护。在本文中,我们将深入探讨 Vue 组件的基本概念、创建方法以及常见用法。 …

STM32微控制器中,如何处理多个同时触发的中断请求?

在STM32微控制器中,处理多个同时触发的中断请求需要一个明确的中断优先级策略,以确保关键任务能够及时得到响应。STM32的中断控制器(NVIC)支持优先级分组,允许开发者为不同的中断设置抢占优先级和子优先级。本文将详细…