2012-02-17 45 views
8

Có thể tạo các ô động trong Gnuplot không? Những gì tôi cần cho mục đích của tôi là, khi dữ liệu được tạo ra thông qua một số vòng lặp, tôi sẽ sử dụng gnuplot để đặt một số điểm đánh dấu trên trục x-y để bảo vệ những cái cũ hơn. Vì vậy, bằng cách nào đó tôi sẽ có thể quan sát sự tiến hóa của dữ liệu thay vì chỉ nhìn thấy kết quả lô cuối cùng.Bản đồ động trong Gnuplot (được vẽ trong MATLAB)

Điều tôi đặc biệt muốn tương đương với lệnh "rút gọn" trong MATLAB.

Mặc dù không hoàn toàn liên quan, ngay bây giờ tôi đang sử dụng lisp chung để tạo dữ liệu trong một vòng lặp và cgn để vẽ trong lisp bằng cách sử dụng gnuplot. (Tôi có thể vẽ sơ đồ dữ liệu ở dạng hàng loạt trong lisp thông dụng bằng cgn sử dụng gnuplot)

Cảm ơn bạn rất nhiều trước sự quan tâm của bạn.

chỉnh sửa: Tôi có một mã được viết bằng ngôn ngữ chung cho mục đích này. Bạn có thể kiểm tra tại đây:
Plotting data sequentially from emacs using Common Lisp and Gnuplot
Tuy nhiên, luồng này tổng quát hơn và yêu cầu âm mưu động trong gnuplot. Mọi đề xuất đều được chào đón.

+0

Tôi đã luôn sử dụng tệp-IO để giao tiếp từ lisp đến MATLAB. Tôi chưa bao giờ có được chức năng trực quan tuyệt vời từ lisp trực tiếp. Tôi sẽ được quan tâm để xem nếu có ai đến với một số giải pháp tốt hơn ở đây –

+0

@claytonstanley, bạn có thể vui lòng kiểm tra liên kết ở trên. Tôi cũng muốn xem triển khai MATLAB của bạn kể từ ngày này tôi đã luôn luôn sử dụng MATLAB cho mục đích của mình và nếu tôi bằng cách nào đó có thể đưa ra lệnh cho MATLAB từ lisp, tôi thực sự muốn thấy nó. Bạn cũng có thể gửi email cho tôi nếu bạn muốn. Cảm ơn bạn rất nhiều trước. – YBE

+0

Liên kết của bạn ở trên trông giống như một khởi đầu tuyệt vời. Nhiều năng động hơn bất kỳ loại tập tin-IO có thể có thể giúp bạn có được. Giải pháp tệp-IO mà tôi đã sử dụng là chỉ tạo dữ liệu cho lô trong một tệp txt và sau đó kích hoạt tệp m để vẽ dữ liệu trong tệp đó. Các tuyến đường bạn đang đi với cgn có vẻ tốt hơn nhiều; và giữ mọi thứ trong lisp thông thường; Tôi không có bất kỳ kinh nghiệm với cgn, vì vậy tôi không thể giúp đỡ ở đó. Nếu bạn thực sự muốn sử dụng Matlab để làm âm mưu, một số loại giao diện năng động hơn giữa lisp và Matlab là prob đúng cách để đi. Ổ cắm? Tôi biết lisp hỗ trợ họ tốt; không chắc chắn về MLAB. –

Trả lời

0

Tôi không chắc chắn rằng tôi hoàn toàn hiểu những gì bạn đang yêu cầu, nhưng nếu bạn đang tìm cách thêm một âm mưu vào chuỗi cuối cùng bạn vẽ (và bạn đang sử dụng gnuplot 4.4), thì mẹo sau:

gnuplot> plot sin(x),cos(x) #plot sin and cos in an xterm window 
gnuplot> eval GPVAL_LAST_PLOT."cos(x+pi/2.5)" #add cos(x+pi/2.5) to the current plot 

Dù sao, tôi không chắc đó có phải là những gì bạn đang yêu cầu vì tôi không sử dụng Matlab hay không, nhưng tôi hy vọng là vậy.

1

Thật không may là không dễ dàng để vẽ các điểm đơn trong gnuplot, nhưng may mắn là có một số hack đơn giản như được thảo luận tại đây: Plotting a Single Point with Gnuplot. Phương pháp echo được thảo luận ở đó sẽ chỉ hoạt động trong môi trường Unix.

Sử dụng tính năng này với replot thay vì plot trong chương trình của bạn hy vọng sẽ cung cấp cho bạn biểu đồ điểm phát triển theo thời gian duy trì các điểm trước đó.

Một cách khác, đó là những gì tôi sử dụng với python, là tôi đặt các điểm dữ liệu trong một tệp. Trong mỗi lần lặp lại, tôi thêm điểm vào tệp rồi vẽ lại với gnuplot. Đó là một chút xấu xí, nhưng nó thực hiện công việc trong hầu hết các trường hợp.

+0

đó là những gì tôi đang làm ngay bây giờ. Sử dụng chung lisp Tôi đang thêm một điểm duy nhất vào một tập tin văn bản, sau đó vẽ nó. Vấn đề là rõ ràng là tập tin văn bản được lớn hơn, thời gian cho âm mưu tại mỗi bước thời gian được chậm hơn. – YBE

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