4. Vẽ đồ thị cho số liệu

Trở về Mục lục cuốn sách

Mã nguồn người dịch mới upload randomness.zip

Đến giờ, bạn đã học được nhiều phương pháp phân tích số liệu. Vì bạn không chỉ muốn nhìn vào những bảng chứa đầy con số, nên cần phải biểu thị số liệu này dưới dạng biểu đồ. Những biểu đồ này, có chứa kết quả cốt yếu nhất từ thành quả nghiên cứu của bạn, có thể dùng được trong những bài thuyết trình hoặc công bố khoa học. Để phân tích và vẽ đồ thị số liệu, hiện có nhiều chương trình máy tính cả thương mại lẫn phi thương mại. Ở đây, ta đề cập đến hai chương trình miễn phí, gnuplot, và xmgrace. Gnuplot là chương trình nhỏ, chạy nhanh, vẽ và chuyển đổi được các đồ thị 2 và 3 chiều, cũng như khớp được các hàm tùy ý theo dãy số liệu (xem Mục 6.2). Còn xmgrace thì linh hoạt hơn và tạo ra kết quả đẹp hơn. Bạn nên dùng gnuplot để trực tiếp xem xét và khớp đường cong cho dãy số liệu, và xmgrace để tạo ra hình vẽ phục vụ thuyết trình hoặc ấn phẩm khoa học.

gnuplot

Chương trình gnuplot được kích hoạt bằng cách gõ gnuplot vào cửa sổ dòng lệnh, hoặc từ trình đơn trong giao diện đồ họa của hệ điều hành bạn đang dùng. Hướng dẫn đầy đủ của phần mềm này có thể xem ở [Texinfo].

Như thường lệ, các ví dụ ta đang xét được áp dụng cho hệ giao diện cửa sổ UNIX như X11, nhưng chương trình Gnuplot cũng chạy được trên hầu như mọi hệ điều hành. Sau khi khởi động, ở cửa sổ dòng lệnh sẽ xuất hiện dấu nhắc gnuplot (như gnuplot>) và người dùng có thể nhập các lệnh vào dưới dạng chữ, kết quả được mở ra ở những cửa số khác hoặc được ghi vào file. Để xem thông tin giới thiệu, bạn có thể gõ vào chữ help.

Trước khi đưa ra ví dụ, cũng cần nói rằng các đoạn mã lệnh gnuplot có thể được tạo ra dễ dàng bằng cách viết những dòng lệnh vào trong một tập tin, chẳng hạn command.gp, rồi ta gọi gnuplot command.gp.

Mã nguồn: file sg_e0_L.dat

Trường hợp điển hình là bạn có sẵn một file số liệu chứa các giá trị x − y hoặc x − y − dy (trong đó dy là thang sai số của các điểm số liệu y). File của bạn có thể trông như sau, trong đó “năng lượng” e0 của một hệ1 được lưu trữ dưới dạng một hàm của “kích thước hệ” L. Tên file là sg_e0_L.dat. Dòng thứ nhất chứa các giá trị của L, dòng thứ hai là các giá trị năng lượng và dòng thứ ba là sai số chuẩn của năng lượng. Cần lưu ý rằng những dòng bắt đầu bằng dấu “#” là những dòng chú thích mà máy sẽ bỏ qua:

# ground state energy of +-J spin glasses
# L    e_0   error
  3 -1.6710 0.0037
  4 -1.7341 0.0019
  5 -1.7603 0.0008
  6 -1.7726 0.0009
  8 -1.7809 0.0008
 10 -1.7823 0.0015
 12 -1.7852 0.0004
 14 -1.7866 0.0007

Để vẽ đồ thị cho số liệu này, ta cần gõ vào

gnuplot> plot "sg_e0_L.dat" with yerrorbars

Lệnh trên có thể được viết tắt thành p "sg_e0_L.dat" w e. Đừng quên dấu nháy kép hai phía tên file. Tiếp theo, một cửa sổ xuất hiện, cho ta thấy kết quả, như Hình 14.

Hình 14. Cửa sổ Gnuplot cho thấy kết quả một lệnh vẽ đồ thị.

Lệnh plot có rất nhiều tùy chọn và kiểu vẽ, chẳng hạn with lines tạo ra những đường nét thay vì dấu kí hiệu. Ở đây sẽ không giải thích cách đặt các đường nét cũng như màu sắc và kích thước dấu kí hiệu, vì thường những điều này không cần khi ta nhìn qua số liệu. Còn với những biểu đồ “đẹp” dùng cho thuyết trình, thì bạn nên dùng xmgrace, ở mục tiếp theo. Dù sao, help plot sẽ cho bạn biết tất cả những điều cần khi dùng lệnh plot.

Trong số các tùy chọn quan trọng của lệnh plot, có tùy chọn chỉ định khoảng giới hạn đồ thị. Điều này có thể được thực hiện bằng cách viết rõ ngay sau lệnh, chẳng hạn

 gnuplot> plot [7:20]  "sg_e0_L.dat" with yerrorbars

chỉ hiển thị số liệu nào thỏa mãn x ∈ [7, 20]. Ngoài ra, một khoảng x nữa cũng có thể được chỉ ra như trong

plot [7:20][-1.79:-1.77]  "sg_e0_L.dat" with yerrorbars

