function insect_scatter3d ( )

%*****************************************************************************80
%
%% INSECT_SCATTER3D makes a 3D scatter plot.
%
%  Discussion:
%
%    For each of three insect species, there is a data file.
%
%    Each data file reports three measurements on 10 individuals
%    in the species, the first tarsus, second tarsus, and maximum
%    width of aedeagus.
%
%  Licensing:
%
%    This code is distributed under the GNU LGPL license.
%
%  Modified:
%
%    18 July 2018
%
%  Author:
%
%    John Burkardt
%
  fprintf ( 1, '\n' );
  fprintf ( 1, 'INSECT_SCATTER3D\n' );
  fprintf ( 1, '  Octave version\n' );
  fprintf ( 1, '  Create a 3D scatter plot of measurements of three\n' );
  fprintf ( 1, '  physical characteristcis of 3 species of insects.\n' );
%
%  Load the data.
%
  a = load ( 'insect_a_data.txt' );
  b = load ( 'insect_b_data.txt' );
  c = load ( 'insect_c_data.txt' );

  clf
  hold on
    scatter3 ( a(:,1), a(:,2), a(:,3), 'r', 'filled' );
    scatter3 ( b(:,1), b(:,2), b(:,3), 'g', 'filled' );
    scatter3 ( c(:,1), c(:,2), c(:,3), 'b', 'filled' );
  hold off

  grid ( 'on' )
  title ( 'Sample Measurements of 3 Insect Species' )
  xlabel ( '<-- First Tarsus-->' )
  ylabel ( '<-- Second Tarsus -->' )
  zlabel ( '<-- Max Aedeagus -->' )

  view ( 3 )

  pause ( 5 )
%
%  Save a copy of the plot as a PNG file.
%
  filename = 'insect_scatter3d.png';
  print ( '-dpng', filename );
  fprintf ( 1, '\n' );
  fprintf ( 1, '  Graphics saved in "%s"\n', filename );
%
%  Terminate.
%
  fprintf ( 1, '\n' );
  fprintf ( 1, 'INSECT_SCATTER3D:\n' );
  fprintf ( 1, '  Normal end of execution.\n' );

  return
end
