Arrow lengths don't represent the ratio of velocities for 2 Quiver Plots

조회 수: 1 (최근 30일)
I have plotted two sets of velocity data for the same position data in a single quiver plot.
figure
quiver(xposition,yposition,uvelocity,vvelocity,'b')
hold on
quiver(xposition,yposition,v2dprime(1,:)',v2dprime(2,:)','r')
axis equal
But, visually from Figure 1, the length of arrows of the second dataset (red) is huge in comparison to the first dataset (blue). This is happening despite the actual velocities being comparable or in some cases, uvelocity(vvelocity) being greater than v2dprime. I would like the length of vectors originating at every point to represent the actual ratio of velocities. If I turn the scaling off, the first dataset (blue) is weirdly magnified as in Figure 2.

채택된 답변

VBBV
VBBV 2023년 5월 27일
D = load('Data.mat');
figure
quiver(D.xposition,D.yposition,D.uvelocity,D.vvelocity,'b','AutoScaleFactor',2.5)
hold on
quiver(D.xposition,D.yposition,D.v2dprime(1,:)',D.v2dprime(3,:)','r')
% axis equal
  댓글 수: 2
VBBV
VBBV 2023년 5월 27일
If you use AutoScaleFactor, property you can set the arrow lengths according to red color graph,
PASUNURU SAI VINEETH
PASUNURU SAI VINEETH 2023년 5월 28일
Thanks for the response. An AutoScaleFactor of 30 for blue graph is keeping things in proportion. Is it always trial and error though? I was hoping there would be a way the program can take care of it.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

鑫源
鑫源 2023년 5월 27일
plot the histogram, you 'll find the blue one in fact exists a few exaggeratedly large vecs. Though average length of the blue one and the red are comparalbe. I think that's the problem
C={[uvelocity, vvelocity],[v2dprime(1,:)',v2dprime(2,:)'],}
D=cellfun(@(x)vecnorm(x,2,2),C,UniformOutput=false);
>> histogram(D{1})
>> histogram(D{2})

카테고리

Help CenterFile Exchange에서 Vector Fields에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by