Nếu chỉ muốn đặt khoảng y thôi, thì bạn phải chỉ định [ ] cho khoảng x. Bạn cũng có thể cố định các khoảng này bằng những lệnh set xrangeset yrange, từ đó mỗi lần dùng lệnh plot, bạn không phải đặt chúng nữa; xem thêm help set xrange, hoặc help unset xrange trong trường hợp bỏ thiết lập khoảng.

Gnuplot biết rất nhiều hàm lập sẵn như sin(x), log(x), lũy thừa, căn thức, hàm Bessel, hàm sai số,2 và nhiều hàm khác. Để thấy được danh sách đầy đủ, hãy gõ vào help functions. Các hàm này cũng có thể được vẽ đồ thị. Hơn nữa, bằng cách dùng những hàm này và biểu thức số học, bạn có thể tự định nghĩa các hàm mới, chẳng hạn bạn có thể định nghĩa một hàm ft(x) để biểu diễn hàm mật độ xác suất Fischer-Tippett (xem PT (43)) với tham số λ (ở đây gọi là lambda) rồi hiển thị hàm này qua các lệnh

gnuplot> ft(x)=lambda*exp(-lambda*x)*exp(-exp(-lambda*x))
gnuplot> lambda=1.0
gnuplot> plot ft(x)

Bạn cũng có thể kèm theo các biểu thức số học trong lệnh vẽ. Để vẽ một hàm mật độ xác suất Fischer-Tippett sau khi dịch chuyển và thu phóng, bạn có thể gõ vào:

gnuplot> plot [0:20] 0.5*ft(0.5*(x-5))

Hàm mật độ xác suất Fischer-Tippett có một phần đuôi giảm nhanh theo cấp lũy thừa. Điều này có thể thấy được rõ hơn sau khi thu phóng theo thang loga trên trục y.

gnuplot> set logscale y
gnuplot> plot [0:20] 0.5*ft(0.5*(x-5))

sẽ tạo ra biểu đồ như trên Hình 15.

Hình 15. Cửa sổ Gnuplot cho thấy kết quả của việc vẽ đồ thị một hàm mật độ xác suất Fischer-Tippett sau khi dịch chuyển và thu phóng theo thang loga trên trục y.

Ngoài ra, ta còn có thể vẽ đồ thị của nhiều hàm số trong cùng một biểu đồ, bằng việc dùng dấu phẩy phân tách các lệnh vẽ với nhau, chẳng hạn để so sánh một hàm mật độ xác suất Fischer-Tippett với hàm mật độ xác suất chuẩn hóa, ta gõ vào lệnh sau: (Ở đây có dùng đến hằng số định sẵn pi.)

gnuplot> plot ft(x), exp(-x*x/2)/sqrt(2*pi)

Có thể đọc các file chứa nhiều cột bằng cách dùng thuộc tính có tên using, chẳng hạn

gnuplot> plot "test.dat" using 1:4:5 w e

hiển thị cột thứ tư theo dạng hàm số của cột thứ nhất, với thang sai số cho bởi cột thứ 5. Các phần tử theo sau using được gọi là đề mục. Sau thuộc tính using bạn cũng có thể thực hiện tính toán, quy đổi. Mỗi đề mục, khi có tính toán cần thực hiện, phải được bao bọc trong cặp ngoặc ( ). Bên trong ngoặc, bạn có thể chỉ định các cột khác nhau của file đầu vào, qua cách viết $1 đối với cột thứ nhất, $2 với cột thứ hai, v.v. Bạn có thể lập biểu thức bất kì bên trong cặp ngoặc, nghĩa là dùng số liệu từ những cột khác nhau (cũng có thể kết hợp nhiều cột trong một mục), những toán tử, biến, hàm có sẵn và tự lập riêng, v.v. Chẳng hạn, ở Mục 6.2, bạn sẽ thấy rằng số liệu từ file sg_e0_L.dat gần như tuân theo một hàm mũ e0(L) = e + aLb với e ≈  − 1. 788, a ≈ 2. 54b ≈  − 2. 8. Để minh họa điều này, ta hãy biểu diễn e0(L) − e là hàm theo Lb. Có thể thực hiện bằng cách:

gnuplot> einf=-1.788
gnuplot> b=-2.8
gnuplot> plot "sg_e0_L.dat" u ($1**b):($2-einf)

Bây giờ cửa sổ gnuplot sẽ cho thấy số liệu như một đường thẳng (ở đây sẽ không vẽ ra, nhưng có thể xem Hình 23).

Đến giờ, tất cả kết quả đều được xuất hiện trên màn hình. Song ta cũng có thể chuyển kết quả đầu ra đến, chẳng hạn, một file EPS (encapsulated postscript) (bằng cách đặt set terminal postscript rồi chuyển đầu ra set output "test.eps"). Bây giờ khi bạn nhập vào lệnh vẽ, thì file postscript tương ứng sẽ được tạo thành.

Lưu ý rằng không chỉ nhiều hàm mà nhiều file số liệu, hoặc cả hàm và file số liệu, có thể được kết hợp vào trong một hình vẽ. Để nhớ rằng một bản vẽ được xuất ra file là thế nào, bạn có thể đặt tiêu đề của trục biểu đồ bằng cách gõ vào, chẳng hạn set xlabel "L", vốn sẽ có tác dụng khi lệnh plot tiếp theo được thực hiện. Bạn cũng có thể dùng set title hay đặt bất kì nhãn nào bằng set label. Hãy dùng lệnh help để tìm hiểu thêm.

