如何在R中的绘图之外绘制图例?
在本文中,我们将讨论如何在 R 编程语言的绘图之外绘制图例。
我们首先使用 plot()函数创建一个没有图例的基本图,并使用 R 语言的 par()函数在图例周围添加一个边距。我们将创建所需的边距并使 xpd 参数为 TRUE。这将使我们的绘图裁剪到图形区域。
句法:
par( mar, xpd)
在哪里,
- mar:确定包含边距的向量。
- xpd:它是一个布尔值。如果为 FALSE,所有绘图都被裁剪到绘图区域,如果为 TRUE,所有绘图都被裁剪到图形区域
然后我们使用 legend()函数在其上添加一个图例层。要将图例放在图上所需的位置,我们使用图例函数的 inset 参数。
句法:
legend(position, inset, title, legend, pch, col )
在哪里,
- position:确定图例的位置。
- 插图:确定位置的偏移。
- title:确定图例的标题。
- pch:确定用于表示数据点的符号。
- col:确定数据点的颜色。
示例 1:
这是 R 语言中的一个基本图,图例的右上角有图例。
R
# create sample data frame
sample_data <- data.frame(x = c(rnorm(50), rnorm(50, 5)),
y = c(rnorm(50), rnorm(50, 5)),
group = c(rep(1, 50), rep(2, 50)))
# create margin around plot
par(mar = c(3, 3, 3, 8), xpd = TRUE)
# Draw scatter plot
plot(sample_data$x, sample_data$y,
pch = sample_data$group+10,
col = sample_data$group)
# Draw legend
legend("topright", inset = c(-0.3, 0.1),
legend = c("Group 1","Group 2"),
pch = c(11,12), col = 1:2)
R
# create sample data frame
sample_data <- data.frame(x = c(rnorm(50), rnorm(50, 5), rnorm(50, 10)),
y = c(rnorm(50), rnorm(50, 5), rnorm(50, 10)),
group = c(rep(1, 50), rep(2, 50), rep(3, 50)))
# create margin around plot
par(mar = c(10, 3, 3, 3), xpd = TRUE)
# Draw scatter plot
plot(sample_data$x, sample_data$y,
pch = sample_data$group+10,
col = sample_data$group)
# Draw legend
legend("topright", inset = c(0.4, 1.2),
legend = c("Group 1","Group 2","Group 3"),
pch = c(11,12,13), col = 1:3)
输出:
示例 2:
这里是 R 语言中的一个基本图,图例位于图的底部。
R
# create sample data frame
sample_data <- data.frame(x = c(rnorm(50), rnorm(50, 5), rnorm(50, 10)),
y = c(rnorm(50), rnorm(50, 5), rnorm(50, 10)),
group = c(rep(1, 50), rep(2, 50), rep(3, 50)))
# create margin around plot
par(mar = c(10, 3, 3, 3), xpd = TRUE)
# Draw scatter plot
plot(sample_data$x, sample_data$y,
pch = sample_data$group+10,
col = sample_data$group)
# Draw legend
legend("topright", inset = c(0.4, 1.2),
legend = c("Group 1","Group 2","Group 3"),
pch = c(11,12,13), col = 1:3)
输出: