R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D)
R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D)
- 散点图
 - 示例
 - 解析
 - 效果
 
- 饼图
 - 示例
 - 解析
 - 效果
 
- 折线图
 - 示例
 - 解析
 - 效果
 
- 柱状图
 - 示例
 - 解析
 - 效果
 
- 箱线图
 - 示例
 - 解析
 - 效果
 
- 直方图
 - 示例
 - 解析
 - 效果
 
- 等高线图
 - 使用filled.contour函数
 - 示例
 - 解析
 - 效果
 
- 使用 ggplot2 包
 - 示例
 - 效果
 
- 使用 lattice 包
 - 示例
 - 效果
 
- 曲线图
 - 使用 curve() 函数
 - 示例
 - 效果
 
- 使用 plot() 函数
 - 示例
 - 效果
 
- 使用 ggplot2 包绘制
 - 示例
 - 解析
 - 效果
 
- 热力图
 - 使用 heatmap() 函数
 - 示例
 - 效果
 
- 使用 pheatmap 包
 - 示例
 - 效果
 
- 使用 ggplot2 包和 geom_tile() 函数
 - 示例
 - 解析
 - 效果
 
- 雷达图
 - 示例
 - 解析
 - 效果
 
- 韦恩图
 - 示例
 - 解析
 - 效果
 
散点图
使用基础的plot()函数可以很容易地绘制散点图~ 散点图通常用于展示两个连续变量之间的关系,例如显示其之间的相关性或者分布情况
示例
假设有如下数据集 data,包含了两个变量 x 和 y:
# 创建示例数据集
set.seed(123)  # 设置随机种子以确保示例的可重现性
data <- data.frame(x = rnorm(100),   # 随机生成100个符合标准正态分布的x值y = rnorm(100)    # 随机生成100个符合标准正态分布的y值
)# 绘制散点图
plot(data$x, data$y,main = "散点图示例",          # 图表标题xlab = "变量X",               # x轴标签ylab = "变量Y",               # y轴标签col = "blue",                 # 散点颜色pch = 16,                     # 散点形状(16表示实心圆)xlim = c(-3, 3),              # x轴范围ylim = c(-3, 3)               # y轴范围
)
 
解析
1. 创建数据集:
- 使用 rnorm(100) 生成了符合标准正态分布的随机数据作为示例的 x 和 y 变量
 
2. 绘制散点图:
- plot(data x , d a t a x, data x,datay, …):使用 plot() 函数绘制散点图,其中 data x 和 d a t a x 和 data x和datay 分别是数据集中的 x 和 y 变量
 - main, xlab, ylab 分别设置图表的标题和轴标签
 - col 设置散点的颜色为蓝色
 - pch 设置散点的形状为实心圆(16表示实心圆,可以根据需要选择不同的形状)
 - xlim 和 ylim 分别设置了 x 轴和 y 轴的显示范围
 
效果

饼图
画饼图通常使用pie()函数来实现,饼图适合用于展示各部分占整体的比例关系,如市场份额、各类别的比例等
示例
假设有如下数据集 data,包含了各部分的名称和相应的数值:
# 创建示例数据集
data <- c(25, 35, 20, 10, 10)  # 各部分的数值,总和为100%# 部分的标签
labels <- c("部分1", "部分2", "部分3", "部分4", "部分5")# 颜色
colors <- c("red", "orange", "yellow", "green", "blue")# 绘制饼图
pie(data, labels = labels, col = colors,main = "饼图示例",        # 图表标题clockwise = TRUE,        # 是否顺时针显示,默认为TRUEradius = 1               # 饼图半径,默认为1
)
 
解析
1. 创建数据集:
- data 含有各部分的数值,这些数值表示每个部分占整体的百分比。在示例中,总和为100%
 - labels 包含了每个部分的标签,用于在饼图中显示每个部分的名称
 - colors 是一个向量,用于指定每个部分的颜色。在示例中,使用了五种颜色来区分不同的部分
 