Ngoài ra, việc vẽ đồ thị ba chiều (thực ra là phép chiếu lên hai chiều) cũng thực hiện được bằng lệnh splot (hãy gõ vào help splot để biết thêm thông tin). Ở đây, ví dụ như ta vẽ phân bố chuẩn hai chiều:

gnuplot> x0=3.0
gnuplot> y0=-1.0
gnuplot> sx=1.0
gnuplot> sy=5.0
gnuplot> gauss2d(x,y)=exp(-(x-x0)**2/(2*sx)-(y-y0)**2/(2*sy))\
> /sqrt(4*pi**2*sx**2*sy**2)
gnuplot> set xlabel "x"
gnuplot> set ylabel "y"
gnuplot> splot [x0-2:x0+2][y0-4:y0+4]  gauss2d(x,y) with points
gnuplot>

Lưu ý rằng dòng lệnh dài có chứa định nghĩa của hàm hai tham số, gauss2d(), được cắt thành hai dòng bằng dấu gạch ngược ở cuối dòng thứ nhất. Ngoài ra, một số biến được dùng bên trong chỉ định khoảng ở đầu lệnh splot. Rõ ràng, bạn cũng có thể vẽ đồ thị ba chiều với số liệu trong file. Kết quả là biểu đồ xuất hiện trong cửa số như trên Hình 16. Bạn có thể kéo chuột bên trong cửa sổ đồ thị, để thay đổi góc nhìn.

Hình 16. Cửa sổ Gnuplot cho thấy kết quả vẽ đồ thị một hàm hai chiều bằng splot.

Sau cùng, để dừng hoạt động gnuplot, hãy gõ vào lệnh exit. Các ví dụ trên đây hẳn đã cho bạn ấn tượng nhất định về những việc mà ta làm được bằng gnuplot. Bạn có thể tìm hiểu thêm ở trong tài liệu hoặc trợ giúp trực tuyến. Cách khớp các hàm với số liệu bằng gnuplot được giải thích trong Mục 6.2. Bằng nỗ lực, bạn cũng có thể vẽ đồ thị thích hợp cho việc xuất bản, nhưng sẽ dễ hơn nếu dùng xmgrace, vốn được đề cập đến trong mục kế tiếp.

xmgrace

Chương trình xmgrace (X Motiv GRaphing, Advanced Computation and Exploration of data) mạnh hơn nhiều so với gnuplot và tạo ra kết quả đẹp hơn; các lệnh được ban hành qua việc ấn chuột vào trình đơn và nút trên giao diện; chương trình cũng mang tính trực quan (WYSIWYG). xmgrace cho ta gần như mọi tính năng mà bạn có thể hình dung được ở đồ thị hai chiều, bao gồm nhiều đồ thị lồng ghép, khớp đường cong, biến đổi Fourier nhanh, nội suy. Hình dáng của các biểu đồ có thể được thay đổi theo mọi cách bạn hình dung, như chọn phông chữ, cỡ chữ, màu sắc, kí hiệu, kiểu dáng của đường nét vẽ, biểu đổ thanh, v.v. Ngoài ra, bạn có thể tạo nên nhiều kiểu tiêu đề / chú giải và có thể thêm các thành phần như dòng chữ, tiêu đề, đường nét hoặc những đối tượng hình họa trong biểu đồ. Các biểu đồ này có thể được xuất ra dưới nhiều định dạng, và nói riêng là encapsulated postscript (.eps). Người dùng thông thạo có thể lập trình trên chương trình này hoặc dùng nó để hiển thị trực tiếp kết quả mô phỏng. Ở phương diện khác, chương trình này xử lý chậm hơn so với gnuplot và có xu hướng lấp đầy màn hình bằng các cửa sổ lớn nhỏ. Để biết được thông tin đầy đủ, hãy xem trợ giúp trực tuyến, quyển hướng dẫn, hoặc trang web của chương trình .

Hình 17. Cửa sổ Grace:Read Set của chương trình xmgrace. Trong đó, bạn có thể chọn một file [A], chọn kiểu của file đầu vào [B], chọn định dạng dữ liệu [C], chọn những trục nào cần được tự động chỉnh lại thang đo theo số liệu đầu vào [D]. Bạn có thể bắt đầu nạp số liệu bằng cách ấn nút OK [E] và đóng cửa sổ bằng cách ấn nút Cancel [F].

