Filter löschen
Filter löschen

Quiver. Make wind scale of 1m/s inside plot

7 Ansichten (letzte 30 Tage)
Luis Jesús Olvera Lazcano
Luis Jesús Olvera Lazcano am 21 Sep. 2023
I have had a really tough time thinking of a way to show a scale of the wind vectors that Im plotting.
Im using quiversc(lon,lat,u,v) but I dont know how to put a magnitude of reference (1 m/s for example) , as in the plot below.
Thanks!

Akzeptierte Antwort

Chunru
Chunru am 21 Sep. 2023
Bearbeitet: Chunru am 21 Sep. 2023
[x, y] = meshgrid(-2:.2:2);
z = x.*exp(-x.^2-y.^2);
[dx, dy] = gradient(z, 0.2);
sc = 'off'; % scale
quiver(x,y,dx,dy, sc);
axis tight;
hold on
a = axis;
% posision of the ref arrow
xr = a(1)+0.1*(a(2)-a(1));
yr = a(4)-0.1*(a(4)-a(3));
quiver(xr, yr, 1, 0, sc) % unit lenght
  6 Kommentare
Luis Jesús Olvera Lazcano
Luis Jesús Olvera Lazcano am 22 Sep. 2023
Hi thank you very much! Thanks to your code I manage to do some arrangements, even put the reference arrow to fit more in the plot.
However I have some doubts about it. My code is this one (I use quiversc instead of quiver to control the density of the arrows, but the scaling is the same, I corroborated that):
quiversc(LON,LAT,u*2.5,v*2.5,'off','k','density',60,'LineWidth',1) % off is for scaling
colormap(brewermap(10,'PuBuGn'))
caxis([0 5])
borders('countries','k','LineWidth',1)
borders('countries','k','LineWidth',1)
axis equal
ylim([-30 36])
xlim([30 178])
yticks(-30:30:30)
yticklabels({'30°S','EQ','30°N'})
xticks(40:40:160)
xticklabels({'40°E','80°E','120°E','160°E'})
hold on
a = axis;
xr = a(1)+0.1*(a(2)-a(1));
yr = a(4)-0.1*(a(4)-a(3));
hold on
b = rectangle('Position',[xr-15 yr-6 15 12],'FaceColor','white');
hold on
quiver(xr-13,yr,1*12.5,0,'k','LineWidth',1,'MaxHeadSize',2.5)
The resulting plot is:
So my question is this: I put the manual_sc = 2.5 for the u,v values. Then, to show the reference arrow, I multiply it per 12.5. I understand that, if the whole quiver plot is adjusted with 2.5 and the reference arrow is adjusted with 12.5, then the reference arrow has a magnitude of 4 m/s? I thought about it cause its 4 times bigger than the main quiver plot vectors.
Luis Jesús Olvera Lazcano
Luis Jesús Olvera Lazcano am 23 Sep. 2023
Hey I managed to realize that my question is resolved! I saw the measure of the reference arrow and its indeed the quantity I determined. Thank you so much for your answer, you helped me a lot to improve my plots and to give them a better style
I let my code available for the future if someone has a similar problem

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Vector Fields finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by