2013-07-01 1 views
17

J'ai commencé à intégrer l'utilisation de R dans Notebook pour obtenir, de mon point de vue, le meilleur des deux mondes (gestion des données en python en exploitant les avantages comparatifs analytiques/graphiques de R). Malheureusement, je suis accroché sur un élément apparemment facile, en ajustant la taille de la parcelle pour les graphiques ggplot2. Ajuster la taille des tracés est assez simple avec les pandas, et dans un environnement purement R (comme RStudio), je peux ajuster les tracés avec dev.new() ou PNG(), etc. Cependant, essayer de faire ceci est de rendre mon ordinateur (Je cours Ubuntu 13.04 sur un ASUS U46E). De plus, c'est crucial, je veux garder les graphiques en ligne afin que je puisse transmettre le script dans son intégralité à mes collègues. En essayant dev.new(), mon ordinateur s'est bloqué et j'ai dû basculer vers un autre terminal virtuel pour redémarrer. J'ai essayé d'ajuster les options de x11(), mon navigateur est temporairement resté sans réponse pendant que les graphiques étaient un peu déformés. En fin de compte, on m'a de nouveau accordé le contrôle, mais je ne sais pas pourquoi c'est arrivé.Taille de tracé - Utilisation de ggplot2 dans IPython Notebook (via rmagic)

Est-ce que quelqu'un sait pourquoi cela a pu se produire? En outre, quelqu'un sait-il comment ajuster la taille de la parcelle des objets ggplot2 rendus à partir de IPython Notebook? J'ai peur de ne pas pouvoir partager les données, mais je peux vous dire que j'essayais de tracer trois variables numériques facettées par le centre financier (une variable catégorielle). Ces parcelles ont été exécutées comme écrites ... jusqu'à ce que j'essaie d'ajuster la taille. Voici mon exemple de code:

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

Répondre

26

La commande rmagic dispose d'arguments facultatifs pour spécifier la taille du tracé. La valeur par défaut est une largeur et une hauteur de 480 pixels. Ainsi, le code reproduit ci-dessous les paramètres par défaut:

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

Et ce code ci-dessous crée une parcelle avec une largeur de 50 cm et une hauteur de 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) 

Vous pouvez également spécifier la taille en pouces ou en millimètres.

+0

Très apprécié John! Cela fonctionne bien, même si je n'ai pas pu spécifier d'unités sans exception. Néanmoins, la modification en distance de pixel fait définitivement le travail. –

Questions connexes