\documentclass[twoside,a4paper]{article}

\usepackage[polish]{babel}
\usepackage[latin2]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{graphicx}
\usepackage{fancyhdr}                                                           
\pagestyle{fancy}           

\frenchspacing  

\title{Tworzenie wykresów w Grace}
\author{T. Kwiatkowski, OA~UAM}
\date{2002-10-26}

\begin{document}

\fancyhead{}                                                                    
\fancyhead[CO]{Tworzenie wykresów w Grace}          
\fancyhead[CE]{Tomasz Kwiatkowski, OA~UAM}                              
\fancyhead[LE,RO]{\thepage}                                                     
\fancyfoot{}                                                                    
\renewcommand{\headrulewidth}{0.4pt}                                            
\renewcommand{\footrulewidth}{0pt}      

\selectlanguage{polish}
\maketitle

\begin{figure}[!thb]
\begin{center}
\includegraphics[width=\textwidth]{grace-pic.eps}
\end{center}
\end{figure}


\section{Wstęp}
Grace jest darmowym programem na licencji GNU, przeznaczonym do tworzenia 
dwuwymiarowych wykresów. Dostępne są jego wersje dla systemów
UNIX, VMS, OS/2 i Win9*/NT. Grace jest następcą programu ACE/gr, 
znanego również pod nazwą Xmgr, którego rozwój został wstrzymany. 
Co jakiś czas pojawiają się nowe wersje programu Grace --- w naszych 
przykładach posługiwać się będziemy wersją 5.1.3. Rozwój programu można 
śledzić pod adresem:
\begin{quote}
http://plasma-gate.weizmann.ac.il/Grace/
\end{quote}

Wygodny interfejs graficzny Grace ułatwia jego używanie choć istnieje
również możliwość korzystania z wersji programu akceptującej polecenia
wprowadzane z linii komend (co nie wymaga posiadania terminala graficznego).
Daje to dodatkowo możliwość przetwarzania wsadowego dużej ilości wykresów.

Zestaw instrukcji formatujących, przekształcających dane $X,Y$ w wykres,
zapisuje się w zwykłym pliku tekstowym, co pozwala na jego łatwą
modyfikację. Grace umożliwia m.in.:
\begin{itemize}
  \item pełną kontrolę parametrów wykresu: tytułów, legend, opisu osi,
             symboli reprezentujących punkty itp.
  \item stosowanie kilkunastu metod aproksymacji i transformacji  punktów
             pomiarowych (regresja wielomianowa, punkty średnie, histogramy,
	zdefiniowane przez użytkownika funkcje nieliniowe, całkowanie, korelacja,
	transformacja fouriera, filtry cyfrowe, konwolucja i in.)
  \item zapis wykresów w formacie PostScript, co umożliwia ich łatwe
        wstawianie do tekstów, formatowanych za pomoca \LaTeX{}'a
  \item możliwość rozmieszczenia kilku wykresów na jednej stronie
\end{itemize}

\begin{figure}[!tbhp]
\begin{center}
\includegraphics[width=\textwidth]{window.eps}
\caption{Okno programu Grace}
\label{fig-1}
\end{center}
\end{figure}


\section{Przykładowa sesja z Grace, wersja 5.1.3}

Po uruchomieniu X~Window, w x~terminalu piszemy \verb|xmgrace &| co powoduje
pojawienie się okna programu (Rys.\ref{fig-1}). Wykonamy teraz prosty wykres
zmian blasku planetoidy 433~Eros. Dane przedstawiono w postaci dwóch
kolumn liczb, określających czas (wyrażony w godzinach czasu UTC) oraz
jasność planetoidy w magnitudo. Znajdują się one na serwerze anonymous ftp
Obserwatorium Astronomicznego UAM (adres: ftp.astro.amu.edu.pl) w pliku 
/pub/latex/eros.dat.

\begin{figure}[th]
\begin{flushright}
\includegraphics[width=\textwidth]{eros.eps}
\caption{Przykładowy wykres, przygotowany w programie Grace}
\label{fig-2}
\end{flushright}
\end{figure}

Po ściągnięciu pliku z serwera ftp i zapisaniu go w swoim katalogu 
wykonujemy w kolejności następujące operacje:
\begin{enumerate}
\item Zdefiniowanie rozmiaru strony
  \begin{itemize}
    \item klikamy \verb|View, Page setup...|
    \item z prawej strony napisu \verb|Size| klikamy przycisk, wybierając z
          listy \verb|A4|
    \item na dole okna klikamy \verb|Accept| 
  \end{itemize}
