2013-07-01 4 views
17

Я начал интегрировать использование R в блокнот, чтобы получить, с моей точки зрения, лучшее из обоих миров (управление данными на питоне при использовании сравнительных аналитических/графических преимуществ R). К сожалению, я повесил на себя, казалось бы, легкий элемент, отрегулировав размер графика для графики ggplot2. Регулировка размеров графика довольно проста с помощью панд, а в среде с чисто R (например, RStudio) я могу настраивать графики с помощью dev.new() или PNG() и т. Д. Однако попытка сделать это - это ноутбук, который заставляет мой компьютер сходить с ума (Я запускаю Ubuntu 13.04 на ASUS U46E). Кроме того, это важно, я хочу, чтобы графика была встроена, чтобы передать сценарий полностью моим коллегам.Размер участка - Использование ggplot2 в ноутбуке IPython (через rmagic)

При попытке dev.new() мой компьютер заблокирован, и мне пришлось переключиться на другой виртуальный терминал для перезагрузки. Я попытался настроить параметры x11(), мой браузер стал временно не отвечать на запросы, в то время как графика немного поскользнулась. В конечном счете, мне снова дали контроль, но я понятия не имею, почему это произошло.

Кто-нибудь знает, почему это могло произойти? Кроме того, кто-нибудь знает, как отрегулировать размер участка объектов ggplot2, отображаемых из IPython Notebook? Я боюсь, что не могу поделиться данными, но могу вам сказать, что я пытался построить три числовые переменные, связанные с центром фондов (категориальная переменная). Эти графики выполнялись как написано ... пока я не попытался настроить размер. Вот мой пример кода:

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

Поблагодарили Джон! Это хорошо работает, хотя я не смог указать единицы без исключения. Тем не менее, изменение расстояния на пикселях определенно выполняет свою работу. –

Смежные вопросы