Ở đây, chỉ trình bày các bước chính để tạo ra đồ thị đơn giản đồng thời chỉ dẫn một số hướng phá triển. Bạn sẽ biết những bước quan trọng nhất để tạo ra biểu đồ tương tự với ví dụ thứ nhất, ở chương trình gnuplot, nhưng lần này bản vẽ có chất lượng đạt yêu cầu xuất bản. Đầu tiên, bạn phải khởi động chương trình bằng cách gõ xmgrace vào cửa sổ lệnh (hoặc khởi động nó từ một cửa sổ hoặc trình đơn nào đó thuộc hệ điều hành). Tiếp theo, hãy chọn trình đơn Data 3, tiếp theo là trình đơn con Import và cuối cùng là trình đơn con ASCII… Sau đó, một cửa sổ “Grace:Read Set” sẽ mở ra (xem Hình 17) và bạn có thể chọn file số liệu cần được nạp (ở đây là sg_e0_L.dat) [A], kiểu của file dữ liệu vào (Single Set) [B], định dạng của dữ liệu (XYDY) [C]. Điều này nghĩa là bạn có 3 cột, và cột thứ ba là một thang sai số cho dữ liệu ở cột thứ hai. Sau đó bạn có thể ấn nút OK . Dữ liệu sẽ được nạp và biểu thị trên cửa sổ chính (xem Hình 18). Các giới hạn trục được điều chỉnh để hợp với số liệu, vì lựa chọn “Autoscale on read” được đặt mặc định cho “XY” . Bạn có thể nhanh chóng thay đổi phần của dữ liệu hiển thị bởi các nút (phóng đại, AS, Z, z,  ← ,  → ,  ↓ ,  ↑ ) phía tay trái của cửa sổ chính ngay dưới nút Draw.

Hình 18. Cửa sổ chính của xmgrace sau khi dữ liệu được nạp vào (tự động căn chỉnh tỉ lệ).

Lưu ý rằng một kiểu file đầu vào quan trọng khác là “Block data”, theo đó file bao gồm nhiều cột mà bạn chỉ muốn biểu diễn một số cột nhất định trong đó. Khi ấn nút OK [E], một cửa sổ khác (Grace:Edit block data) sẽ bật ra, và tại đây bạn chọn những cột nào muốn hiển thị. Đối với định dạng dữ liệu (cũng như khi nạp dữ liệu khối (block)), một số lựa chọn quan trọng khác bao gồm XY (không có thang sai số) và XYDYDY (khoảng tin cậy đầy đủ, có thể là bất đối xứng). Sau cùng, bạn có thể đóng cửa sổ lựa chọn file, bằng cách ấn nút Cancel [F]. Các nút OK và Cancel đều có ở tất cả cửa sổ xmgrace và từ giờ trở đi sẽ không được nhắc đến nữa.

Trên biểu mẫu, dữ liệu được nạp sẽ mặc định hiển thị; và sẽ không phù hợp để đưa hình vẽ này vào ấn phẩm khoa học, vì những kí hiệu, nét vẽ và phông chữ thường quá nhỏ hoặc quá mảnh. Để chỉnh những chi tiết trên biểu đồ tạo nên, bạn cần vào trình đơn Plot. Trước hết, hãy chọn trình đơn con Plot appearance…. Một cửa sổ tương ứng sẽ bật ra. Tại đây, bạn chỉ việc bỏ đi lựa chọn ở hộp “Fill” (góc phải bên trên), vì nếu không thì hộp bao giới hạn trong file .eps sẽ không khớp với biểu đồ và hình vẽ này sẽ chồng đè lên những phần khác của bản thảo. Bây giờ thì biểu đồ tạo thành không có phần nền, điều này dễ thấy qua việc suất hiện những điểm nhỏ trên cửa sổ chính của xmgrace, nhưng sẽ không gây ảnh hưởng đến kết quả đầu ra khi xuất dưới dạng .eps.

Hình 19. Cửa sổ Grace:Set Appearance của chương trình xmgrace. Trước hết, bạn phải chọn một hoặc nhiều tập số liệu cần được giải quyết bằng cách thay đổi [A]. Do có nhiều tham số điều chỉnh được, cửa sổ được tổ chức thành những đề mục khác nhau. Đề mục quan trọng nhất là “Main” [B], ở đây ta sẽ không chỉ ra. Bạn có thể lựa chọn kiểu kí hiệu [C] (bên dưới: kích thước kí hiệu, màu kí hiệu), chọn bề rộng nét vẽ [D] (đồng thời: kiểu đường nét) và màu sắc [E], cũng như các lựa chọn khác. Ngoài ra, tiêu đề cho dữ liệu này xuất hiện ở chú thích có thể ấn định được [F].

Tiếp theo, bạn chọn trình đơn con Set appearance… của trình đơn Plot. Cửa sổ tương ứng sẽ được bật ra, xem Hình 19. Bạn cũng có thể bật cửa sổ này lên bằng cách nháy đúp chuột vào phần bên trong biểu đồ. Cửa sổ này cho phép ta thay đổi kiểu hiển thị của dữ liệu. Bạn phải chọn một hoặc nhiều bộ số liệu để áp dụng những thay đổi khi ấn nút Apply ở bên trái phía dưới cửa sổ. Lưu ý rằng danh sách các bộ số liệu trong hộp này sẽ chứa nhiều bộ số liệu, nếu bạn đã nhập vào nhiều hơn một bộ. Mỗi bộ số liệu có thể (và nên) có hình thức hiển thị (kiểu) riêng. Hộp chứa các bộ số liệu cũng được dùng để quản lý chúng. Nếu đưa con trỏ chuột vào phía trong hộp này và ấn nút phải, thì một trình đơn sẽ xuất hiện, ở đó bạn có thể, chẳng hạn, sao chép hoặc xoá bộ số liệu, ẩn hoặc hiện chúng, hoặc sắp xếp lại chúng.