2. 绘制饼图:
- pie(data, labels = labels, col = colors, …):使用 pie() 函数绘制饼图
 - labels = labels 将 labels 中的标签应用到相应的部分
 - col = colors 指定每个部分的颜色
 - main = “饼图示例” 设置饼图的标题
 - clockwise = TRUE 表示饼图的部分按顺时针方向显示
 - radius = 1 设置饼图的半径,默认为1
 
效果

折线图
画折线图通常使用plot()函数或者更专门用于绘制折线图的plot()函数来实现。折线图适合展示随时间变化的数据趋势或者连续变量之间的关系
示例
假设有如下数据集 data,包含了随时间变化的两个连续变量 time 和 value:
# 创建示例数据集
set.seed(123)  # 设置随机种子以确保示例的可重现性
data <- data.frame(time = 1:10,              # 时间序列,假设为10个时间点value = cumsum(rnorm(10)) # 随机生成的累积值,模拟随时间变化的数据
)# 绘制折线图
plot(data$time, data$value,type = "l",                   # 指定绘制类型为折线图main = "折线图示例",           # 图表标题xlab = "时间",                 # x轴标签ylab = "数值",                 # y轴标签col = "red",                  # 折线颜色lwd = 2                        # 折线宽度
)
 
解析
1. 创建数据集:
- data$time 是时间序列,假设为1到10,代表数据的时间点
 - data$value 是随时间变化的数据值,使用 cumsum(rnorm(10)) 生成了一个随机累积值序列,模拟随时间变化的数据趋势
 
2. 绘制折线图:
- plot(data t i m e , d a t a time, data time,datavalue, …):使用 plot() 函数绘制折线图
 - type = “l” 指定绘制类型为折线图,这样会连接各个数据点形成折线
 - main = “折线图示例” 设置图表的标题
 - xlab = “时间” 和 ylab = “数值” 分别设置 x 轴和 y 轴的标签
 - col = “red” 设置折线的颜色为红色
 - lwd = 2 设置折线的宽度为2个像素
 
效果

柱状图
画柱状图通常会使用barplot()函数来实现。柱状图适合用于比较不同类别之间的数据量或者频率
示例
假设有如下数据集 data,包含了各类别的数值:
# 创建示例数据集
data <- c(10, 20, 15, 25, 30)  # 各类别的数值# 类别的标签
names <- c("类别1", "类别2", "类别3", "类别4", "类别5")# 绘制柱状图
barplot(data, names.arg = names,main = "柱状图示例",       # 图表标题xlab = "类别",            # x轴标签ylab = "数值",            # y轴标签col = "skyblue",         # 柱子的填充颜色ylim = c(0, 35)           # y轴范围
)
 
解析
1. 创建数据集:
- data 包含各个类别的数值,这些数值将用来绘制柱状图
 - names 包含每个类别的名称,用于在柱状图中显示类别标签
 
2. 绘制柱状图:
- barplot(data, names.arg = names, …):使用 barplot() 函数绘制柱状图
 - names.arg = names 将 names 中的标签应用到相应的柱子上
 - main = “柱状图示例” 设置图表的标题
 - xlab = “类别” 和 ylab = “数值” 分别设置 x 轴和 y 轴的标签
 - col = “skyblue” 设置柱子的填充颜色为天蓝色
 - ylim = c(0, 35) 设置 y 轴的显示范围,确保柱状图的高度合适显示
 
效果

箱线图
画箱线图通常可以使用boxplot()函数,箱线图常用于展示数据的分布情况,包括数据的中位数、四分位数、异常值等信息
示例
假设有如下数据集 data,包含了一组数据:
# 创建示例数据集
set.seed(123)  # 设置随机种子以确保示例的可重现性
data <- list(group1 = rnorm(100, mean = 0, sd = 1),    # 第一组数据,符合标准正态分布group2 = rnorm(100, mean = 1, sd = 1)      # 第二组数据,均值为1的正态分布
)# 绘制箱线图
boxplot(data,names = c("组别1", "组别2"),   # 设置每组数据的名称main = "箱线图示例",           # 图表标题xlab = "组别",                  # x轴标签ylab = "数据值",                # y轴标签col = c("skyblue", "salmon")   # 箱体的填充颜色
)
 
