Translate a plot across its axes

Hi guys,
I'm writing a program which draws the hysteresis loops on a stress/strain plot. In order to do this, I need to be able to move successive plots so that they begin where the last plot ends.
As you can see in the picture, I want to translate the steep-looking curve across the figure so that its head matches with the top of the shallower curve.
Thanks in advance,
Louis Vallance

 Akzeptierte Antwort

Image Analyst
Image Analyst am 1 Dez. 2012

0 Stimmen

Try this demo:
% Make curve 1
x1 = 0:25;
y1 = x1 .^4;
% Make curve 2
x2 = 0:50;
y2 = 40000 * x2 .^ 0.3;
% Plot them
plot(x1, y1, 'r-', 'LineWidth', 2);
hold on;
grid on;
plot(x2, y2, 'g-', 'LineWidth', 2);
% Now make new, shifted curve
y3 = y1 - y1(end )+ y2(end);
x3 = x1 - x1(end) + x2(end);
% Plot the shifted curve.
plot(x3, y3, 'b-', 'LineWidth', 2);
legend('Curve 1', 'Curve 2', 'Shifted Curve 2');

Weitere Antworten (2)

dpb
dpb am 30 Nov. 2012

0 Stimmen

If values are (x,y1) and (x,y2) then
plot(x,y1,[x+x(end)-x(1)],[y2+y1(end)-y1(1)])
--
fsgeek
fsgeek am 5 Dez. 2012

0 Stimmen

Thanks for the help guys, much appreciated.
Regards,
Louis Vallance

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by