Những tuỳ chọn trong cửa sổ này được bố trí vào nhiều thẻ mục khác nhau, quan trọng nhất là mục “Main” . Ở đây, bạn có thể chọn việc liệu có muốn hiển thị kí hiệu cho các điểm số liệu không, và kiểu kí hiệu gì , đồng thời kích cỡ và màu sắc của kí hiệu đó. Nếu cũng muốn hiện các đường nét (khu vực Line properties bên tay phải), bạn cũng có thể chọn style như “straight” và những kiểu khác, hoặc “none” nếu không muốn hiện đường nét. Kiểu nét có thể là nét liền, nét chấm, nét gạch, và các kiểu chấm-gạch khác nhau. Đối với các bài thuyết trình và ấn phẩm khoa học, điều quan trọng là những nét vẽ phải rõ ràng; ở ví dụ này đã chọn nét vẽ với bề rộng bằng 2 và màu đen . Ở các bài thuyết trình, bạn có thể phân biệt những bộ số liệu khác nhau bằng màu riêng, nhưng với các bài xuất bản trong tạp chí khoa học bạn cần nhớ rằng những hình vẽ như vậy thường được in đen-trắng, cho nên các màu nhạt sẽ không hiện rõ.4

Mỗi bộ số liệu có thể đi theo một chú giải (xem tiếp để biết cách bật chú giải). Ở đây, chuỗi kí tự dùng cho tên chú giải có thể ấn định được. Bạn có thể trực tiếp nhập vào, với sự trợ giúp của một số lệnh định dạng nào đó, những lệnh định dạng này là các kí tự có dấu \ đứng trước, mà quan trọng nhất bao gồm:

  • \\ in ra một dấu gạch ngược.
  • \ 0 lựa chọn phông chữ Roman, đồng thời cũng là phông chữ mặc định. Một phông chữ vẫn còn có tác dụng đến khi ta chọn phông chữ mới.
  • \1 chọn phông chữ nghiêng, dường dùng trong công thức toán.
  • \x chọn phông chữ kí hiệu, bao gồm chẳng hạn những chữ cái Hy Lạp, ví dụ \xabchqL sẽ cho ra αβχηθΛ , một số kí hiệu thường gặp.
  • \s cho ra chỉ số dưới, còn \N chuyển ngược về chữ thường. Chẳng hạn \xb\s2\N\1(x) cho ra β2(x).
  • \S cho ra chỉ số trên, hay số mũ, chẳng hạn \1A\S3x\N-5 cho ra A3x − 5.
  • Kích thước phông chữ có thể thay đổi bằng \+\-.
  • Với \o\O, ta có thể bắt đầu và kết thúc việc gạch ngang phía trên, chẳng hạn \1A\oBC\OD sẽ cho A\overline{BC}D. Việc gạch chân có thể thực hiện bằng \u\U.

Theo mặc định, các thanh sai số được hiện ra (hộp chọn bật/tắt ở góc dưới bên phải). Ít nhất, bạn nên tăng bề dày nét vẽ đối với các kí hiệu (mục Symbols) và tăng độ dày nét đối với phần đế và phần nét đứng của các thang sai số (mục các thang sai số).

Cần biết rằng, khi đang tạo ra biểu đồ mới, bạn không phải làm lại tất cả những việc điều chỉnh kiểu như vậy. Một khi đã tìm được cách làm “chuẩn” rồi, bạn có thể lưu nó lại bằng cách chọn trình đơn con Save Parameters… từ trình đơn Plot. Theo cách ngược lại, bạn có thể nạp một tập hợp các tham số bằng trình đơn con Load Parameters… từ trình đơn như trên.

Hình 20. Cửa sổ Grace: Axes của chương trình xmgrace. Trước hết, bạn phải chọn trục cần sửa đổi [A]. Một trong các thao tác bạn có thể làm là thay đổi khoảng vẽ, bằng cách nhập vào các trường Start [B] và Stop [C]. Ở đây, chỉ cho thấy mục Main [D]. Bạn có thể nhập vào tiêu đề của trục đồ thị vào trường Label string [E] và chọn khoảng chia vạch lớn và nhỏ [F,G].

Tiếp theo, bạn có thể điều chỉnh thuộc tính của các trục, bằng cách chọn trình đơn con Set appearance… từ trình đơn Plot hoặc bằng cách nháy đúp lên một trục. Cửa sổ tương ứng sẽ bật ra, xem Hình 20. Bạn phải chọn trục cần được áp dụng những thay đổi, [A]. Đối với trục x, bạn cần đặt khoảng vẽ, ở các trường Start [B] và Stop[C], mà ở đây là các giá trị 1 và 15. Bên dưới hai trường này bạn thấy được trường quan trọng, Scale, ở đó bạn có thể chọn thang tuyến tính (mặc định), thang loga hoặc nghịch đảo; đó là những thang quan trọng nhất, cùng những thang khác.

