Translate a plot across its axes
24 views (last 30 days)
Show older comments
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
1 Comment
Accepted Answer
Image Analyst
on 1 Dec 2012
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');
0 Comments
More Answers (2)
dpb
on 30 Nov 2012
If values are (x,y1) and (x,y2) then
plot(x,y1,[x+x(end)-x(1)],[y2+y1(end)-y1(1)])
--
0 Comments
See Also
Categories
Find more on Scatter Plots in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!