在RStudio中打印太大的传奇盒子

Jus*_*yna 3 plot r legend-properties

我试图在我的情节中添加一个图例,我不明白为什么我无法控制它的大小和/或位置.我知道有很多关于它的帖子,但我已经尝试重现解决方案,无论出于何种原因,它似乎在我的RStudio中都不起作用.这是我尝试过的:

  1. 如何在R中的图例框中缩放图例框或放大字体大小

以下是我运行完全相同的代码时我的情节的样子(你可以看到图例位于图中间):我的情节-1

我还尝试运行RI中提供的一些示例代码,也获得了看起来很好的情节.例如,我的情节:

x <- seq(-pi, pi, len = 65)
plot(x, sin(x), type = "l", col = 2, xlab = expression(phi),
     ylab = expression(f(phi)))
abline(h = -1:1, v = pi/2*(-6:6), col = "gray90")
lines(x, cos(x), col = 3, lty = 2)
ex.cs1 <- expression(plain(sin) * phi,  paste("cos", phi))  # 2 ways
utils::str(legend(-3, .9, ex.cs1, lty = 1:2, plot = FALSE,
           adj = c(0, 0.6)))  # adj y !
legend(-3, 0.9, ex.cs1, lty = 1:2, col = 2:3,  adj = c(0, 0.6))
Run Code Online (Sandbox Code Playgroud)

看起来像这样:我的情节-2,我不知道为什么.我试着改变它cex,mar但它没有任何区别.

我是否需要任何额外的包来控制图例?(我装了library(graphics)但是没有任何区别.)

编辑:我在这里复制我的后续问题.

嗨Lyzander,谢谢你的回复.我实际上放大了我的情节,它看起来与链接的数字完全一样.当我将我的情节保存到png文件时,这个数字是我得到的.我重现了你的代码,这是我试图保存它时得到的:

在此输入图像描述

这是缩放后的样子:

在此输入图像描述

你可以看到你看起来不像你得到的,我不明白为什么.我有最新版本的R,我更新了所有的包.

Lyz*_*deR 6

只需使用a keyword而不是指定确切的坐标,它将更好地工作:

x <- seq(-pi, pi, len = 65)
plot(x, sin(x), type = "l", col = 2, xlab = expression(phi),
     ylab = expression(f(phi)))
abline(h = -1:1, v = pi/2*(-6:6), col = "gray90")
lines(x, cos(x), col = 3, lty = 2)
ex.cs1 <- expression(plain(sin) * phi,  paste("cos", phi))  # 2 ways
utils::str(legend(-3, .9, ex.cs1, lty = 1:2, plot = FALSE,
                  adj = c(0, 0.6)))  # adj y !
legend('topleft', ex.cs1, lty = 1:2, col = 2:3,  adj = c(0, 0.6))
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我使用了topleft您可以看到的关键字,它看起来很棒:

在此输入图像描述

如果你指定cex它确实使图例变小,如下所示:

x <- seq(-pi, pi, len = 65)
plot(x, sin(x), type = "l", col = 2, xlab = expression(phi),
     ylab = expression(f(phi)))
abline(h = -1:1, v = pi/2*(-6:6), col = "gray90")
lines(x, cos(x), col = 3, lty = 2)
ex.cs1 <- expression(plain(sin) * phi,  paste("cos", phi))  # 2 ways
utils::str(legend(-3, .9, ex.cs1, lty = 1:2, plot = FALSE,
                  adj = c(0, 0.6)))  # adj y !
legend('topleft', ex.cs1, lty = 1:2, col = 2:3,  adj = c(0, 0.6))
legend('topright', ex.cs1, lty = 1:2, col = 2:3,  adj = c(0, 0.6), cex=0.75)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

此外,当您查看Rstudio中的图形时,请确保按下缩放按钮.它更能代表输出.