MATLAB Answers

# I want to use a 4th dimension as color in quiver 3d plot.

2 views (last 30 days)
I have 3d vectors which I would like to plot in 3d space. I have a 4th parameter that specifies the characteristics of this 3d vector. Now I want to use color to specify this 4th dimension. I want to plot using quiver because i would like to see the arrow head.

#### 0 Comments

Sign in to comment.

### Accepted Answer

Bjorn Gustavsson on 17 Nov 2020
You will find at least a couple of color-capable quiver-like submissions on the file exchange. For example: quiver3_c or quiver2.
HTH

#### 4 Comments

Show 1 older comment
Padma Naveena Ganapam on 18 Nov 2020
@Bjorn Gustavsson thanks for the suggestion. it helps. But I am not sure how to manipulate the colorbar on the graph to change the scale and represent true 4th dimension values. any suggestions on that. I am using quiver3c
Bjorn Gustavsson on 18 Nov 2020
Well, the function is only 15 lines long, so shouldn't take too long to figure out. I'd change it to return q instead of n (which is a useless dummy-variable set to one.). That would give you the handles to the quivers as a variable. Then this example modified from the help of quiver3 seems to work OK:
[x,y] = meshgrid(-2:.2:2,-1:.15:1);
z = x .* exp(-x.^2 - y.^2);
[u,v,w] = surfnorm(x,y,z);
quiver3_c(x,y,z,u,v,w,x); hold on, surf(x,y,z), hold off
colorbar
caxis
% Returns:
% -0.4208 0.4208
% Let's modify it to the range of x:
caxis([min(x(:)),max(x(:))])
HTH
Padma Naveena Ganapam on 18 Nov 2020
thank you
that works

Sign in to comment.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!