\item Wczytanie danych
 \begin{itemize}
  \item klikamy \verb|Data, Import, Ascii|
  \item w polu \verb|Directories| przechodzimy do katalogu, w którym
        znajduje się plik z danymi; w celu wejścia do danego katalogu, trzeba
        dwukliknąć go myszą 
  \item w polu \verb|Files| klikamy myszą nazwę pliku z danymi (w naszym 
        przypadku
        \verb|eros.dat|) i klikamy klawisz \verb|OK| 
  \item po chwili w głównym oknie
        pojawi się krzywa --- klikamy klawisz \verb|Cancel| by zamknąć okno
        wczytywania danych
  \item uwaga: każdorazowe kliknięcie \verb|OK| powoduje wczytanie tych samych
        danych jako nowego zbioru; trzeba tu uważać, by niepotrzebnie nie
        stworzyć wielu zbiorów z identycznymi danymi
\end{itemize}
\item Ustalenie symboli dla punktów wykresu
\begin{itemize}
\item klikamy \verb|Plot, Set apperance|, następnie w kategorii
      \textit{Symbol properties} klikamy przycisk z napisem \verb|None| 
      --- pojawi się lista symboli, które mogą reprezentować punkty na
      wykresie;
\item klikamy \verb|Square| (kwadrat), zmieniamy jego rozmiar ze 100 na 50
      przesuwając myszą suwak oznaczony przez \verb|Size|; suwak przesuwa się 
      dość szybko, więc najpierw ustawiamy go w przybliżeniu na wartość z
      zakresu 40--60, a następnie naciskamy --- UWAGA!, na klawiaturze --- 
      klawisz ze strzałką w lewo bądź w prawo, by ustawić go na 50
\item wyłączamy linię, łączącą punkty pomiarowe, klikająć myszą na przycisk z
      napisem \verb|Straight| w kategorii \textit{Line properties}; pojawi się 
      lista możliwych opcji, z której wybieramy \verb|None| (czyli brak linii) 
\item na dole okna klikamy klawisz \verb|Apply| --- wprowadzone zmiany
      uwidocznią się na wykresie 
\item zmieniamy wygląd symbolu, użytego do reprezentacji punktów; klikamy
      zakładkę \verb|Symbols|, a następnie w kategorii \textit{Symbol fill}
      klikamy przycisk \verb|None|; pojawi się lista opcji, z której 
      wybieramy czarny kwadrat; ponownie klikamy \verb|Apply| --- 
      wprowadzone zmiany uwidocznią się na wykresie ---
      oraz \verb|Close|, co spowoduje zamknięcie okna     
\end{itemize}
\item Wyśrodkowanie krzywej w ramce wykresu.\\
      Operację tę wykonujemy klikając myszą na jeden z czterech klawiszy z
      narysowanymi strzałkami, położonych z lewej strony głównego okna
      programu.  Zauważmy, że ruch krzywej odbywa się z takim krokiem, by na
      osiach wykresu znajdowały się ,,sensowne'' liczby (więc np. 20.4, 22.4
      itd., a nie 20.3748, 22.8748, itp.).
\item Zmiana orientacji pionowej osi\\
      Na pionowej osi przedstawiono jasność w magnitudo, w której mniejszym
      liczbom odpowiada większa jasność obiektu. W celu jej odwrócenia:
\begin{itemize}
\item klikamy \verb|Plot| i \verb|Axis properties|, co wyświetli nam listę
      parametrów, charakteryzujących osie wykresu
\item wybieramy oś Y klikając na przycisk, na którym początkowo widać napis
      \verb|X axis|
\item klikamy przycisk \verb|Invert axis| tak, by stał się on czerwony, a 
      następnie \verb|Apply| i \verb|Close|
\end{itemize}
\item Nadanie wykresowi tytułu i podtytułu
\begin{itemize}
\item klikamy \verb|Plot|, \verb|Graph apperance|, a nastepnie --- w polu
      \verb|Title| --- wpisujemy nazwę 
      tytułu: \textit{Krzywa blasku 433 Erosa}
\item w polu \verb|Subtitle| wpisujemy treść podtytułu: 
      \textit{22 listopad 1974}
\item zatwierdzamy wprowadzone zmiany klikając \verb|Apply|
\item na wykresie pojawią się oba tytuły --- jeśli są poprawne, zamykamy 
      okno klikając \verb|Close|
\end{itemize}
\item Opisanie osi
\begin{itemize}
\item klikamy \verb|Plot|, \verb|Axis properties|, wybieramy oś X, wybieramy
      zakładkę \verb|Main|, a następnie w kategorii \verb|Axis label|, w
      polu \verb|Label string| wpisujemy \textit{Czas UTC [godz.]} i --- 
      koniecznie --- klikamy \verb|Apply| 
