2013-07-01 44 views
17

我已经开始将R用法集成到Notebook中,从我的角度来看,它是两全其美(在Python中的数据管理,同时利用R的比较分析/图形优势)。不幸的是,我挂在一个看似简单的元素上,为ggplot2图形调整绘图大小。调整绘图大小对于熊猫来说非常简单,在纯粹的R环境(如RStudio)中,我可以使用dev.new()或PNG()等调整绘图。但是,试图做到这一点的是笔记本电脑让我的电脑变得疯狂(我在华硕U46E上运行Ubuntu 13.04)。此外,这是至关重要的,我想保持图形内联,以便我可以将整个脚本完整地传递给我的同事。绘图大小 - 在IPython笔记本中使用ggplot2(通过rmagic)

尝试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')) 

回答

26

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) 

你也可以指定大小以英寸或毫米为单位。

+0

非常感谢John!虽然我无法在没有异常的情况下指定单位,但这很好。尽管如此,修改像素距离绝对可以完成工作。 –