È possibile utilizzare rpy2 (chiamando ggplot2) con i taccuini IPython e quindi salvarli (e condividerli su NBViewer come gli altri portatili http://nbviewer.ipython.org/)? C'è qualche difficoltà nel far apparire i ggplot rpy2 nel notebook e/o in modo interattivo? Sarebbe utile se qualcuno potesse fornire una sessione di esempio e il suo output di creare una figura ggplot2 all'interno di un notebook usando rpy2 in IPython.utilizzando rpy2 con i notebook IPython?
risposta
È possibile con l'estensione rmagic, che utilizza rpy2. Sembra che tu abbia bisogno della cifra print()
per mostrarla, comunque. Ecco una sessione di esempio: http://nbviewer.ipython.org/5029692
Se si preferisce utilizzare direttamente rpy2, deve essere possibile. Dai uno sguardo allo rpy2 documentation for ggplot2. Per inserirlo nel notebook, puoi disegnare su un dispositivo PNG/SVG, quindi leggerlo dal lato Python (questo è ciò che fa rmagic).
Questo è stato scritto senza guardare il codice in rmagic. Hanno un modo più intelligente di farlo (ho 11 linee di codice).
import uuid
from rpy2.robjects.packages import importr
from IPython.core.display import Image
grdevices = importr('grDevices')
def ggplot_notebook(gg, width = 800, height = 600):
fn = '{uuid}.png'.format(uuid = uuid.uuid4())
grdevices.png(fn, width = width, height = height)
gg.plot()
grdevices.dev_off()
return Image(filename=fn)
Per provarlo:
from rpy2.robjects.lib import ggplot2
from rpy2.robjects import Formula
datasets = importr('datasets')
mtcars = datasets.__rdata__.fetch('mtcars')['mtcars']
p = ggplot2.ggplot(mtcars) + \
ggplot2.aes_string(x='mpg', y='cyl') + \
ggplot2.geom_point() + \
ggplot2.geom_smooth() + \
ggplot2.facet_wrap(Formula('~ am'))
ggplot_notebook(p, height=300)
questo codice è la prima volta che sono stato in grado di caricare e utilizzare dataset da rpy2. I set di dati di questa pagina non funzionavano: http: //rpy.sourceforge.net/rpy2/doc-2.2/html/graphics.html#package-ggplot2 – zach
@zach: R ha cambiato il modo in cui tratta internamente con i set di dati, e rpy2 è stato adattato per accogliere tali cambiamenti (sebbene il risultato immediato non sia l'interfaccia più amichevole). Non posso escludere che ci fossero dei punti nella documentazione in cui questo non è stato aggiornato, ma qui il problema potrebbe essere che stai guardando la documentazione di rpy2-2.2.x mentre probabilmente stai usando rpy2-2.3.x. In ogni caso, la migliore possibilità di vedere qualcosa di fisso è riportare il problema (email, pagina del progetto, ecc ...). – lgautier
Grazie. A volte è difficile persino sapere qual è il problema ... Ma farò un lavoro migliore di segnalazione. Grazie per il tuo ottimo lavoro. – zach
- 1. Notebook IPython con optirun
- 2. modello predefinito per ipython notebook (utilizzando Jupyter)
- 3. Collegamenti tra notebook IPython
- 4. Avvio del notebook ipython
- 5. Notebook IPython su Heroku
- 6. scorciatoie vi in notebook ipython
- 7. "Salva come" nel notebook IPython
- 8. Editor esterno per notebook IPython
- 9. Errore Pyzmq nel notebook IPython
- 10. Come chiudere correttamente Notebook IPython?
- 11. Esiste un'API per notebook IPython?
- 12. ipython cellulari Notebook uscite multiple
- 13. Notebook IPython Sympy Math Rendering
- 14. Impossibile convertire il notebook ipython utilizzando Anaconda su Windows
- 15. Personalizzazione di diapositive IPython notebook/Jupyter
- 16. Aggiornare dinamicamente il grafico nel notebook iPython
- 17. Carica dati locali nel server notebook IPython
- 18. Esegui localmente il visualizzatore di Notebook IPython
- 19. Notebook Ipython (jupyter), opencv (cv2) e tracciamento?
- 20. Escaping dollar sign in ipython notebook
- 21. Scheda IPython Notebook completa - Mostra docstring
- 22. Come svuotare sequenzialmente i grafici in IPython Notebook?
- 23. matplotlib.widget non funziona nel notebook ipython
- 24. Notebook Ipython: dov'è jupyter_notebook_config.py in Mac?
- 25. Verifica PEP8 nel codice del notebook iPython
- 26. Errore durante il caricamento del notebook IPython
- 27. Download file di trigger nel notebook iPython
- 28. Come memorizzare nella cache in Notebook IPython?
- 29. Stampa dell'anteprima di iPython Notebook a colori?
- 30. Download CSV da un notebook iPython
Non voglio usare 'rmagic' voglio usare direttamente rpy2, ma non vedere un esempio di un notebook con rpy2 sulla pagina ti sei collegato ai documenti ... non sai come disegnare su un dispositivo e poi leggerlo di nuovo? Non è automatizzato? – user248237dfsf
rmagic è ciò che automatizza l'utilizzo di un dispositivo png e la lettura dell'output. Se preferisci usare direttamente rpy2, dovrai farlo tu stesso. Puoi guardare [il codice sorgente per rmagic] (https://github.com/ipython/ipython/blob/master/IPython/extensions/rmagic.py). –
Sembra un'impresa importante ... non ne vale la pena, ma vuol dire che i taccuini ipython non sono utili per le persone che usano ggplot/rpy2 invece di matplotlib – user248237dfsf