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

时间:2015-05-22 17:05:24

标签: r plot legend-properties

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

  1. How to scale legend box or enlarge font size in the legend box in R
  2. 以下是我运行完全相同的代码时我的情节的样子(你可以看到图例位于图的中间):my plot-1

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

    class MySuperDuperException(Exception):
        pass
    
    class DeviceContact(models.Model):
        [...]
    
        def save(self, *args, **kwargs):
            try:
                super(DeviceContact,self).save(*args,**kwargs)
            catch DeviceContact.IntegrityError as e:
                throw MySuperDuperException()
    

    看起来像这样:my plot-2我不知道为什么。我尝试更改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)) cex,但它没有任何区别。

    我是否需要任何额外的包来控制图例? (我加载了mar,但它没有任何区别。)

    修改: 我在这里复制我的后续问题。

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

    enter image description here

    这是缩放后的样子:

    enter image description here

    正如你所看到的那样,看起来不像你得到的东西,我不明白为什么。我有最新版本的R,我更新了所有的软件包。

1 个答案:

答案 0 :(得分:6)

只需使用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))

在这种情况下,我使用了topleft关键字,你看得很清楚:

enter image description here

如果您指定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)

enter image description here

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