line source
% 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