2011-06-17 11 views
11

Wykonałem wykres w R i chcę powtórzyć wszystkie polecenia (takie jak plot(), legend() lub line()), które zostały wykonane dla tego wykresu, z niewielkimi zmianami. Na przykład chcę ustawić osie na skalę logarytmiczną i zmienić tytuł wykresu.Powtórz polecenie wydruku z niewielkimi zmianami w R

W gnuplocie użyłbym polecenia replot.

plot ... 
set title "The same plot with logarithmic axes" 
set logscale 
replot 

Czy coś jak to możliwe w R. Jedyną rzeczą, która przychodzi mi do głowy w ten sposób (oprócz zmiany wartości ręcznie i ponownie uruchomić linie kodów) byłoby utworzenie funkcji, która zwraca dla wszystkich parametrów, które mogą zostać zmienione przez użytkownika.

Dzięki za pomoc,

Sven

Odpowiedz

13

R wykorzystuje model pióro i papier graficzny - raz fabuła została sporządzona na urządzeniu to jest to. Jeśli chcesz zmienić jakiś aspekt wykresu, musisz powtórzyć wywołania funkcji graficznych, które generują wykres ze zmianami wprowadzonymi do kodu.

W zależności od tego, co naprawdę robi istnieją dwie opcje:

  1. Jeśli jest to dla Ciebie, napisać kod w edytorze tekstu/IDE, który wie, R i może wysyłać kawałki kodu w czasie, aby R. W ten sposób kod do wykonania figury jest zapisywany w oddzielnym skrypcie, który można wkleić do/wysłać do R, wprowadzając zmiany, które potrzebujesz za każdym razem do skryptu.
  2. Jeśli masz zamiar robić to często, to napisz sobie funkcję kreślenia opakowania, która zawiera kod fabuły, który chcesz, ale pozwala przekazywać argumenty, aby zmienić aspekty, które chcesz.

Krata i ggplot2 są nieco inne, ponieważ są one oparte na grafice siatki i tworzyć obiekty, które po wydrukowaniu produkują działkę na urządzeniu. Można manipulować tym obiektem, aby zmienić to, co zostało narysowane, a siatką można popychać i włączać/wyłączać obiekty w rzutni.

+2

Wystarczy dodać do sugestii Gavina. Istnieje metoda aktualizacji dla wykresów kratowych, więc jeśli zapiszesz utworzony obiekt, możesz aktualizować takie rzeczy jak tytuły przy użyciu funkcji aktualizacji. Obiekty ggplot2 można aktualizować za pomocą "+". –