人工智能数据分析Python常用库 04 matplotlib库

文章目录

  • 一、matplotlib库的作用与环境配置
    • 1、环境配置示例
    • 2、改变绘图风格
    • 3、保存图片
  • 二、绘制二维图形
    • 1、折线图
      • (1)示例
      • (2)调整线条颜色:
      • (3)调整线条风格
      • (4)调整线宽
      • (5)调整数据点标记
      • (6)颜色和风格设置的简写
      • (7)调整坐标轴
      • (8)设置图形标签
      • (9)设置图例
      • (10)添加文字和箭头
    • 2、散点图
      • (1)示例
      • (2)颜色设置
      • (3)根据数据控制点的大小
      • (4)透明度
    • 3、柱形图
      • (1)简单柱形图
      • (2)累加柱形图
      • (3)并列柱形图
      • (4)横向柱形图
    • 4、多子图
      • (1)简单多子图
      • (2)多行多列子图
      • (3)不规则多子图
    • 5、直方图
      • (1)普通频次直方图
      • (2)概率密度
      • (3)累计概率分布
      • (4)例:模拟两个骰子
    • 6、误差图
      • (1)基本误差图
      • (2)柱形图误差图
  • 三、面相对象的风格简介
    • 1、普通图
    • 2、画中画
    • 3、多子图
  • 四、三维图形简介
    • 1、三维数据点与线
    • 2、三维数据曲面图

一、matplotlib库的作用与环境配置

matplotlib库是数据分析中,数据可视化的一个重要工具。

1、环境配置示例

import matplotlib.pyplot as pltx = [1,2,3,4]
y = [1,4,9,16]plt.plot(x,y)   # 绘制折线图
plt.ylabel("squares")   # 设置y轴标签
plt.show()  # 显示图片

2、改变绘图风格

print(plt.style.available[:])   # 显示可用的绘图风格with plt.style.context("seaborn-white"):    # 临时改变绘图风格plt.show()
import matplotlib.pyplot as plt
plt.style.use("seaborn-white")  # 永久改变绘图风格x = [1,2,3,4]
y = [1,4,9,16]plt.plot(x,y)   # 绘制折线图
plt.ylabel("squares")   # 设置y轴标签
plt.show()  # 显示图片

3、保存图片

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,10,100)
plt.plot(x,np.exp(x))plt.savefig("myfigure.png") # 保存图片

二、绘制二维图形

1、折线图

(1)示例

import matplotlib.pyplot as plt
import numpy as np
plt.style.use("seaborn-white")x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))   # 绘制正弦曲线
plt.plot(x,np.cos(x))   # 绘制余弦曲线plt.show()

在这里插入图片描述

(2)调整线条颜色:

import matplotlib.pyplot as plt
import numpy as np
plt.style.use("seaborn-white")x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))   # 绘制正弦曲线offsets = np.linspace(0,np.pi,5)
colors = ["blue","g","r","yellow","pink"]for offset,color in zip(offsets,colors):plt.plot(x,np.sin(x-offset),color=color) # 关键字color可缩写为cplt.show()

在这里插入图片描述

(3)调整线条风格

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,10,11)
offsets = list(range(8))
linestyles = ["solid","dashed","dashdot","dotted","-","--","-.",":"]
for offset,linestyle in zip(offsets,linestyles):plt.plot(x,x+offset,linestyle=linestyle)    # linestyle可缩写为lsplt.show()

在这里插入图片描述

(4)调整线宽

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,10,11)
offsets = range(0,12,3)
linewidths = (i*2 for i in range(1,5))
for offset,linewidth in zip(offsets,linewidths):plt.plot(x,x+offset,linewidth=linewidth)    # linewidth可缩写为lwplt.show()

在这里插入图片描述

(5)调整数据点标记

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,10,11)
offsets = range(0,12,3)
markers = ["*","+","o","s"]
for offset,marker in zip(offsets,markers):plt.plot(x,x+offset,marker=marker,markersize=10)    # markersize可缩写为msplt.show()

在这里插入图片描述

(6)颜色和风格设置的简写

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,10,11)
offsets = range(0,8,2)
color_linestyles = ["g-","c--","k-.","r:"]
for offset,color_linestyle in zip(offsets,color_linestyles):plt.plot(x,x+offset,color_linestyle)plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,10,11)
offsets = range(0,8,2)
cmls = ["g*-","b+--","ko-.","rs:"]
for offset,cml in zip(offsets,cmls):plt.plot(x,x+offset,cml)plt.show()