Bạn có thể thực hiện những thay đổi cốt yếu nhất ngay trong mục Main [D]. Ở đây bạn nhập vào tiêu đề trục vào trong trường Label string . Định dạng của chuỗi này cũng giống như với chú thích cho số liệu. Ở đây bạn chỉ việc nhập vào \1L, và tiêu đề sẽ hiện ra là L. Khoảng chia vạch lớn (cùng với đánh số) và khoảng chia vạch nhỏ có thể chọn được ở các trường tương ứng [F,G]. Bên dưới đó có trường Format field, ở đó bạn có thể chọn cách in ra những số ghi ở các vạch. Một số cách ghi thông dụng nhất là General (1, 5, 10, …), Exponential (1.0e+00, 5.0e+00, 1.0e+01,…), và Power, vốn rất có ích đối với các trục chia thang loga (101, 102, 103, …). Với các con số ghi tại vạch, bạn cũng có thể chọn một độ chính xác (Precision). Với trường này và những trường khác trong mục “Main”, bạn có thể dùng những giá trị sẵn có. Dù vậy, bạn cũng nên chỉnh là cỡ chữ (Char size) của tiêu đề trục (mục Axis label & bar) và của các con số ghi tại vạch chia (mục Tick labels). Trong các ấn phẩm, những kí tự có cỡ cao hơn 150% thường đều rõ ràng, dễ đọc. Lưu ý rằng trong mục Axis label & bar, có một trường Axis transform, tại đó bạn có thể nhập vào những công thức để chuyển đổi trục tương đối tuỳ ý, về điều này hãy xem thêm tài liệu hướng dẫn. Tất cả các mục đều có những trường nhỏ khác; bản thân chúng cũng hữu ích, nhưng ở đây ta chỉ dùng các giá trị tiêu chuẩn sẵn có. Lưu ý rằng đôi khi mục Special lại có ích, ở đó bạn có thể tự tay nhập vào tất cả những vạch chia lớn nhỏ.

Để kết thúc việc bố trí các trục, bạn có thể thực hiện những thay đổi tương tự cho trục y, với trường Start bằng  − 1. 8, Stop bằng  − 1. 6, Label string bằng \1E\s0\N(L) và cùng cỡ chữ như tiêu đề, và các số hiện trên trục x.Lưu ý rằng tiêu đề trục tung sẽ được in ra dựng đứng. Nếu bạn không thích điều này, hãy chọn hướng Perpendicular to axis trong trường Layout của mục Axis label & bar.

Bây giờ bạn đã có một biểu đồ đẹp. Để giới thiệu thêm một số tính năng khác của xmgrace, chúng ta sẽ tinh chỉnh chút nữa. Tiếp theo, bạn sẽ tạo ra một đồ thị bộ phận, tức là đồ thị con nằm trong biểu đồ chính. Hình thức này cũng thường gặp trong các ấn phẩm khoa học. Để làm việc đó, hãy chọn trình đơn Edit và trình đơn con Arrange graph…. Cửa sổ tương ứng sẽ xuất hiện. Ta chỉ muốn có một đồ thị ghép, nghĩa là tổng cộng 2 đồ thị. Như vậy, trong vùng Matrix thuộc cửa sổ, hãy chọn trường Cols: là 1 và trường Rows: là 2. Sau đó bạn ấn nút Accept để áp dụng các thay đổi và đóng cửa sổ lại. Bây giờ bạn có hai biểu đồ, một chứa những số liệu đã nạp, còn biểu đồ kia trống trơn. Hai biểu đồ này hiện đang được trình bày liên tiếp, một ở trên và một ở dưới.

Hình 21. Cửa sổ Grace: Graph Appearance của chương trình xmgrace. Ở phần trên, ta có thể chọn biểu đồ nào cần áp dụng thay đổi, [A]. Cửa sổ được chia thành những mục riêng biệt [B], ở đây hiện tra mục Main. Kiểu của biểu đồ (Type) có thể chọn được [C], và các tiêu đề (Title và Subtitle) cũng vậy (ở đây để trống). Phạm vi biểu diễn của đồ thị có thể chọn được trong vùng Viewport [D]. Điều này cho phép ta lập một biểu đồ là một bộ phận của biểu đồ còn lại. Bằng cách chọn Display legend [E] ta có thể bật / tắt hiển thị chú giải.

Để làm cho biểu đồ thứ hai là bộ phận của biểu đồ thứ nhất, trước hết, ta chọn trình đơn con Graph appearance… thuộc trình đơn Plot. Ở trên cùng, một danh sách các đồ sẵn có [A], sẽ hiện ra. Ở đây bạn chọn biểu đồ thứ nhất G0. Bạn chỉ cần đến mục Main [B], các mục khác được dùng để thay đổi kiểu dáng tiêu đề, khung và chú giải. Theo tôi, nên chọn độ đậm nét Width bằng 2 trong mục Frame. Ở mục Main, bạn có thể chọn kiểu (Type) của biểu đồ [C], chẳng hạn XY graph, mà ta đang dùng (mặc định), Polar graph hoặc Pie chart. Ở đây bạn chỉ phải thay đổi toạ độ của tầm nhìn, Viewport [D]. Những toạ độ này có tính chất tương đối, theo nghĩa là khung tầm nhìn tiêu chuẩn bao gồm các trục, tiêu đề trục và tựa đề là [0, 1] × [0, 1]. Đối với biểu đồ chính G0, bạn chọn Xmin và Ymin bằng 0.15; còn Xmax và Ymax bằng 0.85. Lưu ý rằng bên dưới, có một hộp chọn Display legend [E], để điều khiển việc hiện/ẩn chú thích. Nếu bạn cho hiện chú thích, thì có thể chỉnh vị trí của nó trong mục Leg. box. Bây giờ các đồ thị đã chồng lên nhau. Điều này không ảnh hưởng gì, bởi tiếp theo bạn chọn biểu đồ G1từ danh sách ở phía trên của cửa sổ. Ta muốn đặt đồ thị con ở phần còn trống trên bản vẽ, vùng góc bên phải phía trên. Vì vậy, bạn nhập vào toạ độ của khung tầm nhìn như sau: Xmin 0.38, Ymin 0.5, Xmax 0.8 và Ymax 0.8.

