绘图大小 - 在IPython Notebook中使用ggplot2(通过rmagic)

时间:2013-07-01 21:55:42

标签: r ggplot2 ipython-notebook

我已经开始将R用法集成到Notebook中,从我的角度来看,两者都是最好的(python中的数据管理,同时利用R的比较分析/图形优势)。不幸的是,我挂了一个看似简单的元素,调整ggplot2图形的绘图大小。使用pandas调整绘图大小非常简单,在纯R环境(如RStudio)中,我可以使用dev.new()或PNG()等调整绘图。但是,尝试这样做是因为笔记本让我的计算机变得疯狂(我在华硕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'))

1 个答案:

答案 0 :(得分: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)

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