解析
1. 创建数据集:
- data 包含两组数据,每组数据有100个样本
 - group1 是符合标准正态分布的数据
 - group2 是均值为1的正态分布数据
 
2. 绘制箱线图:
- boxplot(data, …):使用 boxplot() 函数绘制箱线图
 - names = c(“组别1”, “组别2”) 设置每组数据的名称
 - main = “箱线图示例” 设置图表的标题
 - xlab = “组别” 和 ylab = “数据值” 分别设置 x 轴和 y 轴的标签
 - col = c(“skyblue”, “salmon”) 设置箱体的填充颜色,分别对应两组数据
 
效果

直方图
直方图是一种展示数据分布的常用图形,它通过将数据范围分成若干个连续的区间,并用矩形的面积来表示在每个区间内数据点的频数或频率,直方图可以直观地了解数据的分布形态,如数据的集中趋势、分散程度和异常值等
示例
# 创建示例数据集
set.seed(123)  # 设置随机种子以确保示例的可重现性
data <- rnorm(500)  # 生成500个符合正态分布的随机数# 绘制直方图
hist(data,main = "直方图示例",       # 图表标题xlab = "数据值",           # x轴标签ylab = "频数",            # y轴标签col = "lightblue",        # 矩形填充颜色breaks = 20,              # 设置区间的数量border = "black"          # 矩形边框颜色
)
 
解析
1. 创建数据集:
- 使用rnorm(500)生成500个符合标准正态分布的随机数作为示例数据
 
2. 绘制直方图:
- hist(data, …):使用hist()函数绘制直方图
 - main = "直方图示例"设置图表的标题
 - xlab = "数据值"和ylab = "频数"分别设置x轴和y轴的标签
 - col = "lightblue"设置矩形填充颜色为浅蓝色
 - breaks = 20指定数据范围被分成20个区间来绘制直方图。这个参数会影响直方图的平滑度和细节展示
 - border = "black"设置了矩形边框颜色为黑色。
 
效果

等高线图
地形图也可以被称为等高线图或者地形等高分布图,可使用contour函数来创建2D等高线图,该函数通常与filled.contour一起使用以创建填充的等高线图,这样可以更好地表示地形特征
使用filled.contour函数
示例
# 创建数据
x <- seq(-10, 10, length.out = 100)
y <- seq(-10, 10, length.out = 100)
z <- outer(x, y, function(x, y) {r <- sqrt(x^2 + y^2)10 * sin(r) / r
})# 绘制填充的等高线图
filled.contour(x, y, z,color.palette = terrain.colors,  # 使用地形颜色plot.title = title("2D Terrain Contour Plot"),plot.axes = {axis(1)axis(2)},key.title = title("Height"),key.axes = axis(4, seq(-10, 10, by = 2), las = 2),xlab = "X-axis",ylab = "Y-axis"
)
 
解析
首先创建了一个网格的x和y值,然后使用outer函数来计算每个网格点上的z值(地形高度)
 filled.contour函数用于绘制填充的等高线图,其中color.palette参数设置为terrain.colors以使用适合地形的颜色方案。同时也添加了标题、坐标轴标签
效果

使用 ggplot2 包
示例
# 安装和加载ggplot2包
install.packages("ggplot2")
library(ggplot2)# 创建数据
x <- seq(-10, 10, length.out = 100)
y <- seq(-10, 10, length.out = 100)
z <- outer(x, y, function(x, y) {r <- sqrt(x^2 + y^2)10 * sin(r) / r
})# 将数据转换为data frame
data <- expand.grid(X = x, Y = y)
data$Z <- as.vector(z)# 绘制等高线图
ggplot(data, aes(x = X, y = Y, z = Z)) +geom_contour_filled() +labs(title = "2D Terrain Contour Plot", x = "X-axis", y = "Y-axis") +theme_minimal()
 
效果