在这里插入图片描述
其他用法及颜色缩写、数据点标记缩写等,请查看官方文档,如下:
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html

(7)调整坐标轴

x轴、y轴的边界

x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))
plt.xlim(-1,7)
plt.ylim(-1.5,1.5)
plt.show()
x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))
plt.axis([-2,8,-2,2])   #设置x轴的边界为-2到8,y轴为-2到2
plt.show()
x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))
plt.axis("tight")  
plt.show()
x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))
plt.axis("equal")
plt.show()

help(plt.axis) 可以查询 plt.axis() 中还可以设置哪些字符串参数。

对数坐标

import matplotlib.pyplot as plt
import numpy as np
import math
x = np.logspace(0,5,6)  #10**0到10**5的等比数列,取6个数plt.plot(x,np.log(x),marker="o") # np.log(x)表示以e为底,求x的对数
plt.xscale("log")   # 表示x轴的刻度设置为对数刻度
plt.show()

在这里插入图片描述
调整坐标轴刻度

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,10,100)
plt.plot(x,x**2)
plt.xticks(np.arange(0,12,step=1),fontsize=15)
plt.yticks(np.arange(0,100,step=10))plt.show()

在这里插入图片描述
调整刻度样式

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,10,100)
plt.plot(x,x**2)
plt.tick_params(axis="both",labelsize=15)plt.show()

在这里插入图片描述

(8)设置图形标签

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))
plt.title("A Sine Curve",fontsize=20)
plt.xlabel("x",fontsize=15)
plt.ylabel("sin(x)",fontsize=15)plt.show()

在这里插入图片描述

(9)设置图例

默认:

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x),"b-",label="Sin")
plt.plot(x,np.cos(x),"r--",label="Cos")
plt.legend()
plt.show()

在这里插入图片描述
修饰图例:

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x),"b-",label="Sin")
plt.plot(x,np.cos(x),"r--",label="Cos")
plt.legend(loc="upper center",frameon=False,fontsize=15)
#loc supported values are 'best', 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'upper center', 'center'
plt.ylim(-1.5,2)
plt.show()

在这里插入图片描述

(10)添加文字和箭头

添加文字

x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x),"b-")
plt.text(3.5,0.5,"y=sin(x)",fontsize=15) # 3.5,0.5为文字所在坐标
plt.show()

在这里插入图片描述
添加箭头

x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x),"b-")
plt.annotate("local min",xy=(1.5*np.pi,-1),xytext=(4.5,0),arrowprops=dict(facecolor="black",shrink=0.1))
# xy=(1.5*np.pi,-1) 指定了箭头指向的点的坐标。xytext=(4.5,0) 指定了注释文本的位置。arrowprops=dict(facecolor="black",shrink=0.1) 则设置了箭头的样式,包括颜色和箭头的缩放。
plt.show()

在这里插入图片描述

2、散点图

(1)示例

x = np.linspace(0,2*np.pi,20)
plt.scatter(x,np.sin(x),marker="s",s=30,c="r")  # s:大小 c:颜色plt.show()

在这里插入图片描述

(2)颜色设置

x = np.linspace(0, 10, 10)
y = x ** 2
plt.scatter(x, y, c=y, cmap="Blues")
# c=y:散点的颜色根据y值的大小而变化
plt.colorbar()
plt.show()

在这里插入图片描述
颜色配置参考官方文档:
https://matplotlib.org/2.0.2/examples/color/colormaps_reference.html

(3)根据数据控制点的大小

x,y,colors,size = (np.random.rand(100) for i in range(4))
plt.scatter(x,y,c=colors,s=1000*size,cmap="viridis")plt.colorbar()
plt.show()

在这里插入图片描述

(4)透明度

x,y,colors,size = (np.random.rand(100) for i in range(4))
plt.scatter(x,y,c=colors,s=1000*size,cmap="viridis",alpha=0.3)plt.colorbar()
plt.show()

在这里插入图片描述

3、柱形图

(1)简单柱形图

