2009-11-02 7 views
11

Regularnie robię liczby (typ analizy danych eksploracyjnych) w R. Programuję również w Pythonie i zastanawiałem się, czy istnieją funkcje lub pojęcia w matplotlib, które warto byłoby się uczyć. Na przykład, jestem całkiem zadowolony z R - ale jego funkcja image() będzie generować duże pliki z pikselowym wyjściem, podczas gdy odpowiednik Matlaba (programuję również regularnie w Matlab) wydaje się być zarządzalny w rozmiarze pliku, a także "wygładzony" - robi matplotlib zapewnia również takie redukcje ...? Ale bardziej ogólnie, zastanawiam się, jakie inne korzyści może dać matplotlib. Nie chcę, żeby to było pytanie trollingowe. Dzięki.matplotlib dla użytkownika R?

+1

spójrz na to podobne pytanie: http://stackoverflow.com/questions/1177019/what-can-be-done-in-r-that-cant-be-done-with-python-numpy-scipy – dalloliogm

+1

Zdaję sobie sprawę, że jest to stare pytanie, ale dla nowych użytkowników: wystarczy użyć [ggplot2] (http://ggplot2.org/). Ma stromą krzywą uczenia się, ale [świetne dokumenty] (http://docs.ggplot2.org/current/) i generuje lepsze wątki niż domyślnie matplotlib. – naught101

Odpowiedz

11

To jest trudne pytanie.

Niedawno zmieniłem niektóre z moich obciążeń graficznych z R na matplotlib. W mojej skromnej opinii, uważam, że wykresy matplotlib są ładniejsze (lepsze domyślne kolory, wyglądają ostrzej i nowocześniej). Myślę też, że matplotlib znacznie lepiej renderuje pliki PNG.

Jednak prawdziwą motywacją było to, że chciałem pracować z moimi podstawowymi danymi w Pythonie (i numpy), a nie R. Myślę, że to jest ważne pytanie, w którym języku chcesz się wczytać, analizować i manipulować danymi?

Z drugiej strony, premia za R jest taka, że ​​domyślne ustawienia plotek działają (funkcja jest dostępna dla wszystkiego). Często przekopuję się przez dokumenty matplotlib (są grube) szukając jakiegoś niejasnego sposobu na dostosowanie granicy lub zwiększenie grubości linii. Procedury plotowania R mają za sobą pewną dojrzałość.

+0

Dzięki za twoje myśli ... Planuję również w Matlab, więc pomyślałem, że może to być łatwe przejście, ale mogę stworzyć większość grafik, które mogę sobie wyobrazić w R (szczególnie z grafiką siatki), więc przypuszczam, że wstrzymam się matplotlib - Zapomniałem, że w każdym pakiecie są szczegóły dotyczące personalizacji, które w danym momencie są niepotrzebne ... – hatmatrix

3

Myślę, że największą zaletą jest to, że matplotlib jest oparty na Pythonie, o którym mówisz, że już wiesz. Tak więc jest to jeden język mniej do nauczenia się. Po prostu poświęć czas na opanowanie Pythona, a skorzystasz zarówno bezpośrednio z zadania kreślenia, jak i pośrednio dla innych potrzeb Pythona.

Poza tym, IMHO Python jest ogólnie bogatszym językiem niż R, o wiele więcej bibliotek, które mogą pomóc w różnych zadaniach. Musisz mieć dostęp do danych do kreślenia, a dane mają wiele postaci. W jakiejkolwiek formie, jestem pewien, że Python ma do tego wydajną bibliotekę.

Co powiesz na osadzenie tych działek w bardziej kompletnych programach, powiedzmy prostych GUI? Matplotlib łatwo łączy się z bibliotekami Pythona (jak PyQT) i możesz tworzyć rzeczy, które ograniczają tylko twoją wyobraźnię.

+0

Dzięki za twoje myśli - pomimo, że Python jest bogatszy od R, z wieloma względami czuję się lepiej z R : jego wbudowaną listą może być również uporządkowany słownik, szybkie tworzenie tymczasowych środowisk (przestrzeni nazw) dla lokalnych obliczeń, potężne anonimowe funkcje ... Tworzenie GUI to "+" dla Pythona - używam go z działkami generowanymi przez Matlab + PIL czasami, ale również tworzę prosty GUI w R do interaktywnej analizy. – hatmatrix

+1

Możesz spróbować wywołać R z Pythona. Możesz użyć RPy, ale zwykle robię to, piszę R do pliku, a następnie uruchamiam R jako proces w trybie wsadowym, zapisując wyniki na dysku, a następnie pobierając je z Pythona. Działa świetnie. – telliott99