使用 lattice 包
示例
# 安装和加载lattice包
install.packages("lattice")
library(lattice)# 创建数据
x <- seq(-10, 10, length.out = 100)
y <- seq(-10, 10, length.out = 100)
z <- outer(x, y, function(x, y) {r <- sqrt(x^2 + y^2)10 * sin(r) / r
})# 将数据转换为data frame
data <- expand.grid(X = x, Y = y)
data$Z <- as.vector(z)# 绘制等高线图
levelplot(Z ~ X * Y, data = data,col.regions = terrain.colors,main = "2D Terrain Contour Plot",xlab = "X-axis", ylab = "Y-axis")
 
效果

曲线图
绘制曲线图主要用于展示函数或曲线的形状和变化。可使用基本的 plot() 函数或 curve() 函数来绘制曲线图
使用 curve() 函数
curve() 函数用于绘制数学函数的曲线图。这个函数特别适合用于绘制连续的数学函数曲线
示例
# 绘制正态分布函数的曲线图
curve(dnorm(x, mean = 0, sd = 1), from = -4, to = 4,main = "正态分布曲线图",xlab = "X轴",ylab = "Y轴",col = "blue",lwd = 2)
 
效果

使用 plot() 函数
如果需要画离散的数据点,或想要绘制自定义的曲线,可以使用 plot() 函数配合 lines() 或 points() 函数来实现
示例
# 创建自定义数据
x <- seq(-2, 2, length.out = 100)  # 创建从-2到2的100个均匀分布的点
y <- x^3  # 计算每个点的立方值# 绘制曲线图
plot(x, y, type = "l", col = "red", lwd = 2,main = "自定义曲线图",xlab = "X轴",ylab = "Y轴")
 
效果

使用 ggplot2 包绘制
ggplot2 是一个强大的绘图系统,不必过多阐述~ 其可用于绘制更复杂的图形
示例
# 加载ggplot2包
library(ggplot2)# 创建数据框
data <- data.frame(x = seq(-2, 2, length.out = 100),y = seq(-2, 2, length.out = 100)^3
)# 绘制曲线图
ggplot(data, aes(x = x, y = y)) +geom_line(color = "blue", size = 1) +labs(title = "自定义曲线图",x = "X轴",y = "Y轴") +theme_minimal()
 
解析
1. 使用 curve()函数:
- curve(dnorm(x, mean = 0, sd = 1), from = -4, to = 4, …) 用于绘制正态分布曲线,其中 dnorm() 是正态分布的密度函数
 - from 和 to 参数设置x轴的范围
 - col 和 lwd 参数设置曲线的颜色和宽度
 
2. 使用 plot()和 lines()函数:
- plot(x, y, type = “l”, …) 绘制自定义的数据点,并使用 type = “l” 参数指定绘制线条
 - x 和 y 是x轴和y轴的数值。
 
3. 使用 ggplot2包:
- ggplot(data, aes(x = x, y = y)) 创建一个基本的 ggplot 对象
 - geom_line() 绘制曲线
 - labs() 设置标题和轴标签
 - theme_minimal() 设置图表的主题样式
 
效果

热力图
热力图是一种用于可视化矩阵数据中数值大小的图形,通过颜色编码展示数据的强度或密度。热力图常用于展示数据的模式和关系,特别是在数据分析和生物信息学中
使用 heatmap() 函数
heatmap() 是R基础包中提供的一个函数,用于绘制简单的热力图。它适合于处理矩阵形式的数据,并能够展示数据的相对大小
示例
# 创建示例数据集
set.seed(123)  # 设置随机种子以确保结果的可重现性
matrix_data <- matrix(rnorm(100), nrow = 10)  # 生成10x10的随机矩阵数据# 绘制热力图
heatmap(matrix_data,main = "热力图示例",xlab = "列",ylab = "行",col = cm.colors(256),  # 颜色选择scale = "none",        # 不对数据进行标准化margins = c(5, 10)     # 设置边距
)
 
效果

使用 pheatmap 包
pheatmap 包提供更多定制选项和改进的热力图功能,适用于更复杂的数据可视化
示例
需先确保已安装了 pheatmap 包:
install.packages("pheatmap")
 