import numpy as np
import matplotlib.pyplot as pltx = np.arange(1,6)
plt.bar(x,2*x,align="center",width=0.5,alpha=0.5,color="yellow",edgecolor="red")
plt.xticks(x,("G1","G2","G3","G4","G5"))
plt.tick_params(axis="both",labelsize=13)plt.show()

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as pltx = ["G"+str(i) for i in range(5)]
y = 1/(1+np.exp(-np.arange(5)))
colors = ["red","yellow","blue","green","gray"]
plt.bar(x,y,align="center",width=0.5,alpha=0.5,color=colors)
plt.tick_params(axis="both",labelsize=13)plt.show()

在这里插入图片描述

(2)累加柱形图

import numpy as np
import matplotlib.pyplot as pltx= np.arange(5)
y1 = np.random.randint(20,30,size=5)
y2 = np.random.randint(20,30,size=5)
plt.bar(x,y1,width=0.5,label="man")
plt.bar(x,y2,width=0.5,bottom=y1,label="woman")
plt.legend()
plt.show()

在这里插入图片描述

(3)并列柱形图

import numpy as np
import matplotlib.pyplot as pltx= np.arange(15)
y1 = x+1
y2 = y1+np.random.random(15)
plt.bar(x,y1,width=0.3,label="man")
plt.bar(x+0.3,y2,width=0.3,label="woman")
plt.legend()
plt.show()

在这里插入图片描述

(4)横向柱形图

import numpy as np
import matplotlib.pyplot as pltx = ["G"+str(i) for i in range(1,6)]
y = 2 * np.arange(1,6)
plt.barh(x,y,align="center",height=0.5,alpha=0.8,color="blue",edgecolor="red")
plt.tick_params(axis="both",labelsize=13)
plt.show()

在这里插入图片描述

4、多子图

(1)简单多子图

import numpy as np
import matplotlib.pyplot as pltdef f(t):return np.exp(-t)*np.cos(2*np.pi*t)t1 = np.arange(0.0,5.0,0.1)
t2 = np.arange(0.0,5.0,0.2)plt.subplot(211)    # 总共2行1列子图网格,当前选中第1个子图
plt.plot(t1,f(t1),"bo-",markerfacecolor="r",markersize=5)
plt.title("A tale of 2 subplots")
plt.ylabel("Damped oscillation")plt.subplot(212)    # 总共2行1列子图网格,当前选中第2个子图
plt.plot(t2,np.cos(2*np.pi*t2),"r--")
plt.xlabel("time(s)")
plt.ylabel("Undamped")plt.show()

在这里插入图片描述

(2)多行多列子图

import numpy as np
import matplotlib.pyplot as pltx = np.random.random(10)
y = np.random.random(10)plt.subplots_adjust(hspace=0.5,wspace=0.3)  # 调整子图之间的水平和垂直间距plt.subplot(321)
plt.scatter(x,y,s=80,c="b",marker=">")plt.subplot(322)
plt.scatter(x,y,s=80,c="g",marker="*")plt.subplot(323)
plt.scatter(x,y,s=80,c="r",marker="s")plt.subplot(324)
plt.scatter(x,y,s=80,c="c",marker="p")plt.subplot(325)
plt.scatter(x,y,s=80,c="m",marker="+")plt.subplot(326)
plt.scatter(x,y,s=80,c="y",marker="H")plt.show()

在这里插入图片描述

(3)不规则多子图

import matplotlib.pyplot as plt
import numpy as npdef f(x):return np.exp(-x) * np.cos(2*np.pi*x)x = np.arange(0.0, 3.0, 0.01)
grid = plt.GridSpec(2, 3, wspace=0.4, hspace=0.3)plt.subplot(grid[0, 0])
plt.plot(x, f(x))plt.subplot(grid[0, 1:])
plt.plot(x, f(x), "r--", lw=2)plt.subplot(grid[1, :])
plt.plot(x, f(x), "g-", lw=3)
plt.show()

在这里插入图片描述

5、直方图

(1)普通频次直方图

import matplotlib.pyplot as plt
import numpy as npmu, sigma = 100,15
x = mu + sigma * np.random.randn(1000)plt.hist(x, bins=50, facecolor="g", alpha=0.75)plt.show()

在这里插入图片描述

(2)概率密度

