改变图例中线条的长度

3

The following simple example...

plot(c(1,2),c(1,2),type="l")
legend(1,1.5,legend="Test",lty=1,seg.len=2)

... 产生了错误

Error in legend(1, 1.5, legend = "测试", lty = 1, seg.len = 2) : 未使用的参数 (seg.len = 2)

我应该如何使用 seg.len 来获取更长的图例线?


2
不,对我来说它运行良好。您是否安装了所有的软件包和最新版本的R? - loki
这非常奇怪。当我重新启动我的R会话并运行我发送给你的小示例时,一切都正常。当我运行更大的程序时,我再次遇到了相同的错误。然而,当我保存我的工作区、重新启动我的R会话、加载工作区并只是再次运行生成图形的代码时,所有东西都像应该的那样工作。似乎不是我的代码有问题,而是R似乎进入了一个奇怪的状态,在其中产生了错误。当我重新启动会话并再次加载工作区时,所有东西都像应该的那样工作。 - spalan
看起来你的legend()被其他包遮盖了。看看我的答案,这应该能解决问题。 - loki
2个回答

1
如果您在更大的脚本中使用此代码,其他包可能会掩盖legend()函数。这些“其他”函数可能不包含seg.len参数。因此,您必须引用基本的legend函数。您可以通过以下方式轻松添加软件包来实现这一点:
graphics::legend(1, 1.5, legend = "Test", lty = 1, seg.len = 2)

太棒了 - 就是这样!谢谢! - spalan

0

这段代码在我的电脑上运行得非常完美(请参见下面的图像输出)。

我建议您执行以下操作:

  1. 下载并安装最新的R二进制文件。下载R
  2. 如果您使用RStudio,请下载并安装最新版本。下载RStudio

enter image description here


这非常奇怪。我已经重新安装了。当我运行我发送给你的小例子时,一切都正常。但是,当我运行我的较大程序时,我再次遇到了同样的错误。然而,当我保存工作区,重新启动R会话,加载工作区并再次运行生成图形的代码时,一切都按照预期工作。似乎问题不在于我的代码,而是R似乎进入了一种产生错误的奇怪状态。当我重新启动会话并再次加载工作区时,一切都按照预期工作。 - spalan
我明白了。至少更新 R 解决了一个问题。我建议您发布另一个遇到的新问题,以便社区可以查看并协助解决。顺便说一下,如果我的答案解决了这个特定的问题,并且您从中得到了一些帮助,为什么要对我的回答进行负评?? - Ekaba Bisong
我认为更新 R 没有改变什么。只是重新启动 R 会话就产生了变化。不过,我并没有给你点踩。现在我已经给你点赞来补偿了! - spalan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接