3.5 | 2 ratings Rate this file 87 Downloads (last 30 days) File Size: 14.5 KB File ID: #40224
image thumbnail




11 Feb 2013 (Updated )

Generates a quiver plot colored according to vector magnitude and/or user specified axis boundaries.

| Watch this File

File Information

quiverwcolorbar adds functionality to the original quiver function by assigning color to the arrows according to the vector magnitude. The corresponding colorbar spans the minimum and maximum values of the dataset or can be specified by the user. Any changes to the colorbar boundaries change the vector colors accordingly.
      quiverwcolorbar(x,y,u,v,scale,'bounds',[colormin colormax])

      x, y: Vector locations
      u, v: Vector directions (East-West, North-South)
      scale: Scalar value to set vector lengths
      'bounds': Optional setting to specify colorbar axis minimum and maximum values

      x = rand(1,50).*100;
      y = rand(1,50).*100;
      u = rand(1,50) .* 10;
      v = rand(1,50) .* 10;
      scale = 0;
      figure; quiverwcolorbar(x',y',u',v',scale); %compare to:
      figure; quiverwcolorbar(x',y',u',v',scale,'bounds',[0 10]);


Quiverc, Quiverc2wcmap, Vfield Color, and Quiver2.M V1.2 (Nov 2009) inspired this file.

This file inspired Quivermc.

MATLAB release MATLAB 7.8 (R2009a)
MATLAB Search Path
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (8)
06 Mar 2015 Melissa Day

Ah, the scale factor doesn't work because I added variables. If you put in at line ~99 (also I will update the file):

if(nin == 3) % quiver(u,v,s)
scale = varargin{nin};
elseif(nin >= 5) % quiver(x,y,u,v,s) or quiver(x,y,u,v,s,'bounds',[start end])
scale = varargin{5};

you will be able to use a fractional scale like 0.5 or something and make your arrows smaller. You can also play around with alpha, beta, autoscale, and plotarrows to change the appearance of the arrows.

Comment only
06 Mar 2015 Oh yejin

Thank you for good function.
But I want to change the quiver size. It`s too large for me to ploting. What should I do?

31 Oct 2014 Simon

Simon (view profile)

In Matlab 2014a this gives me an error:

Error using set
Bad property value found.
Object Name: axes
Property Name: 'CLim'
Values must be increasing and non-NaN.

Error in caxis (line 79)

Error in quiverwcolorbar (line 185)
caxis([colormin colormax])

It seems to be fixed by adding transposes to line 114, so that line 114 should read:

xyuvvrNN = [x(nonNaNind)',y(nonNaNind)',u(nonNaNind)',v(nonNaNind)',vr(nonNaNind)'];

Comment only
24 May 2013 sundar

sundar (view profile)

Thanks for the quick reply.
I just figured out that when I use imagesc instead of imshow it works fine.

hold on

This works good.

24 May 2013 Melissa Day

sundar, I'm not familiar with imshow, but the velocity coloring and the colorbar are not linked in this program quite like they are normally, which might be an issue. When I use imshow(quiverwcolormap(x',y',u',v',scale,'bounds',[0 10]),jet) with the data from the example I posted, it looks all right though, but that might not be your problem. Normally when I call this program to plot over another image I just use "hold on". Sorry I can't be of more help - I hope you figure it out!

Comment only
24 May 2013 sundar

sundar (view profile)

When I use quiverwcolorbar, I get a very nice colored velocity field from blue to red, using the jet colormap. My velocity range is between 0 and 13 um/min.
When I use imshow to display my image and then call this function, the colorbar is totally weird and it is only blue in color (ranging from 0 to 13 um/min) even though the velocities are colored blue to red.

I do not know what I should change?

Any help will be awesome.

Comment only
24 Apr 2013 Melissa Day

FYI to everyone, I had a similar problem with http://www.mathworks.com/matlabcentral/fileexchange/7180-quiverc2wcmap and had to add "view([0,-90]);" after I called the plot for it to look right (after doing a clear all), so if anyone is having trouble with this maybe playing with the view will help.

Comment only
17 Apr 2013 Travis Miles

For some reason this is flipping my y-axis and image from increasing to decreasing...

Comment only
12 Feb 2013
12 Feb 2013

Fixed some typos, added bit in case min(xyuvvrNNs) < colormin

12 Feb 2013

changed spacing in description

14 Feb 2013

Fixed some typos, added bit in case min(xyuvvrNNs) < colormin

24 May 2013

Minor typo fixes

06 Mar 2015

Fixed so scale can be used to change arrow size

Contact us