📜  将 ggplot 文本定位在 R 中的每个角落

📅  最后修改于: 2022-05-13 01:54:39.317000             🧑  作者: Mango

将 ggplot 文本定位在 R 中的每个角落

在本文中,我们将学习如何在 R 编程语言中将 ggplot2 文本定位在每个角落。

要执行此任务,我们将使用 ggplot 库中的 geom_text()函数。我们还将在 R 中使用保留关键字,即Inf-Inf。这些是 R 编程语言中的保留关键字,它们存储无穷大和负无穷大的值。 Inf存储最大值,而-Inf存储可能的最小值。

句法:

首先导入所需的包并准备一个将到达每个角落的文本列表。此外,为要放置在每个角的数据准备所有 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))

输出: