2009-11-02 54 views

Trả lời

4

Điều này thực sự thuộc về SuperUser. Nhưng kể từ khi bạn hỏi ở đây, làm thế nào về PGF/TikZ?

Rất đơn giản 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} 

Kết quả trong:

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

+0

Điều này trông rất tuyệt vời - không bao giờ biết nó tồn tại. Cảm ơn vì bài đăng. – teabot

1

Ngoài các tùy chọn khác đề nghị, bạn có thể muốn thử GNUOctave. Bạn cũng có thể xem xét sử dụng Thư viện khoa học GNU và giao diện với gnuplot.

2

Scilab là phiên bản nguồn mở tốt đẹp của Matlab và có chức năng vẽ đồ thị. Cả hai đều được xây dựng trên khái niệm vectơ/ma trận và có thể vẽ theo 2D hoặc 3D

Ngoài ra, tôi đã sử dụng Python/Numpy/Scipy và một số thư viện (như matplotlib) trong quá khứ, bạn một số tùy chọn khác về thư viện.

5

R has excellent charting available, mặc dù nó đòi hỏi bạn phải tìm hiểu một số cú pháp (cũng đáng để nỗ lực trong quan điểm của tôi).

Chức năng arrows() có thể được sử dụng để thực hiện điều đó. Dưới đây là một ví dụ đơn giản về cách sử dụng chức năng đó:

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) 

Tổng quát hơn, read "Drawing Diagrams with R" from the recent R Journal article, trong đó bao gồm một cuộc thảo luận về hệ tọa độ.

1

Cá nhân, tôi sử dụng ứng dụng đồ họa vector cho những thứ như vậy. Nếu tôi không ở nhà (và tôi muốn sử dụng một cái gì đó miễn phí), tôi sử dụng Inkscape cho 2D .. hoặc Google SketchUp cho 3D. CorelDRAW có một công cụ kích thước và các tùy chọn chụp và cắt tỉa có thể hữu ích và hỗ trợ cho các macro VBA nếu bạn muốn lặp qua một mảng và/hoặc thực hiện một số tính toán. Tôi không chắc chắn về Illustrator hoặc những người khác, mặc dù họ có thể có những quá. Tất nhiên những con số liên quan (nếu có) sẽ không hoàn hảo .. nhưng nếu bạn cẩn thận và biết bạn đang làm gì, bạn có thể làm cho các sơ đồ đủ gần để không ai chú ý đến.

2

Thư viện Python tuyệt vời là matplotlib; nó có đầu ra tìm kiếm tuyệt vời và xử lý các loại biểu đồ số phổ biến nhất.

0

Trên máy Mac có OmniGraphSketcher, có lợi thế là không yêu cầu số để tạo biểu đồ cho việc dạy học.

1

MetaPost: chất lượng cao đồ thị

tôi đã sử dụng MetaPost (manual) trong giấy tờ của riêng tôi và thích nó rất nhiều. Đó là ngôn ngữ để mô tả các biểu đồ của bạn sẽ được xử lý thành hình ảnh. Nếu bạn biết (và thích) TeX/LaTeX: MetaPost có thể bao gồm các nhãn và văn bản được định dạng trong LaTeX.

Đối với dữ liệu khoa học, phương pháp tiếp cận dựa trên văn bản này thường hiệu quả hơn giao diện người dùng đồ họa. Bạn sẽ phải học hướng dẫn nhưng bạn tiết kiệm rất nhiều thời gian với các hình ảnh: Với một giao diện đồ họa, bạn cần phải sử dụng các chi tiết nhỏ mà bạn có thể nhận được ngay một lần với phương pháp dựa trên văn bản.

JGraph: nhanh chóng, nhận ấy hoàn thành công việc

tôi cũng sử dụng và như JGraph, một chương trình âm mưu dựa trên văn bản. Nó đơn giản hơn nhiều để tìm hiểu và sử dụng hơn MPost nhưng vẫn tạo ra các lô rất đẹp. Tôi cũng sử dụng jgraph rất nhiều cho các đồ thị được tạo ra bởi các chương trình: Một script perl đơn giản đọc và xử lý dữ liệu đầu vào của tôi, viết một kịch bản lệnh jgraph đơn giản để xử lý bởi jgraph vào một hình ảnh.

Các vấn đề liên quan