Hình 22. Cửa sổ evaluateExpression của chương trình xmgrace. Ở trên cùng, bạn có thể chọn các bộ số liệu nguồn và đích (Source [A] và Destination [B]) của phép chuyển đổi. Bản thân phép chuyển đổi được nhập vào [C].

Bây giờ đồ thị thứ hai đã được định vị phù hợp rồi, nhưng còn để trống. Ở đây, ta muốn hiển thị một dạng đồ thị theo thang đo khác của cùng số liệu. Do đó, ta sẽ nhập lại dữ liệu theo cách như trên, nhưng chọn Read to graph G1 trong cửa sổ Grace: Read sets. Ở Mục 6.2, bạn sẽ thấy rằng dữ liệu sẽ gần như tuân theo quy luật luỹ thừa, e0(L) = e + aLb với e ≈  − 1. 788, a ≈ 2. 54b ≈  − 2. 8. Để hiển thị điều này, ta muốn cho thấy e0(L) − e dưới dạng hàm số của Lb. Vì vậy, ta muốn chuyển đổi số liệu. Từ trình đơn Data, ta chọn trình đơn con Transformations, và tiếp theo là trình đơn con Evaluate expression. Lưu ý rằng ở đây, ta có thể thấy nhiều phép biến đổi khác, chẳng hạn biến đổi Fourier, nội suy và khớp đường cong. Hãy xem thêm trong tài liệu hướng dẫn. Với trường hợp này, cửa sổ evaluateExpression bật ra, xem Hình 22 (nếu bạn chưa đóng các cửa sổ khác trước đó, thì màn hình sẽ có khá nhiều thứ chồng chất). Một phép biến đổi luôn nhận vào các điểm số liệu từ một tập nguồn, áp dụng một công thức cho tất cả các điểm số liệu (hoặc cho một tập con các điểm) rồi lưu kết quả vào trong một tập đích. Các tập này có thể được chọn ở phần trên cùng cửa sổ, ở các trường Source và Destination của đồ thị, và riêng biệt nhau. Lưu ý rằng dữ liệu trong tập đích được ghi đè lên. Nếu bạn muốn ghi dữ liệu sau chuyển đổi vào một tập mới, trước hết bạn có thể sao chép một tập sẵn có (kích chuột phải vào trong cửa sổ Destination Set rồi chọn Duplicate). Trong trường hợp này, ta muốn thay thế dữ liệu, vì vậy bạn chọn tập nguồn và tập đích từ biểu đồ G1. Phép chuyển đổi được nhập vào bên dưới , ở đây đầu tiên bạn nhập vào y=y+1.788 để dịch chuyển dữ liệu. Sau đó bạn ấn nút Apply ở dưới cùng. Tiếp theo bạn sửa lại phép chuyển đổi thành x=x^(-2.8)rồi lại ấn nút Apply lần nữa. Lúc này khi chọn đồ thị thứ hai bằng cách nhấn chuột vào nó, rồi nhấn nút AS (auto scale) ở phía trái cửa sổ chính, bạn sẽ thấy rằng các điểm số liệu tuân theo một đường thẳng đẹp đẽ ở biểu đồ con; điều này khẳng định bản chất của số liệu.

Hình 23. Cửa sổ chính của xmgrace sau khi thực hiện tất cả những
chỉnh sửa.

Một lần nữa, bạn cần chọn các kí hiệu, kiểu đường, và tiêu đề trục cho biểu đồ con. Thường ở đây ta dùng phông chữ cỡ nhỏ. Lưu ý rằng mọi thao tác đều luôn được áp dụng cho biểu đồ hiện hành, vốn có thể được chọn, chẳng hạn bằng việc kích vào gần các góc của khung giới hạn của biểu đồ (tuy nhiên không phải lúc nào cũng được, tùy vào việc còn những cửa sổ nào được mở), hoặc bằng cách nháy đúp chuột vào biểu đồ tương ứng trong danh sách các biểu đồ trong cửa sổ Grace: Graph Appearance. Cửa sổ chính cuối cùng được hiện ra trên Hình 23. Lưu ý rằng tiêu đề trục bên trái không được thấy rõ hoàn toàn. Điều này sẽ không còn trục trặc nữa sau khi file được xuất dưới dạng encapsulated postscript; tất cả mọi thứ sẽ hiện rõ. Nhưng nếu bạn không thích như vậy, có thể chỉnh giá trị Xmin của biểu đồ G0.

Sau cùng, nếu bạn chọn trình đơn Window và trình đơn con Drawing objects, một cửa sổ sẽ bật ra; nó cho phép nhiều thành phần của biểu đồ như chữ, đường nét, hình chữ nhật, và elip (và lần này cũng có nhiều lựa chọn cho màu sắc, kiểu dáng, kích cỡ, v.v.) được thêm vào/sửa đổi và xóa đi khỏi bản vẽ. Ở đây ta sẽ không đi vào chi tiết.

Mã nguồn: file sg_e0_L.dat

