Bardzo skrótowa prezentacja GNU R.

Już od dłuższego czasu używam LaTeXa i bardzo sobie go chwalę. W sumie, myślę, że chyba nikogo kto miał przyjemność z tego narzędzia korzystać, nie trzeba przekonywać o jego licznych zaletach. W tym semestrze jeszcze częściej go używam, ze względu na sprawozdania z laboratoriów z miernictwa. Nie dbam o to jak to robią inni, ale ja sobie cenię estetykę dokumentów (trzeba się naprawdę postarać, żeby LaTeX coś złożył brzydko) i bardzo wygodne składanie wzorów matematycznych, tudzież wcale niezły system referencji. Jest jednak luka w funkcjonalności (oczywiście nie uważam, że to źle, przeciwnie) LaTeXa jaką odczułem przy okazji pisania wspomnianych sprawozdań, nie daje dobrego sposobu na generowanie wykresów. W tym miejscu z pomocą przychodzi GNU R.

GNU R stanowi bardzo dobre uzupełnienie dla LaTeXa, głównie dlatego, że i ten opiera się o napisanie paru linijek kodu na podstawie którego można wygenerować żądany wykres w jednym z kilku dostępnych formatów (między innymi svg, png). Można też po prostu wyświetlić ten wykres na ekranie. Jak dla mnie to świetna sprawa.

Prosty wykres to kwestia paru linijek, na przykład:

png(file="test.png", width=400, height=400)
ib <- seq(50,300, by=50)
delta <- c(5.7, 5.3, 3.68, 3.24, 3.30, 1.93)
plot(ib, delta, xlab="Ib[mA]", ylab="Bład względny[%]")
abline(6.45, -0.015)

W sumie wszystko właściwie widać. Określamy output (plik.png). Tworzymy dwie listy (ib i delta) które wykorzystamy jako współrzędne dla naniesionych punktów. W pierwszym przypadku użyta została funkcja seq(x,y, by=z), która zwraca tablicę elementów od x do y co z. W przypadku delta użyłem funkcji c(e1, e2, e3, ..., en), która po prostu tworzy tablicę z danych argumentów. W następnej linijce jest funkcja plot, która rysuje wykres z naniesionymi punktami, których kolejne współrzędne x są wzięte z ib, a współrzędne y z delta. Dalej znajdują się jeszcze opcjonalne wartości xlab i ylab zawierające opisy osi. Pominięto też parametr, którym można ustawić, by punkty były połączone łamaną. Na sam koniec rysuję prostą przy pomocy funkcji abline, która jest nieco nieintuicyjna ze względu na to, że przyjmuje wartość y dla x = 0 i współczynnik kierunkowy, niezależne od skali i przedziałów jakie będą przyjęte dla poszczególnych osi, ale w sumie to dobrze, że tak jest.

W wyniku przetworzenia takiego kodu otrzymamy coś takiego:
Free Image Hosting at www.ImageShack.us
Jest to oczywiście kwestia gustu, ale jak dla mnie jest to rozwiązanie szybsze, wygodniejsze i łatwiejsze w modyfikacji od konkurencji, dajmy na to Microsoft Excel.

Oczywiście jest to bardzo mała cząstka możliwości tego narzędzia (szczerze mówiąc sam ledwo je poznałem ;)), można wygenerować całą masę fajnych wykresów (tu odsyłam do polecenia demo(graphics) w interpreterze GNU R, który pokaże kilka wykresów – takich już pro, nie to co ja wam zaserwowałem ;p – wraz z kodami źródłowymi). To by było na tyle, ale jednak tekst ten powstał jedynie po to by zasygnalizować, że taka zabawka istnieje i nie jest zbyt popularna, a przecież bywa dość przydatna.


Komentarze do notki “Bardzo skrótowa prezentacja GNU R.”

  1. Barry 

    Ano fajne narzędzie, bawiliśmy się nim na labach ze statystyki.

  2. pbm 

    Ja wykresy na zajęcia na uczelni robiłem w gnuplocie – też bardzo przyjemna sprawa. Z R nie miałem jeszcze nigdy kontaktu, ale jak trzeba będzie następnym razem coś narysować to na pewno mu się przyjrzę.

    Z ciekawych rzeczy jakie już wypróbowałem robiąc coś na uczelnię to:

    - LaTeX – skład dokumentów: do sprawozdań i w sumie wszystkiego innego – już praktycznie całkiem zastąpił mi pakiet biurowy

    - ConTeXt – skład dokumentów: jakiś jeden referacik w tym napisałem, ogólnie całkiem fajne tylko dokumentacji i przykładów mało

    - gnuplot – wykresy

    - dot (graphviz) – schematy

    - metapost z klasą metauml – diagramy UML

    I chyba tyle co sobie przypominam.. :) Każde z tych narzędzi mogę polecić – bardzo przyjemne.. Zresztą nie ma to jak kompilacja pliku tekstowego aby otrzymać grafikę czy inny dokument.. :D

  3. Maciek! 

    1. Funkcjonalnie to wszystko fajne, ale czemu te narzędzia nie mają GUI? Czemu one nie są WYSIWYG ;-)

  4. mefju 

    WYSIWYG – jak sobie zrobisz plota, a potem wyeksportujesz do jpg’a to dostaniesz dokładnie to co widziałeś na plocie… ;)

  5. flegmatyk 

    Dzięki, tego mi było trzeba! ;)

  6. Elwis 

    Lubię WYSIWYM za to, że się nie martwię o szczegóły. Piszę tekst i program już wie co z tym zrobić.
    pbm: Dzięki za tą listę, na pewno się przyda jak będzie trzeba jeszcze coś dowalić do LaTeXa. ;p

  7. Zal 

    Już od jakiegoś czasu planuję zapoznać się z R. Obecnie do robienia wykresów korzystałem jedynie z Octave i jego plota (to chyba z gnuplota korzysta). Pamiętam, jak ludzie się męczyli, aby po poprawce programu napisanego np. w C, przenieść wyniki do Excela, zrobić wykresy i umieścić screenshoty w opracowaniu. Ja odpalałem jeden skrypt, który uruchamiał poprawiony program w Octave, generował wykresy w EPS i ponownie kompilował pliki napisane w LaTeX-u w celu utworzenia ładnego PDF-a ;]

    Tak swoją drogą – dopiero tydzień temu skorzystałem pierwszy raz z beamera. Świetna sprawa :D

    @Maciek: Gdzieś widziałem edytor przeznaczony do współpracy z LaTeX-em, a działający jak WYSIWYG. Nie wiem, czy godny polecenia, ale ponoć całkiem nieźle sobie radził. To nie był czasem LyX? :D

  8. Airborn 

    @Zal, Octave może korzystać z gnuplota, ale przy instalacji domyślnie jest jakieś nowsze narzędzie wybierane działające w oparciu o JAVE

  9. pbm 

    oo.. właśnie.. w Octave też coś robiłem.. ;)

    @Airborn: jesteś pewien? Ja na stronie octave znalazłem tylko info o gnuplocie..

  10. Airborn 

    @pbm, ostatnio pytał... niby wersja eksperymentalna, ale u mnie działa zdaje się dobrze

  11. Radek 

    R nie jest do rysowania (chociaż to potrafi) tylko do poważnej statystyki. Do rysowania jest gnuplot… Ale z resztą wpisu się zgadzam ;)

Zostaw odpowiedź