how can I plot multiple y values for single x value?
103 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have to plot multiple y values for single x value, but in the plot all the values related to x=x1 appears on the same column. The relative y values are related to the same day (x) but to subsequent times. I would like to plot y values related to the same x in different columns just labeling the first value of x. It is possible? Thank you The graph that i found is the following but i don't know how to solve the problem.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/170680/image.jpeg)
3 Kommentare
KALYAN ACHARJYA
am 2 Dez. 2020
Bearbeitet: KALYAN ACHARJYA
am 2 Dez. 2020
@Chaman can you more specific please? To plot the data, the lengths of x and y must be the same. If we consider the same x value for all the corresponding y data, the result will be a vertical line (parallel to the y-axis).
Chaman Srivastava
am 2 Dez. 2020
@kalyan acharjya Yes indeed it will be a straight line. But my goal is to obtain a regression curve with confidence interval, something like what is shown in the curve attached.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/440108/image.png)
Any leads for this? Thanks
Antworten (1)
Setsuna Yuuki.
am 2 Dez. 2020
you can try creating a vector of ones and multiplying this by your x values, for example:
y = rand(1,15);
xvalue = 3;
x = xvalue*ones(1,length(y));
scatter(x,y,'LineWidth',3);
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/440033/image.jpeg)
3 Kommentare
Chaman Srivastava
am 2 Dez. 2020
Hey Bastian,
Thank you the piece of code. I have tried something like this but plotting a regression using polyfit isn't working. Any leads on that?
Setsuna Yuuki.
am 2 Dez. 2020
I tried it this way
clearvars;
x = linspace(0,30);
i = 0; j = 1;
comp = 1:3:length(x);
vectorx = zeros(1,length(x));
%Vector with three same x values
for n = 1:length(x)
vectorx(n) = i;
if(n == comp(j))
i = i+1;
j = j+1;
end
end
x = vectorx;
%Random data
y = 0.2+rand(1,length(vectorx));
p = polyfit(x,y,1);
f = polyval(p,x);
figure
plot(x,y,'o',x,f,'-','LineWidth',3)
legend('data','linear fit')
grid on;
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/440213/image.jpeg)
Siehe auch
Kategorien
Mehr zu Discrete Data Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!