【问题标题】:How to make labels in the legend align right in R?如何使图例中的标签在R中正确对齐?
【发布时间】:2015-08-16 12:19:54
【问题描述】:

如图所示,我怎样才能使这些标签正确对齐?

我在 R 中使用图例。

【问题讨论】:

  • 或者在文本右侧画线(带颜色)?

标签: r plot alignment legend


【解决方案1】:

来自?legend

## right-justifying a set of labels: thanks to Uwe Ligges
x <- 1:5; y1 <- 1/x; y2 <- 2/x
plot(rep(x, 2), c(y1, y2), type = "n", xlab = "x", ylab = "y")
lines(x, y1); lines(x, y2, lty = 2)
temp <- legend("topright", legend = c(" ", " "),
           text.width = strwidth("1,000,000"),
           lty = 1:2, xjust = 1, yjust = 1,
           title = "Line Types")
text(temp$rect$left + temp$rect$w, temp$text$y,
     c("1,000", "1,000,000"), pos = 2)

编辑:

我找不到自动将图例与右侧的线条对齐的方法。但是您可以使用text 放置和选项bty="n" 来删除边框来生成图例。

## similar to above
x <- 1:5; y1 <- 1/x; y2 <- 2/x
plot(rep(x, 2), c(y1, y2), type = "n", xlab = "x", ylab = "y")
lines(x, y1); lines(x, y2, lty = 2)
temp <- legend("topright", legend = c(" ", " "),
           text.width = strwidth("1,000,000"),
           lty = 1:2, xjust = 1, yjust = 1, bty="n")

text(4, 2,"lbl1")
text(3.9, 1.92,"mylbl2")

【讨论】:

  • 是的,在传说中,我可以让所有标签都对齐吗?在您的示例中,“1000”和“1000000”是右对齐,但是,它们对应的行仍然是左对齐,我们可以让两者都右对齐吗?非常感谢!!!
  • 或者我可以在文本右侧添加线条吗?
  • 参考您的代码解决了我的问题,谢谢!!
  • 太棒了!很高兴你把它整理好了
  • 关于使用“trace”命令帮助您正确放置文本的另一个有用问题:stackoverflow.com/questions/9366800/…
猜你喜欢
  • 1970-01-01
  • 2011-11-28
  • 2015-10-21
  • 2020-11-11
  • 2021-05-19
  • 2023-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多