# 加载pheatmap包
library(pheatmap)# 创建示例数据集
set.seed(123)
matrix_data <- matrix(rnorm(100), nrow = 10)  # 生成10x10的随机矩阵数据# 绘制热力图
pheatmap(matrix_data,main = "pheatmap示例",color = colorRampPalette(c("blue", "white", "red"))(50),  # 颜色渐变scale = "row",                                             # 按行标准化cluster_rows = TRUE,                                      # 行聚类cluster_cols = TRUE,                                      # 列聚类show_rownames = TRUE,                                    # 显示行名show_colnames = TRUE                                     # 显示列名
)
 
效果

使用 ggplot2 包和 geom_tile() 函数
ggplot2 提供的geom_tile函数适合创建个性化的热力图
示例
# 加载ggplot2包
library(ggplot2)# 创建数据框
set.seed(123)
matrix_data <- matrix(rnorm(100), nrow = 10)
data_long <- as.data.frame(as.table(matrix_data))  # 将矩阵数据转换为长格式数据框# 绘制热力图
ggplot(data_long, aes(x = Var2, y = Var1, fill = Freq)) +geom_tile() +scale_fill_gradient(low = "blue", high = "red") +labs(title = "ggplot2热力图示例",x = "列",y = "行",fill = "值") +theme_minimal()
 
解析
1. 使用 heatmap()函数:
- matrix_data 是一个生成的10x10的随机矩阵
 - col = cm.colors(256) 设置热力图的颜色渐变,cm.colors 是颜色函数
 - scale = “none” 表示不对数据进行标准化(即原始数据被直接用于绘图)
 
2. 使用 pheatmap包:
- color = colorRampPalette(c(“blue”, “white”, “red”))(50) 设置颜色渐变,从蓝色到红色
 - scale = “row” 表示对数据按行进行标准化
 - cluster_rows 和 cluster_cols 控制是否对行和列进行聚类
 
3. 使用 ggplot2包:
- geom_tile() 用于绘制热力图的每个单元格
 - scale_fill_gradient(low = “blue”, high = “red”) 设置颜色渐变的范围
 - as.table(matrix_data) 将矩阵数据转换为适合 ggplot2 的长格式数据框
 
效果

雷达图
要画雷达图(也称为蜘蛛图或极坐标图),可使用fmsb包提供的函数来实现,雷达图适合用于展示多个变量的相对大小或比较不同类别在不同维度上的表现
示例
需确保你已经安装了fmsb包:
install.packages("fmsb")
 
# 创建示例数据集
data <- data.frame(Category = c("A", "B", "C", "D", "E"),  # 类别Var1 = c(20, 15, 25, 30, 35),           # 变量1Var2 = c(25, 20, 30, 35, 40),           # 变量2Var3 = c(30, 35, 40, 45, 50)            # 变量3
)# 加载fmsb包
library(fmsb)# 将数据标准化处理,将数值转换为角度
data_norm <- data.frame(data[,-1] / apply(data[,-1], 1, max)  # 标准化处理,除以各行中的最大值
)# 设置雷达图参数
radarchart(data_norm,    # 使用标准化处理后的数据pcol = c("skyblue"),           # 多边形的填充颜色plwd = 2,                       # 多边形线条的宽度cglcol = "black",               # 各个多边形的颜色cglty = 1,                      # 多边形线条的类型axislabcol = "black",           # 坐标轴标签的颜色title = "雷达图示例",           # 图表标题vlcex = 0.8                     # 标签文本的大小
)
 
解析
1. 创建数据集:
- data 包含不同类别在多个维度上的数值,例如变量1、变量2和变量3
 
2. 使用fmsb包绘制雷达图:
- data_norm 对原始数据进行标准化处理,确保各个维度的数据在相同的比例下进行比较
 - radarchart() 函数用于绘制雷达图,其中参数设置多边形的填充颜色、线条宽度、坐标轴标签颜色、图表标题等
 
效果

韦恩图
绘制韦恩图可以使用 VennDiagram 包,它提供了多种功能来创建和定制韦恩图
示例
确保已经安装了 VennDiagram 包
install.packages("VennDiagram")
 
