2013-07-01 86 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!雖然我無法在沒有異常的情況下指定單位,但這很好。儘管如此,修改像素距離絕對可以完成工作。 –

相關問題