19

从我的角度来看,我已经开始将 R 的使用集成到 Notebook 中以获得两全其美的效果(python 中的数据管理,同时利用 R 的比较分析/图形优势)。不幸的是,我被一个看似简单的元素所吸引,为 ggplot2 图形调整绘图大小。使用 pandas 调整绘图大小非常简单,在纯 R 环境(如 RStudio)中,我可以使用 dev.new() 或 PNG() 等调整绘图。但是,尝试这样做是 Notebook 让我的电脑发疯(我在华硕 U46E 上运行 Ubuntu 13.04)。此外,这很重要,我想保持图形内联,以便我可以将整个脚本传递给我的同事。

尝试 dev.new() 时,我的计算机被锁定,我不得不切换到不同的虚拟终端重新启动。我试图调整 x11() 选项,我的浏览器暂时没有响应,而图形有点乱。最终,我再次获得了控制权,但我不知道为什么会这样。

有谁知道为什么会发生这种情况?此外,有谁知道如何调整从 IPython Notebook 中渲染的 ggplot2 对象的绘图大小?恐怕我不能分享数据,但我可以告诉你,我试图绘制三个由基金中心(分类变量)构成的数值变量。这些图确实按书面执行......直到我尝试调整大小。这是我的示例代码:

%%R
#x11(width=500,height=300) << didn't work
#dev.new() << tried before setting size parameters, and it locked up my laptop
#Plot total expenses by unit
print('*****Expenses by Unit*****')
print(smu)
print(ggplot(smu,aes(x=fy,y=as.numeric(as.character(totexp)),group=fund,colour=fund))+geom_line(size=2)+
        ggtitle('Total Expenses'))
#Plot expense components
print(ggplot(smu,aes(fy))+
      geom_line(aes(y=as.numeric(as.character(fixed)),colour='fixed',group=fund,colour=fund))+
      geom_line(aes(y=as.numeric(as.character(var)),colour='variable',group=fund,colour=fund))+
        geom_bar(aes(y=as.numeric(as.character(incadj)),group=1),stat='identity')+
        facet_grid(.~fund)+
        ggtitle('Components of Expenditure'))
4

1 回答 1

28

rmagic 命令有可选参数来指定绘图的大小。默认值为 480 像素的宽度和高度。因此,下面的代码复制了默认设置:

%%R -w 480 -h 480 -u px
library(ggplot2)
dat <- data.frame(x = rnorm(10), y = rnorm(10), 
                  lab = sample(c('A', 'B'), 10, replace = TRUE))
x <- ggplot(dat, aes(x = x, y = y, color = lab)) + geom_point()
print(x)

下面的代码创建了一个宽度为 50 厘米、高度为 25 厘米的图:

%%R -w 50 -h 25 -u cm
library(ggplot2)
dat <- data.frame(x = rnorm(10), y = rnorm(10), 
                  lab = sample(c('A', 'B'), 10, replace = TRUE))
x <- ggplot(dat, aes(x = x, y = y, color = lab)) + geom_point()
print(x)

您还可以以英寸或毫米为单位指定尺寸。

于 2013-07-17T22:02:03.810 回答