How to plot in 2D
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/197649/image.png)
this figure by Matlab. Could you help me ? Thank you very much
2 Commenti
Risposta accettata
madhan ravi
il 11 Ott 2018
Modificato: madhan ravi
il 11 Ott 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 Commenti
madhan ravi
il 11 Ott 2018
Modificato: madhan ravi
il 11 Ott 2018
Thank you @ sir Image Analyst keep inspiring as always:)
Più risposte (1)
Image Analyst
il 11 Ott 2018
Modificato: Image Analyst
il 11 Ott 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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/197657/image.png)
My demo's data:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/197659/image.png)
5 Commenti
Image Analyst
il 11 Ott 2018
Put hold on before you plot the second curve
hold on;
plot(x, y2, '-', 'LineWidth', 3);
Vedere anche
Categorie
Scopri di più su Smoothing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!