From b9b791f315a9f879b9bf1dd5bbd2e55471420334 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Fri, 23 Feb 2018 16:19:40 +0100 Subject: [PATCH] [plotting] movie example --- plotting/code/movie_example.m | 54 ++++++++++++++++++ plotting/lecture/images/lissajous.png | Bin 0 -> 8965 bytes .../vector_strength.tex | 3 +- 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 plotting/code/movie_example.m create mode 100644 plotting/lecture/images/lissajous.png diff --git a/plotting/code/movie_example.m b/plotting/code/movie_example.m new file mode 100644 index 0000000..835bb32 --- /dev/null +++ b/plotting/code/movie_example.m @@ -0,0 +1,54 @@ +clear all +close all +max_frames = 500; + +f_x = 1; +f_y = 1.5; +dt = 2*pi/500; + +f = figure(); +set(f, 'visible', 'off'); +set(f, 'PaperUnits', 'centimeter', 'PaperSize', [2.5, 2.5], ... + 'PaperPosition', [0, 0, 2.5, 2.5], 'Color', 'white') + +writer = VideoWriter('../lecture/images/lissajous.mp4', 'MPEG-4'); +writer.FrameRate = 25; +writer.Quality = 50; + +open(writer); +for i = 1:max_frames + x = sin(f_x * 2 * pi * dt * i); + y = sin(f_y * 2 * pi * dt * i); + scatter(x, y, 30, 'r', 'filled'); + xlim([-1.05, 1.05]) + xticks([-1., 0., 1.]) + ylim([-1.05, 1.05]) + yticks([-1., 0., 1.]) + xlabel('x') + ylabel('y') + drawnow; + frame = getframe(f); + writeVideo(writer, frame); +end +close(writer) + +x_positions = zeros(max_frames, 1); +y_positions = zeros(max_frames, 1); +for i = 1:max_frames + x_positions(i) = sin(f_x * 2 * pi * dt * i); + y_positions(i) = sin(f_y * 2 * pi * dt * i); +end + +f = figure(); +set(f, 'PaperUnits', 'centimeter', 'PaperSize', [5, 5], ... + 'PaperPosition', [0, 0, 5, 5], 'Color', 'white') + +scatter(x_positions, y_positions, 10, 'r', 'filled'); +xlim([-1.05, 1.05]) +xticks([-1., 0., 1.]) +ylim([-1.05, 1.05]) +yticks([-1., 0., 1.]) +xlabel('x') +ylabel('y') + +saveas(f, '../lecture/images/lissajous.png') \ No newline at end of file diff --git a/plotting/lecture/images/lissajous.png b/plotting/lecture/images/lissajous.png new file mode 100644 index 0000000000000000000000000000000000000000..ee30fed6e95bc07fb98b45bdff39d25de797f986 GIT binary patch literal 8965 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 literal 0 HcmV?d00001 diff --git a/projects/project_vector_strength/vector_strength.tex b/projects/project_vector_strength/vector_strength.tex index 56e8c78..9952c5a 100644 --- a/projects/project_vector_strength/vector_strength.tex +++ b/projects/project_vector_strength/vector_strength.tex @@ -32,8 +32,7 @@ locking, respectively. i.e. the fish's field The data is sampled with 20\,kHz and the spike times are given in seconds. \begin{parts} - \part Plot an average of the single EOD cylces of each fish - together with an respective PSTH. + \part Plot the average EOD waveform of each fish together with an respective PSTH. \part Implement a function that estimates the vector strength between the \textit{eod} and the spikes. \part Create a polar plot that shows the timing of the spikes