如何删除向量中的未知空白?

Bel*_*_18 3 plot r legend

我有一个向量

temp <- c("hyndman_ensemble","four_theta","tbats")
Run Code Online (Sandbox Code Playgroud)

当我打印温度时 four_theta 和 tbats 之间有未知空格(在 R 控制台中尝试此操作)

[1] "hyndman_ensemble" "four_theta"       "tbats" 
Run Code Online (Sandbox Code Playgroud)

我在图例中使用这个温度。由于图例有空格,如果列表中有 5 个项目,则数据会丢失。

图例_功能:

add_legend <- function(...) {
  opar <- par(fig=c(0, 1, 0, 1), oma=c(0, 0, 0, 0),
              mar=c(0, 0, 0, 0), new=TRUE)
  on.exit(par(opar))
  plot(0, 0, type='n', bty='n', xaxt='n', yaxt='n')
  legend(...)
}

cl <- rainbow(3) 
#Null plot just to display what is happening with the spaces in legend
plot(NULL, xlim=c(0,30), ylim=c(0,100000))
add_legend("topright", legend=c("test1",temp), lty=1,
                   col=c("orange", cl),
                   horiz=TRUE, bty='n', cex=0.8)
Run Code Online (Sandbox Code Playgroud)

这就是情节的样子。 绘图结果

即使我使用trimws(),我也会得到空格(见图)

谁能告诉我如何删除这些空格或任何可以在图外打印图例而没有任何空格的替代方法(图例不强制位于顶部)

使用修剪工具

bio*_*ser 5

您可以将该text.width参数设置为“NA”,默认为 NULL:

plot(NULL, xlim=c(0,30), ylim=c(0,100000))
add_legend("topright", legend=temp, lty=1,
           col=c("orange", cl),
           horiz=TRUE, bty='n', cex=0.8, xjust= 0, text.width=NA)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的理解是,您只有一个值 text.width = NULL,该值对应于最长条目所需的宽度。这是“hyndman_ensemble”。如果将其设置为“NA”,则在本例中您将得到一个包含 4 个条目的向量。每个条目指定每个图例条目所需的长度。

在此输入图像描述 来源在这里:https ://stat.ethz.ch/R-manual/R-devel/library/graphics/html/legend.html