Mercurial > hg > ltpda
diff m-toolbox/test/test_iplot.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/test/test_iplot.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,390 @@ +% TEST_IPLOT test some aspects of iplot. +% +% M Hewitson +% +% $Id: test_iplot.m,v 1.11 2009/08/02 10:42:50 hewitson Exp $ +% +function test_iplot + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TSDATA OBJECTS + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %% Make test AOS + + p = plist('waveform', 'noise', 'fs', 10, 'nsecs', 10); + tsao1 = ao(p); + p = plist('waveform', 'sine wave', 'fs', 10, 'nsecs', 10, 'f', 1, 'phi', 0); + tsao2 = ao(p); + + tsvec = [tsao1 tsao2]; + tsmat = [tsao1 tsao2; tsao1 tsao2]; + + %% Default plot + iplot(tsao1, tsao2) + iplot(tsvec) + iplot(tsmat) + + %% Change X units + + p = plist('waveform', 'noise', 'fs', 1, 'nsecs', 100000); + a1 = ao(p); + + pl = plist('Xunits', 'h'); + iplot(a1, pl) + + pl = plist('Xunits', 'D'); + iplot(a1, pl) + + %% Try with datetick + + p = plist('waveform', 'noise', 'fs', 0.01, 'nsecs', 6*3600); + a1 = ao(p); + a1.data.setT0('1980-01-01 12:00:00') + + pl = plist('Xunits', 'dd HH:MM:SS'); + iplot(a1, pl) + + + %% Change colors and line styles + + pl = plist('Linecolors', {'g', 'k'}, 'LineStyles', {'', '--'}, 'LineWidths', {1, 4}); + iplot(tsao1, tsao2, pl); + + %% Change arrangement to single plots + + pl = plist('Arrangement', 'single'); + iplot(tsao1, tsao2, pl); + + %% Change arrangement to subplots + + % Also override the second legend text and the first line style + pl = plist('Arrangement', 'subplots', 'LineStyles', {'--'}, 'Legends', {'', 'My Sine Wave'}); + iplot(tsao1, tsao2, pl); + + %% Changel ylabel + + % Overide the Y-labels + pl = plist('Arrangement', 'subplots', 'YLabels', {'signal 1', 'signal 2'}, 'Legends', {'', 'My Sine Wave'}); + iplot(tsao1, tsao2, pl); + + %% Changel xlabel + + % Overide the X-labels + pl = plist('Arrangement', 'subplots', 'XLabels', {'', 'Time-stamps'}, 'Legends', {'', 'My Sine Wave'}); + iplot(tsao1, tsao2, pl); + + %% No legends + + pl = plist('Arrangement', 'subplots', 'Legends', 'off'); + iplot(tsao1, tsao2, pl); + + %% Change legends + + pl = plist('Arrangement', 'subplots', 'Legends', {'ts1', 'ts2'}); + iplot(tsao1, tsao2, pl); + + %% Check math functions + + pl = plist('Arrangement', 'subplots', 'YMaths', 'y.^2', 'XMaths', {'', 'log(x)'}); + iplot(tsao1, tsao2, pl); + + %% Change Y limits + pl = plist('Arrangement', 'subplots', 'YRanges', {[-5 10], [-2 2]}); + iplot(tsao1, tsao2, pl); + + %% Change X limits + pl = plist('Arrangement', 'subplots', 'XRanges', {[1 3], [2 5]}); + iplot(tsao1, tsao2, pl); + + %% Change Y Scales + pl = plist('Arrangement', 'subplots', 'YScales', {'log', 'log'}, 'YMaths', {'all', 'abs(y)'}); + iplot(tsao1, tsao2, pl); + + %% Use markers + + pl = plist('Markers', {'s', 'x'}); + iplot(tsao1, tsao2, pl); + + close all + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % FSDATA OBJECTS + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %% Make test AOs + + fsd1 = resp(miir(plist('type','lowpass','fs', 100)), plist('f', logspace(-4, log10(50), 1000))); + fsd1 = fsd1.setYunits('m V^-1'); + fsd2 = psd(tsao1+tsao2); + fsd3 = fsd2*10; + fsd4 = resp(miir(plist('type', 'highpass'))); + fsd4 = fsd4.setYunits('m V^-1'); + + %% Default plot + + iplot(fsd1, fsd2, fsd3, fsd4) + + %% Subplots + + pl = plist('Arrangement', 'subplots'); + iplot(fsd1, fsd2, fsd3, fsd4, pl) + + %% Single plots + + pl = plist('Arrangement', 'single'); + iplot(fsd1, fsd2, fsd3, fsd4, pl) + + %% Use math function on y-data + + pl = plist('Ymaths', {'abs(y)'}); + iplot(fsd1, pl); + + pl = plist('Ymaths', 'abs(y)'); + iplot(fsd1, fsd2, pl); + + + %% Change colors and line styles + + pl = plist('Colors', {'g', 'k', 'm'}, 'LineStyles', {'--'}, 'LineWidths', {1, 4}); + iplot(fsd1, fsd2, pl); + + %% Use markers + pl = plist('Colors', {'g', 'k', 'm'}, 'Markers', {'', 's'}); + iplot(fsd1, fsd2, pl); + + %% Change arrangement to subplots + + % Also override the second legend text and the first line style + pl = plist('Arrangement', 'subplots', 'LineStyles', {'--'}, 'Legends', {'', 'My Sine Wave'}); + iplot(fsd1, fsd2, pl); + + %% Changel ylabel + + % Overide the Y-labels + pl = plist('Arrangement', 'subplots', 'YLabels', {'signal 1 mag', '', 'signal 2'}, 'Legends', {'', 'My Sine Wave'}); + iplot(fsd1, fsd2, pl); + + %% Changel xlabel + + % Overide the X-labels + pl = plist('Arrangement', 'subplots', 'XLabels', {'', 'Freq'}, 'Legends', {'', 'My Sine Wave'}); + iplot(fsd1, fsd2, pl); + + %% Change legends + + pl = plist('Arrangement', 'subplots', 'Legends', {'fsd1', 'fsd2'}); + iplot(fsd1, fsd2, pl); + + %% No legends + + pl = plist('Arrangement', 'subplots', 'Legends', 'off'); + iplot(fsd1, fsd2, pl); + + %% Set Y scales + + pl = plist('Arrangement', 'subplots', 'YScales', {'', 'log', 'lin'}); + iplot(fsd1, fsd2, pl); + + %% Set X scales + + pl = plist('Arrangement', 'subplots', 'XScales', {'', 'lin', 'lin'}); + iplot(fsd1, fsd2, pl); + + %% Set Y ranges + + pl = plist('Arrangement', 'subplots', 'YRanges', {[0.1 10], [], [1e-3 100]}); + iplot(fsd1, fsd2, pl); + + + %% Set X ranges + pl = plist('Arrangement', 'subplots', 'YRanges', [0.001, 10], 'XRanges', {[0.1 10], [0 10], [0.1 10]}); + iplot(fsd1, fsd2, pl); + + + close all + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % XYDATA OBJECTS + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %% Make test AOs + + xy1 = ao(xydata(1:100, cos([1:100]/10))); + xy1 = xy1.setXunits('arb'); + xy1 = xy1.setYunits('arb'); + xy2 = ao(xydata(1:100, sin([1:100]/3))); + xy2 = xy2.setXunits('arb'); + xy2 = xy2.setYunits('arb'); + + + %% Default plot + iplot(xy1, xy2) + + %% Use Math function on y-data + + pl = plist('Ymaths', {'abs(y)', 'y.^2'}, 'Xmaths', 'log(x)'); + iplot(xy1, xy2, pl); + + + %% Change colors and line styles + + pl = plist('Colors', {'g', 'k', 'm'}, 'LineStyles', {'--'}, 'LineWidths', {1, 4}); + iplot(xy1, xy2, pl); + + %% Change arrangement to single plots + + pl = plist('Arrangement', 'single'); + iplot(xy1, xy2, pl); + + %% Change arrangement to subplots + + % Also override the second legend text and the first line style + pl = plist('Arrangement', 'subplots', 'LineStyles', {'--'}, 'Legends', {'', 'My Sine Wave'}); + iplot(xy1, xy2, pl); + + %% Changel ylabel + + % Overide the Y-labels + pl = plist('Arrangement', 'subplots', 'YLabels', {'signal 1', 'signal 2'}, 'Legends', {'', 'My Sine Wave'}); + iplot(xy1, xy2, pl); + + %% Changel xlabel + + % Overide the X-labels + pl = plist('Arrangement', 'subplots', 'XLabels', {'', 'Time-stamps'}, 'Legends', {'', 'My Sine Wave'}); + iplot(xy1, xy2, pl); + + %% No legends + + pl = plist('Arrangement', 'subplots', 'Legends', 'off'); + iplot(xy1, xy2, pl); + + + close all + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % CDATA OBJECTS + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + %% Make test AOS + + c1 = ao(randn(1,10)); + c2 = ao(1:10); + + + %% Default plot + iplot(c1, c2) + + %% Change colors and line styles + + pl = plist('Colors', {'g', 'k', 'm'}, 'LineStyles', {'--'}, 'LineWidths', {1, 4}); + iplot(c1, c2, pl); + + %% Change arrangement to single plots + + pl = plist('Arrangement', 'single'); + iplot(c1, c2, pl); + + %% Change arrangement to subplots + + % Also override the second legend text and the first line style + pl = plist('Arrangement', 'subplots', 'LineStyles', {'--'}, 'Legends', {'', 'My Sine Wave'}, 'Markers', {'x', 's'}); + iplot(c1, c2, pl); + + %% Changel ylabel + + % Overide the Y-labels + pl = plist('Arrangement', 'subplots', 'YLabels', {'signal 1', 'signal 2'}, 'Legends', {'', 'My Sine Wave'}); + iplot(c1, c2, pl); + + %% Changel xlabel + + % Overide the X-labels + pl = plist('Arrangement', 'subplots', 'XLabels', {'', 'Time-stamps'}, 'Legends', {'', 'My Sine Wave'}); + iplot(c1, c2, pl); + + %% No legends + + pl = plist('Arrangement', 'subplots', 'Legends', 'off'); + iplot(c1, c2, pl); + + %% Change legends + + pl = plist('Arrangement', 'subplots', 'Legends', {'c1', 'c2'}); + iplot(c1, c2, pl); + + %% Y math + + pl = plist('Arrangement', 'subplots', 'YMaths', {'y.^2', 'abs(y)'}); + iplot(c1, c2, pl); + + %% X math + + pl = plist('Arrangement', 'subplots', 'XMaths', {'x+2', 'x/2'}); + iplot(c1, c2, pl); + + %% X Scale + pl = plist('Arrangement', 'subplots', 'XScales', {'log', 'log'}); + iplot(c1, c2, pl); + + %% Y Scale + pl = plist('Arrangement', 'subplots', 'YMaths', {'all', 'abs(y)'}, 'YScales', {'log', 'log'}); + iplot(c1, c2, pl); + + %% Y range + pl = plist('Arrangement', 'subplots', 'YRanges', {[-5 5], [-1 12]}); + iplot(c1, c2, pl); + + %% X range + pl = plist('Arrangement', 'subplots', 'XRanges', {[2 4], [1 6]}); + iplot(c1, c2, pl); + + close all + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % XYZ DATA OBJECTS + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %% Test data + nsecs = 100; + fs = 100; + p = plist('waveform', 'noise', 'fs', fs, 'nsecs', nsecs); + n = ao(p); + p = plist('waveform', 'chirp', 'fs', fs, 'nsecs', nsecs, 'f0', 0, 'f1', 50, 't1', nsecs); + s = ao(p); + + a = s+n; + + % Make spectrogram + + sxx = spectrogram(a, plist('Nfft', 4*fs)); + rxx = spectrogram(s, plist('Nfft', 4*fs)); + + %% Plot + + pl = plist('Arrangement', 'subplots', 'YMaths', {'log10(y)', 'log10(y)'}, ... + 'Zmaths', {'20*log10(z)', '20*log10(z)'}, ... + 'Xmaths', {'log10(x)'}); + + iplot(sxx, rxx, pl) + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % MIXED OBJECTS + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %% XY and TSDATA + iplot(xy1, tsao1, xy2, tsao2, c1) + close all + +end \ No newline at end of file