How to plot in 2D
1 view (last 30 days)
Show older comments
I have values For example. At x=0, y=6.1; x=5; y=6.02, x=10; y=5.98, x=15, y=6.02. I want to plot like
this figure by Matlab. Could you help me ? Thank you very much
2 Comments
Accepted Answer
madhan ravi
on 11 Oct 2018
Edited: madhan ravi
on 11 Oct 2018
x = [ 0 : 5 : 15 ]
y = [ 6.1 6.02 5.98 6.02 ]
Secrenario = x
Location = y
plot(Secrenario,Location,'r')
xlim([0 50])
ylim([3 7])
6 Comments
madhan ravi
on 11 Oct 2018
Edited: madhan ravi
on 11 Oct 2018
Thank you @ sir Image Analyst keep inspiring as always:)
More Answers (1)
Image Analyst
on 11 Oct 2018
Edited: Image Analyst
on 11 Oct 2018
To get a smooth curve line that between your training data, you'll have to use splines. See demo below (with your data), and attached with better data:
% Demo to show spline interpolation.
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 12;
% Create data.
x = [ 0 : 5 : 15 ]
y = [ 6.1 6.02 5.98 6.02 ]
% Create the original knot points.
lengthX = length(x);
% Plot it and show how the line has sharp bends.
plot(x, y, '-sr', 'LineWidth', 2);
grid on;
xlabel('Scenario', 'FontSize', 20);
ylabel('Location', 'FontSize', 20);
title('Y vs. X', 'FontSize', 20);
xticks(0:5:max(x))
% ylim([3 7])
set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
% Use splines to interpolate a smoother curve,
% with 10 times as many points,
% that goes exactly through the same data points.
samplingRateIncrease = 8;
newXSamplePoints = linspace(1, max(x), lengthX * samplingRateIncrease);
smoothedY = spline(x, y, newXSamplePoints);
% Plot smoothedY and show how the line is
% smooth, and has no sharp bends.
hold on; % Don't destroy the first curve we plotted.
plot(newXSamplePoints, smoothedY, '-ob');
title('Spline Interpolation Demo', 'FontSize', 20);
legend('Original Points', 'Spline Points');
% Mathworks Demo code from their Help
% x = 0:10;
% y = sin(x);
% xx = 0:.25:10;
% yy = spline(x,y,xx);
% plot(x,y,'o',xx,yy)
% Draw x axis
line(xlim, [0,0], 'Color', 'k', 'LineWidth', 2);
grid on;
legend('Original Points', 'Spline Points', 'Slope');
Your data:
My demo's data:
5 Comments
Image Analyst
on 11 Oct 2018
Put hold on before you plot the second curve
hold on;
plot(x, y2, '-', 'LineWidth', 3);
See Also
Categories
Find more on Smoothing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!