import matplotlib.pyplot as plt
import numpy as npmu, sigma = 100,15
x = mu + sigma * np.random.randn(1000)plt.hist(x, 50, density=True, color="r")
plt.xlabel("Smarts")
plt.ylabel("Probability")
plt.title("Histogram of IQ")
plt.text(60, .025, r"$\mu=100,\ \sigma=15$")
plt.xlim(40, 160)
plt.ylim(0, 0.03)plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npmu, sigma = 100,15
x = mu + sigma * np.random.randn(1000)plt.hist(x, 50, density=True, color="r", histtype="step")
plt.xlabel("Smarts")
plt.ylabel("Probability")
plt.title("Histogram of IQ")
plt.text(60, .025, r"$\mu=100,\ \sigma=15$")
plt.xlim(40, 160)
plt.ylim(0, 0.03)plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import normmu, sigma = 100,15
x = mu + sigma * np.random.randn(10000)_, bins, __=plt.hist(x, 50, density=True)
y = norm.pdf(bins, mu, sigma)
plt.plot(bins, y, "r--", lw=3)
plt.xlabel("Smarts")
plt.ylabel("Probability")
plt.title("Histogram of IQ")
plt.text(60, .025, r"$\mu=100,\ \sigma=15$")
plt.xlim(40, 160)
plt.ylim(0, 0.03)plt.show()

在这里插入图片描述

(3)累计概率分布

import matplotlib.pyplot as plt
import numpy as npmu, sigma = 100,15
x = mu + sigma * np.random.randn(10000)plt.hist(x, 50, density=True, cumulative=True, color="r")plt.xlabel("Smarts")
plt.ylabel("Probability")
plt.title("Histogram of IQ")
plt.text(60, 0.8, r"$\mu=100,\ \sigma=15$")
plt.xlim(50, 165)
plt.ylim(0, 1.1)plt.show()

在这里插入图片描述

(4)例:模拟两个骰子

import matplotlib.pyplot as plt
import numpy as npclass Die():"模拟一个骰子的类"def __init__(self, num_sides=6):self.num_sides = num_sidesdef roll(self):return np.random.randint(1, self.num_sides+1)# 重复投一个骰子
die = Die()
results = []
for i in range(60000):result = die.roll()results.append(result)plt.hist(results, bins=6, range=(0.75, 6.75), align="mid", width=0.5)
plt.xlim(0, 7)plt.show()

在这里插入图片描述

# 重复投两个骰子
die1 = Die()
die2 = Die()
results = []
for i in range(60000):result = die1.roll() + die2.roll()results.append(result)plt.hist(results, bins=11, range=(1.75, 12.75), align="mid", width=0.5)
plt.xlim(0, 13)
plt.xticks(np.arange(1, 14))plt.show()

在这里插入图片描述

# 重复投两个骰子
die1 = Die()
die2 = Die()
results = []
for i in range(60000):result = die1.roll() + die2.roll()results.append(result)plt.hist(results, bins=11, range=(1.75, 12.75), density=True, align="mid", width=0.5)
plt.xlim(0, 13)
plt.xticks(np.arange(1, 14))plt.show()

在这里插入图片描述

6、误差图

(1)基本误差图

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0, 10, 50)
dy = 0.5
y = np.sin(x) + dy*np.random.randn(50)plt.errorbar(x, y, yerr=dy, fmt="+b")plt.show()

在这里插入图片描述

(2)柱形图误差图

import matplotlib.pyplot as plt
import numpy as npmenMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
menStd = (2, 3, 4, 1, 2)
womenStd = (3, 5, 2, 3, 3)
ind = ["G1", "G2", "G3", "G4", "G5"]
width = 0.35p1 = plt.bar(ind, menMeans, width=width, label="Men", yerr=menStd)
p2 = plt.bar(ind, womenMeans, width=width, bottom=menMeans, label="Women", yerr=womenStd)plt.ylabel("Scores")
plt.title("Scores by group and gender")
plt.yticks(np.arange(0, 81, 10))
plt.legend()
plt.show()

在这里插入图片描述

三、面相对象的风格简介

1、普通图

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0, 5, 10)
y = x ** 2fig = plt.figure(figsize=(8,4), dpi=80)	# 设置画布对象
axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])	# 设置轴 [left,bottom,width,height]与画布的比例
axes.plot(x, y, "r")
axes.set_xlabel("x")
axes.set_ylabel("y")
axes.set_title("title")
plt.show()

在这里插入图片描述

2、画中画

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0, 5, 10)
y = x ** 2fig = plt.figure()
ax1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax2 = fig.add_axes([0.2, 0.5, 0.4, 0.3])ax1.plot(x, y, "r")ax1.set_xlabel("x")
ax1.set_ylabel("y")
ax1.set_title("title")ax2.plot(y, x, "g")
ax2.set_xlabel("y")
ax2.set_ylabel("x")
ax2.set_title("insert title")plt.savefig("1.png")
plt.show()

