Skip to content
Snippets Groups Projects
plot_Tsg.m 2.79 KiB
Newer Older
function plot_Tsg( hTsgGUI, hAxes, PlotNum, Para, Linestyle, MyColor )
%
% Function to plot TSG parameters
% The program can plot parameter of style SSPS or SSPS_ADJUSTED
% in that last case we need to extract the name of the parameter
%
% Input
% -----
% hTsgGUI ........ Handle to the user interface
% hAxes   ........ Handle to the graphic axes
% PlotNum ........ Plot Number (used for the TAG)
% Para ........... Parametre whose difference with TSG data is plot
% Linestyle ...... 1 - plot the line with markers
%                  0 - only plot a continous line
% MyColor ........ []        - Draw Para taking into account color QC code
%                  'k''b'... - Draw Para using Color code 

% Retrieve named application data
% -------------------------------
tsg = getappdata( hTsgGUI, 'tsg_data');

if ~isempty( tsg.(Para) )
  
  axes( hAxes );
  set( hAxes, 'Box', 'on' );
  hold on

  if Linestyle
    Style = 'none';
    Mark  = '.';
  else
    Style = '-';
    Mark  = 'none';
  end

  % Extract the name of the parameter
  % ---------------------------------
  pos = regexp( Para, '_', 'ONCE');
  if isempty( pos )
    parameter = Para;
  else
    parameter = Para(1:pos-1);
  end

  if isempty(MyColor)

    % get list of keys from hashtable tsg.qc.hash, defined inside
    % tsg_initialisation.m
    % -----------------------------------------------------------
    qc_list = get(tsg.qc.hash);

    % Plot Sample/TSG differences on axe 2
    % iterate (loop) on each key store inside hastable
    % ------------------------------------------------
    for i=1:numel(qc_list)

      % get key and some values in hashtable
      % ------------------------------------
      key   = qc_list{i};
      state = get(tsg.qc.hash, key, 'state');
      code  = get(tsg.qc.hash, key, 'code');
      color = get(tsg.qc.hash, key, 'color');

      % plot only for valid context menu (set to 'on')
      % ----------------------------------------------
      if strcmp( state, 'on')

        % plot tsg salinity sample with right code/color
        % ----------------------------------------------
        ind = find(tsg.([Para '_QC']) == code );
        if ~isempty( ind )

          line( tsg.DAYD(ind), tsg.(Para)(ind), ...
            'Tag', ['TAG_PLOT' num2str(PlotNum) '_LINE_' Para '_' key],...
            'LineStyle', Style, ...
            'Marker', Mark, 'MarkerSize', 5, 'Color', color);

        end
      end
    end

  else

    line(tsg.DAYD, tsg.(Para),...
      'Tag', ['TAG_PLOT' num2str(PlotNum) '_LINE_' Para], ...
      'LineStyle', Style,'Marker', Mark, 'MarkerSize', 5,  'Color', MyColor);
  end

  hold off;

  % Write some 'Y' label
  % ------------------
  set(get(hAxes, 'Ylabel'), 'Interpreter', 'none', 'String', Para);

end