# 加载必要的包
library(VennDiagram)# 定义韦恩图的数据
venn_data <- list(A = c(1, 2, 3, 4, 5),B = c(4, 5, 6, 7, 8),C = c(7, 8, 9, 10, 11)
)# 绘制 2D 韦恩图
venn_plot <- venn.diagram(x = venn_data,category.names = c("Group A", "Group B", "Group C"), # 组的名称filename = NULL, # 不保存为文件,直接显示output = TRUE,   # 输出为图形对象main = "2D Venn Diagram", # 主标题col = c("blue", "green", "red"), # 组的边框颜色fill = c("lightblue", "lightgreen", "lightcoral"), # 组的填充颜色alpha = 0.5, # 填充透明度cex = 1.5, # 组名称字体大小cat.cex = 1.2, # 类别名称字体大小cat.col = c("blue", "green", "red"), # 类别名称颜色margin = 0.1 # 图形边缘的空白
)# 显示图形
grid.draw(venn_plot)
 
解析
1. 定义韦恩图的数据:
- 使用 venn_data 列表来定义三个集合 A、B 和 C 的元素
 
2. 绘制 2D 韦恩图:
- venn.diagram() 函数用于创建韦恩图
 - x 参数传递数据列表 venn_data
 - category.names 设置每个集合的名称
 - filename 设置为 NULL 表示不保存为文件,只在 R 中显示图形
 - output 设置为 TRUE,使得函数返回图形对象
 - main 设置主标题
 - col 和 fill 分别设置边框颜色和填充颜色
 - alpha 设置填充颜色的透明度
 - cex 和 cat.cex 设置组名称和类别名称的字体大小
 - cat.col 设置类别名称的颜色
 - margin 设置图形边缘的空白区域
 
3. 显示图形:
- 使用 grid.draw() 函数来显示生成的韦恩图
 
效果

