2009-11-02 14 views

Odpowiedz

4

To naprawdę należy do SuperUser. Ale od kiedy zapytałeś tutaj, co powiesz na PGF/TikZ?

Bardzo prosty example:

\documentclass{article} 
\usepackage{tikz} 
\begin{document} 

\begin{tikzpicture}[scale=1.5] 
    % Draw axes 
    \draw [<->,thick] (0,2) node (yaxis) [above] {$y$} 
     |- (3,0) node (xaxis) [right] {$x$}; 
    % Draw two intersecting lines 
    \draw (0,0) coordinate (a_1) -- (2,1.8) coordinate (a_2); 
    \draw (0,1.5) coordinate (b_1) -- (2.5,0) coordinate (b_2); 
    % Calculate the intersection of the lines a_1 -- a_2 and b_1 -- b_2 
    % and store the coordinate in c. 
    \coordinate (c) at (intersection of a_1--a_2 and b_1--b_2); 
    % Draw lines indicating intersection with y and x axis. Here we use 
    % the perpendicular coordinate system 
    \draw[dashed] (yaxis |- c) node[left] {$y'$} 
     -| (xaxis -| c) node[below] {$x'$}; 
    % Draw a dot to indicate intersection point 
    \fill[red] (c) circle (2pt); 
\end{tikzpicture} 
\end{document} 

Wyniki w:

tikz picture http://media.texample.net/tikz/examples/PNG/intersecting-lines.png

+0

To wygląda bardzo fajnie - nigdy nie wiedziałem, że istnieje. Dzięki za post. – teabot

1

Oprócz innych opcji zaproponował, może chcesz spróbować GNUOctave. Możesz także rozważyć użycie Biblioteki naukowej GNU i interfejsu z gnuplot.

2

Scilab jest ładną open-sourceową wersją Matlab i ma funkcje plotowania. Oba są zbudowane na zasadzie wektorów/macierzy i mogą tworzyć wykresy w 2D lub 3D:

Ponadto, udało mi się uniknąć używania w przeszłości bibliotek Python/Numpy/Scipy i niektórych ploterów (np. Matplotlib), co daje masz więcej opcji w zakresie bibliotek.

5

R has excellent charting available, chociaż wymaga to poznania pewnej składni (warte wysiłku w moim przekonaniu).

Do tego można użyć funkcji arrows(). Oto prosty przykład, jak korzystać z tej funkcji:

x <- stats::runif(12); y <- stats::rnorm(12) 
i <- order(x,y); x <- x[i]; y <- y[i] 
plot(x,y, main="arrows(.) and segments(.)") 
## draw arrows from point to point : 
s <- seq(length(x)-1) 
arrows(x[s], y[s], x[s+1], y[s+1], col= 1:3) 

Bardziej ogólnie, read "Drawing Diagrams with R" from the recent R Journal article, która zawiera omówienie układów współrzędnych.

1

Osobiście używam aplikacji grafiki wektorowej do takich rzeczy. Jeśli nie ma mnie w domu (i chcę coś darmowego), używam Inkscape do 2D .. lub Google SketchUp do 3D. Program CorelDRAW ma narzędzie do wymiarowania oraz opcje przyciągania i przycinania, które mogą być pomocne, oraz obsługę makr VBA, jeśli chcesz przechwycić tablicę i/lub wykonać pewne obliczenia. Nie mam pewności co do programu Illustrator lub innych, choć mogą one również mieć. Oczywiście te liczby (jeśli takie istnieją) nie będą idealne ... ale jeśli jesteś ostrożny i wiesz, co robisz, możesz zrobić wykresy na tyle blisko, że nikt tego nie zauważy.

2

Doskonała biblioteka Pythona to matplotlib; ma świetnie wyglądające wydruki i obsługuje najczęstsze typy wykresów numerycznych.

0

Na komputerze Mac jest OmniGraphSketcher, który ma tę zaletę, że nie wymaga numerów do tworzenia wykresów do nauczania.

1

MetaPost: wysokiej jakości wykresy

użyłem MetaPost (manual) w moich papierach i podobało mi się bardzo. Jest to język opisujący wykresy, które zostaną przetworzone na obraz. Jeśli znasz (i lubisz) TeX/LaTeX: MetaPost może zawierać etykiety i tekst sformatowany w LaTeX.

W przypadku danych naukowych to podejście oparte na tekście jest często bardziej produktywne niż graficzny interfejs użytkownika. Będziesz musiał nauczyć się tej instrukcji, ale zaoszczędzisz dużo czasu na obrazach: z GUI potrzebujesz błahostki z drobnymi szczegółami, które możesz uzyskać raz na raz z tekstowym podejściem.

JGraph: szybkie, get zadanie

ja także używać i jak JGraph, kolejny tekstowy programu kreślenia. O wiele łatwiej jest się uczyć i używać niż MPost, ale nadal tworzy bardzo ładne wątki. Używam również jgraph dla wykresów generowanych przez programy: Prosty skrypt perla odczytuje i przetwarza moje dane wejściowe, wypisuje prosty skrypt jgraph do przetworzenia przez jgraph na obraz.

Powiązane problemy