Stretch a plot while keeping area under same

8 次查看(过去 30 天)
I have a plot with x and y axis data. How can I strech it whilst keeping area under it same? Can you please provide an example.
Thanks!

回答(1 个)

DGM
DGM 2021-8-25
If you scale the curve in the X direction by a factor of 2, then scale the curve in Y by a factor of 1/2.
X = 0:100; % linear x
Y = rand(1,101); % random y
plot(X,Y)
A1x = trapz(X,Y) % area under the curve
A1x = 46.8929
A2x = trapz(2*X,Y) % area under the curve when X is stretched by 2
A2x = 93.7858
A2xc = trapz(2*X,Y/2) % corrected
A2xc = 46.8929
Ignoring trying to intuit the calculus, it's easier to look at this in relative terms. Consider the curve occupying a rectangular box, wherein the area under the curve (Ac) occupies some fraction of the total area (At) of the box. If you scale one dimension of the box (and everything therein) by 2, the total area is doubled, but the area ratio remains constant. In other words, Ac is simply proportional to At.
If there's something other than a simple scale transformation going on (e.g. changing data extents), that may not hold true.

标签

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by