在这里插入图片描述

3、多子图

import matplotlib.pyplot as plt
import numpy as npdef f(t):return np.exp(-t) * np.cos(2*np.pi*t)t1 = np.arange(0.0, 3.0, 0.01)fig = plt.figure()
fig.subplots_adjust(hspace=0.4, wspace=0.4)ax1 = plt.subplot(2, 2, 1)
ax1.plot(t1, f(t1))
ax1.set_title("Upper left")ax2 = plt.subplot(2, 2, 2)
ax2.plot(t1, f(t1))
ax2.set_title("Upper right")ax3 = plt.subplot(2, 1, 2)
ax3.plot(t1, f(t1))
ax3.set_title("Lower")plt.savefig("1.png")
plt.show()

在这里插入图片描述

四、三维图形简介

1、三维数据点与线

import matplotlib.pyplot as plt
import numpy as npax = plt.axes(projection="3d")
zline = np.linspace(0, 15, 1000)
xline = np.sin(zline)
yline = np.cos(zline)
ax.plot3D(xline, yline, zline)zdata = 15*np.random.random(100)
xdata = np.sin(zdata)
ydata = np.cos(zdata)ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap="spring")plt.savefig("1.png")
plt.show()

在这里插入图片描述

2、三维数据曲面图

import matplotlib.pyplot as plt
import numpy as npdef f(x, y):return np.sin(np.sqrt(x**2 + y**2))x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)ax = plt.axes(projection="3d")
ax.plot_surface(X, Y, Z, cmap="viridis")plt.savefig("1.png")
plt.show()

在这里插入图片描述

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

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

相关文章

C语言——调试技巧

1.Debug和Release的介绍 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优 的,以便用…

网页端HTML使用MQTTJs订阅RabbitMQ数据

最近在做一个公司的日志组件时有一个问题难住了我。今天问题终于解决了。由于在解决问题中,在网上也查了很多资料都没有一个完整的实例可以参考。所以本着无私分享的目的记录一下完整的解决过程和实例。 需求:做一个统一日志系统可以查看日志列表和一个可…

BUUCTF:BUU UPLOAD COURSE 1[WriteUP]

构造一句话PHP木马 <?php eval(system($_POST[shell])); ?> 利用eval函数解析$shell的值使得服务器执行system命令 eval函数是无法直接执行命令的&#xff0c;只能把字符串当作php代码解析 这里我们构造的木马是POST的方式上传&#xff0c;那就用MaxHacKBar来执行 …

Lua热更新(AssetBundle)

AssetBundle 新版本导入ab包报错,则删除其中的Tests文件夹。 给资源分组 打包设置:平台、路径、重复打包清空文件夹、复制到streaming文件夹 建议勾选 建议使用LZ4压缩方式 用来观察文件中的包大小,不常用 参数总结: 这六个只做了解,重要的是上面的

基于Dell 3930 RACK服务器的RAID1配置

**背景&#xff1a;**项目上使用的Dell 3930 RACK服务器需要配置RAID1冗余备份功能&#xff0c;设置比较简单&#xff0c;此处也做个记录&#xff0c;以免忘记。 步骤&#xff1a; 1、重启服务器&#xff0c;启动过程中按F12&#xff0c;进入设置界面 2、先选中进入BIOS Setup…

MT3021 拦截罪犯

思路&#xff1a;用二分&#xff0c;每次二分间距&#xff0c;判断需要的组数是否>k。 #include <bits/stdc.h> using namespace std; const int N 1e5 10; int L, n, k; int a[N];bool check(int p) { // 看此时的间距所用的警力数满不满足<kint cnt 0;for (in…

苹果商店审核指南:确保Flutter应用顺利通过审核的关键步骤

引言 Flutter是一款由Google推出的跨平台移动应用开发框架&#xff0c;其强大的性能和流畅的用户体验使其备受开发者青睐。然而&#xff0c;开发一款应用只是第一步&#xff0c;将其成功上架到苹果商店才是实现商业目标的关键一步。本文将详细介绍如何使用Flutter将应用程序上…

【随笔】Git 高级篇 -- 项目里程碑 git tag(二十)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

ElasticSearch分词检索

