Подтвердить что ты не робот

Размер участка - использование ggplot2 в ноутбуке IPython (через rmagic)

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

При попытке 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'))
4b9b3361

Ответ 1

Команда 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)

Вы также можете указать размер в дюймах или миллиметрах.