相关文章:
R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D)
R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D) 散点图示例解析效果 饼图示例解析效果 折线图示例解析效果 柱状图示例解析效果 箱线图示例解析效果 直方图示例解析效果 等高线图使用filled.contour函数示例…...
go中map
文章目录 Map简介哈希表与Map的概念Go语言内建的Map类型Map的声明Map的初始化Map的访问Map的添加和修改Map的删除Map的遍历 Map的基本使用Map的声明与初始化Map的访问与操作Map的删除Map的遍历Map的并发问题实现线程安全的Map 3. Map的访问与操作3.1 访问Map元素代码示例&#…...
02-用户画像-技术架构+业务划分
技术架构 python开发 es flume 流数据读取写入kafka文件 kafka 消息队列 sqoop 将数据导入数仓hive StructureStream 动态画像的处理 SparkSQL 静态画像的处理 ,批数据处理 读取kafka获取用户行为数据 fineBI 数据展示 业务划分 离线业务 静态画像 …...
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1
本来打算找到工作再整理高级的题库,但一直没什么面试机会。宅在家里也不知道干些什么。索性就把高级的题库整理出来了。也算有头有尾。高级的题库更新之后,专业性更强了,不是真正从事这一行的,很难做出来。本人就是个小菜鸡&#…...
敲详细的springboot中使用RabbitMQ的源码解析
这里介绍的源码主要是涉及springboot框架下的rabbitmq客户端代码(具体在springframework.amqp.rabbit包下,区分一下不由springboot直接接管的spring-rabbit的内容),springboot基于RabbitMQ的Java客户端建立了简便易用的框架。 sp…...
《Nginx核心技术》第04章:生成缩略图
作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 星球项目地址:https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀,…...
Web 3.0革新:社交金融与边玩边赚开启用户数据主权时代
目录 Web 3.0与社交商业模式 传统社交平台的问题 去中心化社交创新 Mirror:去中心化内容发布平台 Lens Protocol:去中心化社交图谱 Maskbook:隐私保护的社交方式 Web 3.0与与边玩边赚模式 经济模型解析 新商业模式的探索 Axie Infi…...
【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 中文分词模拟器(200分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…...
Cisco 路由重发布 —— 实现路由信息在不同路由域间的传递
一、技术背景 在实际的组网中,可能会遇到这样一个场景:在一个网络中同时存在两种或者两种以上的路由协议。例如客户的网络原先是纯 Cisco 的设备,使用 EIGRP 协议将网络的路由打通。但是后来网络扩容,增加了一批华为的设备&#…...
mysql8和mysql5版本在使用mybatis框架时的注意事项
mysql8和mysql5版本在使用mybatis框架时有些注意事项,两者的区别在于两处地方的设置。有一处未设置好,就会出现以下错误:java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Can…...
为什么要有指针和引用类型?
简单说,是为了必要的,且很基础的表达能力 (描述能力)。 0. 数据四要素:名、值、址、型 指针、引用的基础,就是在描述一个数据时,除了这个数据的“值”以外,引入了这个数据的“地址…...
vivado INTERNAL_VREF
内部 具有差分输入缓冲器的单端I/O标准需要输入参考 电压(VREF)。当I/O组中需要VREF时,您可以使用专用VREF 引脚作为外部VREF电源,或使用INTERNAL_VREF内部生成的VREF 属性,或者对于UltraScale设备上的HP I/O组&#x…...
VScode通过Graphviz插件和dot文件绘制层次图,导出svg
1、安装插件 在VScode中安装Graphviz Interactive Preview插件,参考。 2、创建dot文件 在本地创建一个后缀为dot的文件,如test.dot,并写入以下内容: digraph testGraph {label "层次图";node [shape square; widt…...
MMCV 核心组件分析(一):整体概述
概述 MMCV 是计算机视觉研究的基础库,并提供以下功能。...
阵列信号处理学习笔记(一)--阵列信号处理定义
阵列信号 阵列信号处理学习笔记(一)–阵列信号处理定义 阵列信号处理学习笔记(二)–空域滤波基本原理 文章目录 阵列信号前言一、阵列信号处理定义1.1 信号1.2 阵列 二、雷达数据中哪些属于空间采样总结 前言 MOOC 阵列信号处理…...
[HTML]一文掌握
背景知识 主流浏览器 浏览器是展示和运行网页的平台, 常见的五大浏览器有 IE浏览器、火狐浏览器(Firefox)、谷歌浏览器(Chrome)、Safari浏览器、欧朋浏览器(Opera) 渲染引擎 浏览器解析代码渲…...
ABAP使用SQL直接更新数据库与使用IN UPDATE TASK的区别
1. 背景 刚接触ABAP的小伙伴常常会有这样的疑问,为什么不直接使用Open SQL直接更新数据库,而要把对DB的操作封装到IN UPDATE TASK中呢? 对于这个问题,比较常见的解释是,IN UPDATE TASK的方式会保证数据更新的一致性。…...
Android GWP-Asan使用与实现原理
目录 一、 背景 二、GWP-Asan介绍 2.1 什么是GWP-ASan 2.2 GWP-Asan与其他几类工具对比 2.3 GWP-ASan与其它内存分配器的兼容性 三、GWP-Asan如何使用 3.1 app进程 3.2 native进程 四、GWP-Asan实现原理 4.1 进程启用GWP-Asan 4.2 初始化 4.3 内存分配 4.3.1 内存…...
SpringBoot 跨域请求处理全攻略:从原理到实践
文章目录 SpringBoot 如何处理跨域请求?你能说出几种方法?跨域请求概述跨域解决方案1. 使用CrossOrigin注解2. 使用WebMvcConfigurer配置类3. 使用过滤器(Filter)4. 使用Spring Security处理CORS5.使用Spring Cloud Gateway处理CO…...
vulnhub——Ai-Web1靶机渗透
Ai-Web1靶机渗透 靶机下载: 官网地址:https://www.vulnhub.com/entry/ai-web-1,353/ 攻击机:kali2024 一、信息收集 发下目标主机的IP为:192.168.201.141 用nmap工具扫描一下对方主机和服务 发现他打开了80端口 发现搜不到于是…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu  2、Hello World fn main() { println…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...
