title: How to make colorbar refer to markers in 3D-plot and not the surface in Matlab
body: <p>I have a plot of the following type: </p>
  
  <p><a href="https://i.stack.imgur.com/rNjEQ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/rNjEQ.png" alt="enter image description here"></a></p>
  
  <p>I have created the black-white surface using the <code>surf</code>-function and the markers I have plotted using <code>plot3</code>-function. For each marker I have defined a colormap between Red-Yellow-Green depending on the value of the marker. As you can see from the plot the <code>colorbar</code> refers at the moment to the surface but I would like it to refer to the markers. How can I do this? </p>
  
  <p>Thank you!</p>
  
  <p>Here is MWE basically showing what I do now: </p>
  
  <pre><code>% Plot the surface with a colormap
  Z = peaks;
  Z = peaks./max(Z(:));
  Z = (Z+1)*3/2;
  surf(Z)
  colormap(flipud(gray))
  shading interp
  hold on
  
  % Create the 4-dimensional marker data
  x = (50-10).*rand(50,1) + 10;
  y = (50-10).*rand(50,1) + 10;
  z = (3-1).*rand(50,1) + 1;
  q = 5.*rand(50,1); % This dimension is used to select the color
  
  % Create the color map for the markers
  c1=[0 1 0]; %G
  c2=[1 1 0]; %Y
  c3=[1 0 0]; %R
  n1 = 20;
  n2 = 20;
  cmap=[linspace(c1(1),c2(1),n1);linspace(c1(2),c2(2),n1);linspace(c1(3),c2(3),n1)];
  cmap(:,end+1:end+n2)=[linspace(c2(1),c3(1),n2);linspace(c2(2),c3(2),n2);linspace(c2(3),c3(3),n2)];
  cmap = cmap';
  
  % Select the colors for the markers
  marker_colors = zeros(size(50, 1), 3);
  q_interval = max(q)-min(q);
  q_int = q_interval/(n1+n2);
  q_vals = zeros(n1+n2,1);
  q_vals(1) = min(q);
  for i = 2:size(q_vals,1)
      q_vals(i) = min(q) + (i-1)*q_int;
  end
  for i = 1:50
      d = abs(q_vals - q(i));
      ind = find(d == min(d));
      marker_colors(i,:) = cmap(ind,:);
      % Plot the marker
      plot3(x(i), y(i), z(i), 'o', 'color', [0 0 0], 'MarkerFaceColor', marker_colors(i,:))
  end
  
  % Lastly I plot the colorbar, which refers to the surface... :/ 
  colorbar
  </code></pre>