Bây giờ bạn cần lưu lại bản vẽ bằng cách dùng trình đơn File và trình đơn con Save as…, chẳng hạn với tên file sg_e0_L.agr, trong đó .agr là phần đuôi tiêu biểu cho các file nguồn xmgrace. Sau này, khi bạn muốn tạo nên một biểu đồ khác, tiện lợi nhất là bắt đầu từ file được lưu này và sao chép nó vào một file mới rồi lại dùng xmgrace để chỉnh sửa file mới.

Để xuất file ra dưới dạng encapsulated postscript, phù hợp cho việc kèm trong các bài thuyết trình hoặc ấn phẩm, bạn phải chọn trình đơn File rồi trình đơn con Print setup…. Ở cửa sổ mới xuất hiện, bạn có thể chọn Device EPS. Tên file sẽ được tự động chuyển thành sg_e0_L.eps (điều này dường như không phải lúc nào cũng có tác dụng, đặc biệt nếu bạn soạn thảo nhiều file, lần lượt nhau, hãy luôn kiểm tra tên file). Sau khi ấn nút Accept, bạn có thể chọn trình đơn File và trình đơn con Print, lệnh này sẽ phát sinh ra file kết quả mong muốn.5

Bây giờ bạn đã có một cơ sở vững chắc về việc hiển thị và vẽ biểu đồ cho số liệu, vì vậy ta có thể tiếp tục học những kĩ thuật phân tích nâng cao. Bạn có thể thử nghiệm vẽ đồ thị bằng xmgrace trong bài tập (5).

Bài tập

(5) Vẽ đồ thị

Vẽ đồ thị file số liệu FTpdf.dat bằng xmgrace. File này có chứa histogram của một hàm mật độ xác suất phát sinh từ phân bố Fisher-Tippett. Định dạng file gồm: cột thứ nhất là số thứ tự ngăn, cột thứ hai là vị trí trung điểm ngăn, cột thứ 3 là giá trị của hàm mật độ xác suất value, cột thứ 4 là thang sai số. Hãy dùng định dạng “dữ liệu khối” để đọc các file này (các cột 2,3,4). Hãy tạo biểu đồ với biểu đồ con lồng ghép bên trong. Biểu đồ chính cần cho thấy histogram của hàm mật độ xác suất kèm theo các thang sai số với trục y được giãn theo thang loga; biểu đồ con cần biểu thị số liệu với thang tuyến tính. Biểu diễn đồ thị với một dòng chữ tiêu đề đặt trong biểu đồ. Hãy chọn cỡ cho tiêu đề này, bề dày nét vẽ và các kiểu vẽ khác một cách thích hợp. Lưu kết quả dưới dạng file .agr rồi xuất nó sang file postscript (eps).

Mã nguồn: file FTplot.agr

Kết quả phải tương tự như hình vẽ:

Tài liệu được trích dẫn

Texinfo, xem http://www.gnu.org. Một số công cụ trong UNIX/Linux có file texinfo kèm theo. Để đọc được nó, bạn hãy chạy trình biên tập “emacs” rồi gõ

Xmgrace (X Motif GRaphing, Advanced Computation and Exploration of Data), xem http://plasma-gate.weizmann.ac.il/Grace/


  1. Đây là mức năng lượng số không của một thủy tinh spin  ± J, một hệ thống điển hình trong lĩnh vực vật lý thống kê. Những hệ thủy tinh spin này mô phỏng động thái từ của các hợp kim như sắt-vàng.
  2. Hàm sai số là erf(x)=(2/\sqrt{\pi})\int_0^x dx'\exp(-x'^2).
  3. Kí tự được gạch chân cũng xuất hiện trong tên của trình đơn, và kí tự này cần được nhấn khi giữ phím Alt, nếu bạn muốn mở trình đơn bằng cách gõ phím.
  4. Là một người bình duyệt, khi đọc các bài báo nộp cho tạp chí khoa học, tôi đã gặp nhiều trường hợp mà mình không thể phân biệt nổi số liệu vì chúng được in ra bằng màu sắc mờ nhạt, hoặc với đường nét quá mảnh, hoặc với kí hiệu quá nhỏ ….
  5. Bằng cách dùng công cụ epstopdf bạn cũng có thể chuyển file postcript thành file pdf. Với những công cụ khác như convert hoặc gimp, bạn có thể chuyển thành nhiều kiểu file khác.

5 phản hồi

Filed under Ngẫu nhiên và mô phỏng

5 responses to “4. Vẽ đồ thị cho số liệu

  1. Pingback: Ngẫu nhiên và xác suất trong mô phỏng máy tính | Blog của Chiến

  2. Nguyen

    Cám ơn bài viết của anh. Tôi rất quan tâm đến chương trình này. Xin hỏi làm thế nào download XMGR cho Window 7? Khả năng tích hợp với TexMaker tương tự với emacs chứ ạ?
    Cám ơn anh! Mong sớm nhận được hồi âm!

    • xmgrace là chương trình trên hệ Unix và tương đương, với giao diện X Windows System và nói chung là khó hoạt động trong Windows. Bạn có thể dùng một gói tương đương như QtGrace. Mình không rõ khả năng tích hợp của xmgrace với Emacs lẫn TeXmaker như thế nào. Chỉ biết rằng phần mềm đồ họa này cho xuất ra file EPS và có thể dễ dàng chèn hình trong văn bản (La)TeX của chương trình TeXmaker.

  3. Pingback: xmgrace | Không gian số: natuanopm

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s