将 ggplot 文本定位在 R 中的每个角落
在本文中,我们将学习如何在 R 编程语言中将 ggplot2 文本定位在每个角落。
要执行此任务,我们将使用 ggplot 库中的 geom_text()函数。我们还将在 R 中使用保留关键字,即Inf和-Inf。这些是 R 编程语言中的保留关键字,它们存储无穷大和负无穷大的值。 Inf存储最大值,而-Inf存储可能的最小值。
句法:
geom_text( data, aes(…), label()
首先导入所需的包并准备一个将到达每个角落的文本列表。此外,为要放置在每个角的数据准备所有 X 坐标和 Y 坐标的列表。使用一些数据创建一个常规图。现在使用 geom_text() 并传递这样的列表作为参数以及坐标列表以正确定位它们。
X、 Y坐标列表包含Inf和-Inf的组合,有助于决定角的顺序,例如(-Inf,-Inf)表示左下角,(Inf,Inf)表示右上角等。我们使用这些值来确定极端角点。
在text属性中,我们提供要绘制的文本。注意:这里我们必须按照我们希望在角落中绘制的顺序提供文本数据。然后在x_adjust, y_adjust属性中, 我们提供了可用于调整文本在 X 和 Y 平面中的位置的坐标。
示例 1:
R
library(ggplot2)
# prepare the data
annotations <- data.frame(
X = c(-Inf,-Inf,Inf,Inf),
Y = c(-Inf, Inf,-Inf,Inf),
text = c("(x0,y0)","(x0,y1)",
"(x1,y0)","(x1,y1)"),
x_adjust = c(0,0,1,1),
y_adjust = c(0,1,0,1))
ggplot(cars, aes(speed, dist)) + geom_point()+
geom_text(data=annotations, aes(
x=X,y=Y,hjust=x_adjust,vjust=y_adjust,label=text))
R
library(ggplot2)
# prepare the data
annotations <- data.frame(
X = c(-Inf,-Inf,Inf,Inf),
Y = c(-Inf, Inf,-Inf,Inf),
text = c("Shifted-Up(x0,y0)","(x0,y1)",
"Shifted-Left(x1,y0)","(x1,y1)"),
x_adjust = c(0,0,1.5,1),
y_adjust = c(-2,1,0,1)
)
#scatter plot
ggplot(cars, aes(speed, dist)) + geom_point()+
geom_text(data=annotations, aes(
x=X,y=Y,hjust=x_adjust,vjust=y_adjust,label=text))
输出:
示例 2:
电阻
library(ggplot2)
# prepare the data
annotations <- data.frame(
X = c(-Inf,-Inf,Inf,Inf),
Y = c(-Inf, Inf,-Inf,Inf),
text = c("Shifted-Up(x0,y0)","(x0,y1)",
"Shifted-Left(x1,y0)","(x1,y1)"),
x_adjust = c(0,0,1.5,1),
y_adjust = c(-2,1,0,1)
)
#scatter plot
ggplot(cars, aes(speed, dist)) + geom_point()+
geom_text(data=annotations, aes(
x=X,y=Y,hjust=x_adjust,vjust=y_adjust,label=text))
输出: