2013-07-01 14 views
17

Tôi đã bắt đầu tích hợp sử dụng R vào Notebook để lấy, từ quan điểm của tôi, tốt nhất của cả hai thế giới (quản lý dữ liệu trong python trong khi khai thác lợi thế đồ họa/phân tích so sánh của R). Thật không may tôi treo lên trên một yếu tố dường như dễ dàng, điều chỉnh kích thước âm mưu cho đồ họa ggplot2. Điều chỉnh kích cỡ lô là khá đơn giản với gấu trúc, và trong môi trường thuần túy R (như RStudio), tôi có thể điều chỉnh lô bằng dev.new() hoặc PNG(), v.v. Tuy nhiên, cố gắng thực hiện điều này là Notebook làm cho máy tính của tôi trở nên điên rồ (Tôi đang chạy Ubuntu 13.04 trên ASUS U46E). Hơn nữa, điều này là rất quan trọng, tôi muốn giữ đồ họa nội tuyến để tôi có thể truyền toàn bộ kịch bản cho các đồng nghiệp của mình.Lô đất - Sử dụng ggplot2 trong máy tính xách tay IPython (qua rmagic)

Khi cố gắng dev.new(), máy tính của tôi bị khóa và tôi phải chuyển sang một thiết bị đầu cuối ảo khác để khởi động lại. Tôi đã cố gắng điều chỉnh các tùy chọn x11(), trình duyệt của tôi trở nên tạm thời không phản hồi trong khi đồ họa đã đi một chút haywire. Cuối cùng, tôi được cấp quyền kiểm soát một lần nữa, nhưng tôi không biết tại sao điều này lại xảy ra.

Có ai biết tại sao điều này có thể xảy ra không? Ngoài ra, không ai biết làm thế nào để điều chỉnh kích thước cốt truyện của các đối tượng ggplot2 được trả lại từ bên trong Máy tính xách tay IPython? Tôi sợ rằng tôi không thể chia sẻ dữ liệu, nhưng tôi có thể nói với bạn rằng tôi đã cố gắng vẽ ba biến số được faceted bởi trung tâm quỹ (một biến phân loại). Những âm mưu này đã thực hiện như văn bản ... cho đến khi tôi cố gắng điều chỉnh kích thước. Đây là mã ví dụ của tôi:

%%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')) 

Trả lời

26

Lệnh rmagic có đối số tùy chọn để chỉ định kích cỡ ô. Mặc định là chiều rộng và chiều cao 480 pixel. Do đó, các mã bên dưới tái tạo các thiết lập mặc định:

%%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) 

Và mã này dưới đây tạo ra một âm mưu có chiều rộng 50 cm và chiều cao 25 ​​cm:

%%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) 

Bạn cũng có thể xác định kích thước tính bằng inch hoặc milimét.

+0

Được đánh giá cao John! Điều này hoạt động tốt, mặc dù tôi không thể chỉ định các đơn vị không có ngoại lệ. Tuy nhiên, việc sửa đổi khoảng cách pixel chắc chắn sẽ hoàn thành công việc. –