Czy można używać rpy2 (wywołując ggplot2) z notebookami IPython, a następnie zapisywać je (i udostępniać w programie NBViewer, podobnie jak inne notebooki http://nbviewer.ipython.org/)? Czy istnieje jakiekolwiek wyzwanie związane z pojawieniem się gpplots rpy2 w notatniku i/lub interaktywnie? Byłoby pomocne, gdyby ktoś mógł podać przykładową sesję i jej wynik tworzenia postaci ggplot2 w notatniku za pomocą rpy2 w IPython.przy użyciu programu rpy2 z notebookami IPython?
Odpowiedz
Jest to możliwe z rozszerzeniem rmagic, które używa rpy2. Wygląda jednak na to, że potrzebujesz print()
rysunku, żeby to pokazać. Oto przykładowa sesja: http://nbviewer.ipython.org/5029692
Jeśli wolisz używać rpy2 bezpośrednio, musi to być możliwe. Spójrz na rpy2 documentation for ggplot2. Aby go wprowadzić do notebooka, możesz narysować na urządzeniu PNG/SVG, a następnie odczytać je ze strony Pythona (tak robi rmagic).
To zostało napisane bez szukania kodu w rmagic. Mają bardziej sprytny sposób to zrobić (mam 11 linii kodu).
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)
Aby spróbować go:
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)
ten kod jest pierwszym razem, kiedy mogłem załadować i używać datasetsfrom rpy2. Zestawy danych z tej strony nie działały: http: //rpy.sourceforge.net/rpy2/doc-2.2/html/graphics.html#package-ggplot2 – zach
@zach: R zmienił sposób, w jaki wewnętrznie zajmuje się zestawami danych, oraz rpy2 został dostosowany do tych zmian (chociaż natychmiastowy wynik nie jest najbardziej przyjaznym interfejsem). Nie mogę wykluczyć, że były miejsca w dokumentacji, które nie zostały zaktualizowane, ale tutaj problem może polegać na tym, że patrzysz na dokumentację dla rpy2-2.2.x, podczas gdy prawdopodobnie używasz rpy2-2.3.x. W każdym razie najlepszą okazją do sprawdzenia czegoś jest zgłoszenie problemu (e-mail, strona projektu itp.). – lgautier
Dzięki. Czasami trudno jest nawet wiedzieć, jaki jest problem ..... Ale lepiej zrobię raportowanie. Dzięki za twoją wspaniałą pracę. – zach
- 1. Udostępnianie danych między notebookami IPython
- 2. Błąd R_HOME z rpy2
- 3. ipython: ponowne importowanie modułów przy użyciu% run
- 4. Jak wyświetlać obrazy z rzędu przy użyciu ekranu IPython?
- 5. Subskrybowanie użytkowników programu MailChimp przy użyciu programu ASP.NET
- 6. Instalowanie programu Qt Creator przy użyciu MinGW
- 7. Uruchamianie akcji programu Photoshop przy użyciu kodu
- 8. Notatniki programu Jupyter/IPython: Skrót "Uruchom wszystko"?
- 9. wyrównywanie wyraźnych wykresów niefazowych w ggplot2 przy użyciu Rpy2 w Pythonie
- 10. wywołanie funkcji użytkownika z użyciem Pythona rpy2
- 11. Problem z instalacją Rpy2, Windows 7
- 12. Odczytywanie danych z programu Excel 2010 przy użyciu Microsoft.Office.Interop.Excel
- 13. IPython notebook z Optirunem
- 14. Błąd rpy2 po zainstalowaniu pakietu r
- 15. Czy można zdalnie uzyskać dostęp do notatnika programu IPython bez korzystania z wbudowanego drukowania?
- 16. W konsoli IPython (Spyder), czy mogę uzyskać dostęp do zmiennej z main() po uruchomieniu mojego programu?
- 17. Konwersja pliku pfx na pem przy użyciu programu openssl
- 18. Niewłaściwe sortowanie za pomocą programu Collator przy użyciu Locale.SIMPLIFIED_CHINESE
- 19. Jak zatrzymać usługi IIS przy użyciu programu PowerShell?
- 20. Sprawdzanie poprawności programu przy użyciu typów fantomowych w Haskell
- 21. Python: czytanie dużych arkuszy programu Excel przy użyciu Openpyxl
- 22. Błąd - nie można znaleźć programu al.exe przy użyciu sdkToolsPath
- 23. Konwersja programu Excel do formatu JSON przy użyciu Angularjs
- 24. Odczytywanie pliku programu Excel w Pythonie przy użyciu pandy
- 25. Jak zatrzymać wykonywanie procedury składowanej przy użyciu programu SQL Server?
- 26. Znajdowanie wersji IIS przy użyciu programu Power Shell
- 27. Wykonaj prosty test POST przy użyciu programu RESTKit
- 28. Nagłówki dla arkusza programu Excel przy użyciu EPPlus
- 29. Zdarzenie KeyDown nie jest uruchamiane przy użyciu programu .NET WinForms?
- 30. Przesyłanie strumieniowe dużych obrazów przy użyciu programu ASP.Net Webapi
Nie chcę używać 'rmagic' Chcę korzystać bezpośrednio rpy2, ale nie widzę przykład notebooka z rpy2 na stronie jesteś połączony z dokumentami ... nie wiesz, jak narysować urządzenie, a następnie ponownie je przeczytać? Czy to nie jest zautomatyzowane? – user248237dfsf
rmagic automatyzuje używanie urządzenia png i odczytywanie wyników. Jeśli wolisz używać rpy2 bezpośrednio, musisz to zrobić sam. Możesz spojrzeć na [kod źródłowy dla rmagic] (https://github.com/ipython/ipython/blob/master/IPython/extensions/rmagic.py). –
To brzmi jak ważna niewiarygodna ... nie warta tego, ale oznacza to, że notebooki ipython są w zasadzie nieprzydatne dla osób używających ggplot/rpy2 zamiast matplotlib – user248237dfsf