ECG-Kit 1.0
(2,377 bytes)
%% (Internal) Plot a line with text in a graphic
%
% text_line_handles = text_line( x, y, text_str, text_line_prop_vals, axes_hdl )
%
% Arguments:
%
% + x, y: coordinates for the arrow.
%
% + text_str: string to display.
%
% + text_line_prop_vals: properties names/values to set. A cell with
% prop. names in col 1 and prop vals in col 2.
%
% + axes_hdl: the axe handle to plot the arrow.
%
% Output:
%
% + text_line_handles: handles of the plotted arrow.
%
% See also plot_ecg_mosaic
%
% Author: Mariano Llamedo Soria (llamedom at {electron.frba.utn.edu.ar; unizar.es}
% Version: 0.1 beta
% Birthdate: 21/7/2010
% Last update: 20/02/2013
% Copyright 2008-2015
%
function text_line_handles = text_line( x, y, text_str, text_line_prop_vals, axes_hdl )
%% interface
k_length = 0.1;
if(nargin < 3 || isempty(text_str) || ~ischar(text_str) )
text_str = '';
end
if(nargin < 4 || ~iscell(text_line_prop_vals) )
text_line_prop_vals = [];
end
if(nargin < 5 || isempty(axes_hdl) )
axes_hdl = gca;
end
bStr = strcmpi('String', text_line_prop_vals(:,1));
if( isempty(text_line_prop_vals{bStr,2}) )
text_line_handles = [];
else
text_line_handles = text_arrow(x(1), y(1), '', text_line_prop_vals, axes_hdl);
end
hold(axes_hdl, 'on');
aux_hdl = plot( x, y );
hold(axes_hdl, 'off');
[~, aux_idx] = setdiff(text_line_prop_vals(:,1), {'String' 'TextColor'});
set( aux_hdl, text_line_prop_vals(aux_idx,1)', text_line_prop_vals(aux_idx,2)' );
this_colour = get(aux_hdl, 'Color');
set( aux_hdl, {'Marker' 'MarkerSize' 'MarkerFaceColor' 'MarkerEdgeColor' }, {'diamond' 2 this_colour this_colour} );
% los arrows de matlab son muy lentos
% aux_hdl = arrow( [x(1) y(1)], [x(2) y(2)], 2, 0.5, [0 0 0], axes_hdl );
%
% bStr = strcmpi('String', text_line_prop_vals(:,1)) | strcmpi('TextColor', text_line_prop_vals(:,1));
%
% set( aux_hdl, text_line_prop_vals(~bStr,1)', text_line_prop_vals(~bStr,2)' );
%
% set( aux_hdl, {'Head1Style' 'Head2Style' }, {'diamond' 'diamond'} );
% set( aux_hdl, {'Head1Width' 'Head2Width' 'Head1Length' 'Head2Length' }, {2 2 2 2} );
text_line_handles = [ text_line_handles aux_hdl ];