1. 倒排索引&#xff1a;表示一种数据结构&#xff0c;分词词条与文档id集合的隐射关系 2. 它跟关系型数据库是一种互补的关系&#xff0c;因为关系型数据库支持事务操作&#xff0c;满足ACID原则 3. 索引库的文档字段只允许新增不允许修改 1.创建索引库 put /索引库名称2.1 …

xss.pwnfunction-Ah That‘s Hawt

<svg/onloadalert%26%2340%3B1%26%2341%3B> <svg/>是一个自闭合形式 &#xff0c;当页面或元素加载完成时&#xff0c;onload 事件会被触发&#xff0c;从而可以执行相应的 JavaScript 函数

视频插针调研

视频插针 1、评估指标2、准确度3、实时4、视频流处理3、实时RIFE视频插帧测试 1、评估指标 参考&#xff1a;https://blog.csdn.net/weixin_43478836/article/details/104159648 https://blog.csdn.net/weixin_43605641/article/details/118088814 PSNR和SSIM PSNR数值越大表…

【springboot开发】Gradle VS Maven

前言&#xff1a; java构建工具的主要作用是依赖管理和构建的生命周期管理。gradle和maven是目前java中最流行的两个构建工具&#xff0c;springboot常用maven&#xff0c;Android studio使用gradle。 目录 1. 简介2. Maven2.1 安装2.2 依赖管理2.3 构建生命周期管理 3. Gradle…

Utilize webcam to capture photo with camera

1. Official Guide& my github Official course my github 2. Overcome Webcam js Error in Chrome: Could not access webcam link 直接把代码拷贝到本机的下述目录下 To ignore Chrome’s secure origin policy, follow these steps. Navigate to chrome://flags/#un…

大语言模型如何工作?

此为观看视频How Large Language Model works的笔记。 GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一个大语言模型&#xff08;LLM&#xff09;&#xff0c;可以生成类似人类的文本。本文阐述&#xff1a; 什么是LLMLLM如何工作LLM的应用场景 什么是…

基于JSP的网上订餐系统

第一章 绪论 1.1课题背景与意义 自新世纪以来&#xff0c;我国经济发生翻天覆地的变化。中国经济发展迎来空前巨大的机遇与挑战&#xff0c;世界性的发展交流在这三十年较近四十年的时间中整体性上升发展&#xff0c;东西文化的碰撞&#xff0c;不断为国民经济的发展注入新鲜…

通信分类3G,4G,5G,通信专用名词

Generation: 2G: GSM全名为&#xff1a;Global System for Mobile Communications&#xff0c;中文为全球移动通信系统&#xff0c;俗称"全球通"&#xff0c;是一种起源于欧洲的移动通信技术标准&#xff0c;是第二代移动通信技术 3G&#xff1a;WCDMA 4G&#xff1a…

计算机视觉——基于傅里叶幅度谱文档倾斜度检测与校正

概述 在计算机视觉领域&#xff0c;处理文档数据时&#xff0c;OCR算法的性能往往会受到文档的倾斜度影响。如果文档在输入到模型之前没有经过恰当的校正&#xff0c;模型就无法期待模型能够提供准确的预测结果&#xff0c;或者模型预测的精度会降低。例如&#xff0c;在信息提…

Day106:代码审计-PHP原生开发篇文件安全上传监控功能定位关键搜索1day挖掘

目录 emlog-文件上传&文件删除 emlog-模板文件上传 emlog-插件文件上传 emlog-任意文件删除 通达OA-文件上传&文件包含 知识点&#xff1a; PHP审计-原生开发-文件上传&文件删除-Emlog PHP审计-原生开发-文件上传&文件包含-通达OA emlog-文件上传&文件…

基于YOLOv8的摄像头下铁路工人安全作业检测系统

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;基于YOLOv8的铁路工人安全作业检测系统&#xff0c;属于小目标检测范畴&#xff0c;并阐述了整个数据制作和训练可视化过程&#xff0c; 博主简介 AI小怪兽&#xff0c;YOLO骨灰级玩家&#xff0c;1&#xff0…

【计算机考研】408网课汇总+资源分享

王道的四件套无疑是大多数同学的首选。相比其他课程来说&#xff0c;也是属于市面上最好的408课程了。 从今年的难度来看选择题部分和计网&#xff0c;比起往年来看是有很多偏题&#xff0c;大题除了计网的冷门外&#xff0c;其他倒是中规中矩。总体来看24考研的408难度是非常…