\item teraz zmieniamy oś na \verb|Y axis|, wybieramy zakładkę \verb|Main| i
      wpisujemy \verb|Jasnosc [mag]|
\item chcąc uzyskać polskie litery \verb|ść| naciskamy \verb|Ctrl-E|, 
      co spowoduje otwarcie okna edycji znaków
\item ustawiamy kursor w miejscu, w którym chcemy wstawić polskie znaki, 
      wybieramy je myszą z górnej tablicy znaków i klikamy \verb|Apply| 
      i \verb|Close|
\item po zamknięciu okna edycji znaków ponownie klikamy \verb|Apply| 
      i \verb|Close|, by zamknąć okno edycji osi
\end{itemize}
\item Zapisanie wykresu w postaci projektu
  \begin{itemize}
    \item klikamy \verb|File|, \verb|Save as| i na dole, w polu o nazwie
          \verb|Selection| wpisujemy docelową ścieżkę (w katalogu, w 
          którym mamy prawo zapisu!) oraz nazwę pliku: \textit{eros.agr} 
          (rozszerzenie \verb|*.agr| jest domyślnie nadawane plikom z 
          programu Grace); 
    \item w pliku tym znajdą się wybrane przez nas parametry wykresu oraz 
          nasze dane w postaci 2 kolumn liczb; klikamy \verb|OK|
    \item chcąc po pewnym czasie wrócić do wykresu, wystarczy wczytać do 
          xmgrace plik z jego projektem --- można to zrobić klikając 
          \verb|File|, \verb|Open|
  \end{itemize}
\item Zapisanie wykresu w PostScripcie do wydruku
  \begin{itemize}
    \item klikamy \verb|File|, \verb|Printer setup| 
    \item w kategorii \verb|Output| klikamy przycisk \verb|Print to file| 
    \item w polu \verb|File name| i wpisujemy nazwę pliku 
         (np. eros.ps), do którego chcemy zapisać wykres (można również 
         kliknąć przycisk \verb|Browse| i wybrać inny katalog z listy)
    \item w klategorii \verb|Page| wybieramy orientację \verb|Landscape|,
         rozmiar \verb|A4|
    \item klikamy \verb|Apply|
    \item klikamy \verb|File|, \verb|Print|, a nastepnie \verb|Close|
  \end{itemize}
  Wychodzimy z programu klikając \verb|File|, \verb|Exit|
\item Zapisanie wykresu w formacie Encapsulated PostScript\\
      Aby móc wstawić wykres do tekstu przetwarzanego przy pomocy 
      \LaTeX{}'a należy zapisać go jako EPS.
      \begin{itemize}
        \item klikamy \verb|File|, \verb|Printer setup| 
        \item w kategorii \verb|Device setup| wybieramy format \verb|EPS|
        \item w polu \verb|File name| i wpisujemy nazwę pliku 
             (np. eros.eps), do którego chcemy zapisać wykres (można również
             kliknąć przycisk \verb|Browse| i wybrać inny katalog z listy)   
        \item w klategorii \verb|Page| wybieramy orientację \verb|Landscape|,
              rozmiar \verb|A4|
        \item klikamy \verb|Apply|
        \item klikamy \verb|File|, \verb|Print|, a nastepnie \verb|Close|
  \end{itemize}

\item Wydruk wykresu na ekranie lub drukarce\\
      Możemy teraz wydrukować wykres na ekran korzystając z GhostView. W
      x~terminalu przechodzimy do katalogu, w którym zapisaliśmy wykres w
      formacie PostScript i piszemy \verb|gv eros.ps|. Na ekranie pojawi się
      okno GhostView z naszym wykresem. Powinnien on wyglądać mniej więcej
      tak, jak na Rys.\ref{fig-2}. Wydruk na drukarce realizuje komenda
      \verb|lpr eros.ps|.

\end{enumerate}


\section{Tworzenie bardziej złożonych wykresów}


Wykonamy teraz dwa wykresy
zmian blasku planetoidy 937~Bethgea (nazwa pochodzi od niemieckiego poety
lirycznego, Hansa Bethge). Potrzebne dane znajdują sie w 2 plikach: 
\verb|bethgea2.dat| oraz \verb|bethgea3.dat|. Podobnie jak plik w poprzednim
przykładzie, znajdują się one na serwerze 
anonumous ftp Obserwatorium Astronomicznego UAM 
(adres: ftp.astro.amu.edu.pl) w katalogu \verb|/pub/latex/|.

