/ / Dynamic Plotting w Gnuplot (drawnow w MATLAB) - matlab, plot, common-lisp, gnuplot, oktawa

Dynamiczne drukowanie w Gnuplot (drawnow w MATLAB) - matlab, plot, common-lisp, gnuplot, oktawa

Czy możliwe jest tworzenie dynamicznych wykresów w Gnuplot? Do moich celów potrzebuję tego, że jako że dane są generowane przez jakąś pętlę, użyję gnuplot, aby umieścić znacznik na osi x-y zachowując starsze. W jakiś sposób będę mógł obserwować ewolucję danych, zamiast tylko widzieć ostateczny wynik partii.

To, czego specjalnie chcę, jest równoważne poleceniu "drawnow" w MATLAB.

Chociaż nie jestem całkowicie spokrewniony, teraz jestemużywanie zwykłego seplenienia do generowania danych w pętli i cgn w celu wykreślenia w seplenie za pomocą gnuplot. (Potrafię wykreślić dane w formie wsadowej w zwykłym seplenie za pomocą cgn, który wykorzystuje gnuplot)

Z góry bardzo dziękuję za uwagę.

edytuj: W tym celu napisałem kod w powszechnym seplenie. Możesz to sprawdzić tutaj:
Wykreślanie danych sekwencyjnie z emacs przy użyciu Common Lisp i Gnuplot
Wątek ten jest jednak bardziej ogólny i wymaga dynamicznego kreślenia w gnuplot. Wszelkie sugestie są mile widziane.

Odpowiedzi:

1 dla odpowiedzi № 1

Niestety, nie jest łatwo wyrysować pojedyncze punkty w gnuplot, ale na szczęście istnieje kilka prostych hacków omówionych tutaj: Wykreślanie pojedynczego punktu za pomocą Gnuplot. The Echo omawiana metoda będzie działać tylko w środowisku Unix.

Używanie tego z replot zamiast plot w twoim programie powinien dać ci wykres punktów ewoluujących z czasem, który zachowuje poprzednie punkty.

Innym sposobem, którego używam w pythonie, jestże umieściłem punkty danych w pliku. W każdej iteracji dodajemy punkty do pliku, a następnie rysuję ponownie za pomocą gnuplot. Jest trochę brzydka, ale w większości przypadków spełnia swoją funkcję.


0 dla odpowiedzi nr 2

Nie jestem pewien, czy całkowicie rozumiem, o co prosisz, ale jeśli chcesz dodać wykres do ostatnio napisanego ciągu (i używasz gnuplot 4.4), wykonaj następujące czynności:

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

W każdym razie, nie jestem pewien, czy o to pytasz, ponieważ nie używam Matlaba, ale mam taką nadzieję.