how can I plot multiple y values for single x value?
조회 수: 73 (최근 30일)
이전 댓글 표시
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.
댓글 수: 3
KALYAN ACHARJYA
2020년 12월 2일
편집: KALYAN ACHARJYA
2020년 12월 2일
@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
2020년 12월 2일
@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.
Any leads for this? Thanks
답변 (1개)
Setsuna Yuuki.
2020년 12월 2일
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);
댓글 수: 3
Chaman Srivastava
2020년 12월 2일
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.
2020년 12월 2일
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;
참고 항목
카테고리
Help Center 및 File Exchange에서 Discrete Data Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!