Pliki zawierają kilka kolumn liczb: w pierwszej podano czas w dniach
juliańskich, w kolejnych jasności planetoidy i dwóch gwiazd porównania w 
magnitudo. O ile plik \verb|bethgea2.dat| zawiera jasności mierzone
bezpośrednio (tzw. jasności instrumentalne), o tyle drugi plik zawiera
jasności względne, różnicowe. Dokładniejsze wyjasnienie ich znaczenia nie
jest nam teraz potrzebne -- naszym zadaniem będzie stworzenie na jednej
stronie 2 wykresów: górny ma pokazywać zmiany jasności instrumentalnych
planetoidy i gwiazd w czasie, dolny: zmiany jasności względnej planetoidy
oraz jasności względnej pierwszej gwiazdy porównania.

Zakładając pewne obycie z interfejsem programu będziemy podawać czynności do
wykonania w skróconej postaci. Będziemy pomijać polecenie \verb|Accept|,
służące do zaakceptowania wybranych wartości, a nazwy przycisków i pól,
które należy zmienić, będziemy wypisywac jednym ciągiem. Przykład: 
\verb|View|, \verb|Page setup...|, \verb|Size=A4| oznaczać będzie:
  \begin{itemize}
    \item klikamy \verb|View, Page setup...|
    \item z prawej strony napisu \verb|Size| klikamy przycisk, wybierając z
          listy \verb|A4|
    \item na dole okna klikamy \verb|Accept| 
  \end{itemize}
A zatem -- do dzieła:
\begin{enumerate}
\item Definiowanie rozmiaru strony na A4, ustawienie w pionie:
      \verb|View|, \verb|Page setup...|, \verb|Size=A4|,
      \verb|Orientation=Portrait|      
\item Przygotowanie strony do umieszczenia 2 wykresów:
      \verb|Edit|, \verb|Arrange graphs...|,
      \verb|Rows=2| 
\item W tym momencie zobaczymy dwa wykresy; górny będzie aktywny, co poznamy
      po czarnych kwadratach w jego narożnikach. Chcąc uczynic aktywnym
      dolny wykres, należy na niego kliknąć. Bardzo ważne jest, by zawsze
      pamietać, który wykres jest aktywny, gdyż tego wykresu będą dotyczyły
      wszystkie nasze operacje. Klikamy więc ponownie górny wykres.
\item Wczytanie danych do górnego wykresu: \verb|Data|,\verb|Import|,
      \verb|Ascii|, 
      \verb|Files=| \verb|bethgea2.dat|, \verb|Load as=NXY| (ten ostatni
      parametr mówi, by program wczytał \textit{wszystkie} kolumny z pliku,
      a nie tylko dwie pierwsze)
\item Sposobem opisanym w poprzednim przykładzie zmieniamy orientację
      pionowej osi, opisujemy osie (poziomą: \textit{UTC}; pionową:
      \textit{Jasność instrumentalna [mag]}), zmieniamy jednostkę czasu na
      osi poziomej (mają to być godz, min i sekundy), zmieniamy sposób 
      wyświetlania krzywych z ciągłych linii na symbole (dolna krzywa:
      czarne kółka, środkowa: czarne, niewypełnione kwadraty, górna: czarne,
      niewypełnione trójkaty).
\item Aktywujemy dolny wykres i wczytujemy do niego plik 
      \verb|bethgea3.dat| (postepując tak samo, jak w przypadku poprzedniego
      pliku)
\item Otrzymujemy tylko dwie krzywe, gdyż w czwartej kolumnie znajdowały się
      zera i trzecia krzywa pokrywa się z osią X.
\item Zmieniamy kierunek osi pionowej, opisujemy osie (poziomą:
      \textit{UTC}, pionowa: \textit{Jasność względna [mag]}), zmieniamy
      jednostkę czasu na osi poziomej, ustalamy symbole na krzywej 
      (dolna krzywa: czarne, puste kwadraty, górna: wypełnione, 
       czarne kółka)
\item By krzywe lepiej było widać, dosuniemy teraz górną krzywą do dolnej:
\begin{itemize}
      \item klikając dwa razy na dowolny z czarnych kwadratów na górnej
      krzywej sprawdzamy, że ma ona oznaczenie G1.S1
      \item G1 oznacza pierwszy wykres (wykresu numerujemy od zera!; mamy w
      sumie dwa wykresy: G0 i G1), S1 -- piewszy zbiór danych (mamy w 
      sumie dwa zbiory: S0 i S1)
      \item \verb|Data|, \verb|Transformations|, \verb|Evaluate|
      \verb|expression...|
      \item z lewej strony okna mamy oznaczenie wykresu i krzywej przed
            przesunięciem, z prawej -- po przesunięciu 
      \item wybieramy z lewej i z prawej to samo: \verb|Set: G1.S1[2][43]|
      \item w polu \verb|Formula| wpisujemy: \verb|S1.y=S1.y+0.1|
      \item klikamy \verb|Apply| pięć razy obserwując przesuwanie sie górnej
            krzywej w dół
      \item klikamy dwukrotnie na pionową oś, co otworzy okno z ustawieniami
            osi; wpisujemy \verb|Start=0.75|, \verb|Stop=1.1|
      \item operację przeskalowania można też uzyskać klikając symbol
            lupy w lewym górnym rogu głównego okna; tu jednak zależy nam na
            dokładnym wyniku, dlatego odręcznie wpisujemy dokładne wartości
      \item na koniec zagęszczamy oznaczenia na pionowej osi tak, by kreski
            występowały co 0.05 magnitudo:
            \verb|Plot|, \verb|Axis properties|, \verb|Major spacing=0.05|
\end{itemize}
\item Aproksymacja górnej krzywej na dolnym wykresie linią prostą
\begin{itemize}
      \item \verb|Data|, \verb|Transformations|, \verb|Regression|
      \item \verb|Apply to set=S1|, \verb|Accept|
      \item po chwili pojawi sie dodatkowe okno konsoli Grace z dokładna
            informacja o wynikach regresji liniowej; wyszukujemy informacje
            o odczyleniu standardowym zmiennej zależnej (Standard dev. of
            dep. variable)
      \item wynik w zaokrągleniu: 0.003
      \item zbiór punktów, tworzących dopasowaną prostą znalazł się w
            dodatkowym zbiorze G1.S3; zmieniamy kolor tej linii z
            niebieskiego na czarny, a grubość linii z 1 na 2
\end{itemize} 
\item Opis krzywych na dolnym wykresie:
\begin{itemize}
      \item \verb|Window|, \verb|Drawing objects|, \verb|Text|
      \item teraz musimy kliknąć myszą na wykresie w miejscu, gdzie chcemy
            zacząć wstawiać tekst (zanim to zrobimy, należy spojrzeć 
            na Rys.\ref{fig-3})
      \item pojawia się nowe okno, w które należy wpisać łańcuch znaków; my
            chcemy wstawić napis $\sigma=0.003$~mag, w którym pierwszy znak
            jest z greckiego alfabetu
      \item \verb|Font=Symbol|, w okienko wpisujemy literę s, klikamy
            \verb|Accept|
      \item klikamy myszą tuż za symbolem sigmy na wykresie -- tam, gdzie ma
            się pojawić ciąg dalszy napisu      
      \item zmieniamy krój czcionki: \verb|Font=Times-Roman|,
            \verb|String="=0.003 mag"| (w okienko wpisujemy to, co zawarto w
            cudzysłowie), \verb|Accept|     
      \item jeśli napis znalazł się w złym miejscu, możemy go przesunąć:
            \verb|Window|, \verb|Drawing objects|, \verb|Move|
\end{itemize}
\item Wpisujemy tytuł górnego wykresu, czyniąc go aktywnym i postępując
      tak, jak w poprzednim przykładzie. Tytuł główny ma brzmieć: 
      \textit{937 Bethgea}, a drugorzędowy (znajdujący się poniżej): 
      \textit{2000-09-22, Borowiec}
\item Otrzymany wynik powinien odpowiadać wykresom prezentowanym na
      Rys.\ref{fig-3}              
\end{enumerate}
      
\begin{figure}[!pthb]
\begin{center}
\includegraphics[width=\textwidth]{bethgea.eps}
\caption{Wykresy będące rezultatem operacji przeprowadzonych w rozdziale 
         trzecim}
\label{fig-3}
\end{center}
\end{figure}



\section{Dalsza praca z Grace}

Do programu dostępny jest obszerny opis w formacie HTML. Wystarczy kliknąć 
\verb|Help|, \verb|Tutorial|. Powoduje to uruchomienie domyślnej
przeglądarki WWW i załadowanie do niej pliku dokumentacji. Listę
przykładowych wykresów można odnaleźć klikając \verb|Help|, \verb|Examples|.

\begin{figure}[!phtb]
\includegraphics[width=\textwidth]{spectrum.eps}
\caption{Przykład bardziej skomplikowanych wykresów, które można sporządzić
         w Grace}
\label{fig-4}
\end{figure}


\end{document}