I came across strange problem in matlab, i did a simple line plot using following code in a loop. i want to draw the line joining the markers. in principal it ishing , but the plot is just showing markers not joined by the line. I also t style property seperately, but did not work. Wonder what is preventing matlab to draw the line in plot
plot(x,y,'--o')

4 commentaires

When trying your example I get the expected dashed line. Perhaps try:
plot(x,y,'o-')
for a solid line.
Sumera Yamin
Sumera Yamin le 27 Août 2020
somehow, i am not getting any line, solid or dashed, i tried other way round like 'o-', but does not work. with a simple data, it does work, but in my lengthy code, it dont join the points. I wonder if something is preventing plot command to draw a line.
Stephen23
Stephen23 le 27 Août 2020
Modifié(e) : Stephen23 le 27 Août 2020
"I wonder if something is preventing plot command to draw a line."
Your code. My guess is that you are plotting scalar values in a loop, which will show individual markers unconnected by a line.
If you want to have markers joined by lines then you must provide plot with vectors/matrices of data.
In the unlikely event that you really are calling plot just once then please click the paperclip button to upload the exact data vectors/matrices that you call it with, all saved in one .mat file. And show us the exact code used.
Sumera Yamin
Sumera Yamin le 27 Août 2020
Modifié(e) : Sumera Yamin le 27 Août 2020
i see your point. It is true, i am plotting scalar values in a loop. Many thanks for your answer. @ Stephen, i am not getting the option to accept your answer

Connectez-vous pour commenter.

 Réponse acceptée

Stephen23
Stephen23 le 27 Août 2020
Modifié(e) : Stephen23 le 27 Août 2020

0 votes

You are plotting scalar values in a loop, which will show individual markers unconnected by a line.
If you want to have markers joined by lines then you must provide plot with vectors/matrices of data.
In practice this means
  • within the loop use indexing to add the data to a vector/matrix,
  • after the loop call plot once with that complete vector/matrix.

2 commentaires

Sumera Yamin
Sumera Yamin le 27 Août 2020
Thanks
Another alternative would be to create an animatedline before the loop and addpoints to it inside the loop.
axis([0 360 -1 1]);
h = animatedline;
for x = 0:360
addpoints(h, x, sind(x))
drawnow expose
end
You can specify property values for animatedline like Marker, LineStyle, Color, etc. when you create it.

Connectez-vous pour commenter.

Plus de réponses (1)

KSSV
KSSV le 27 Août 2020
plot(x,y,'o',x,y,'-')
Or
plot(x,y,'-o')
Or
plot(x,y,'o')
hold on
plot(x,y)

2 commentaires

Sumera Yamin
Sumera Yamin le 27 Août 2020
thanks, tried this. doesnt help
KSSV
KSSV le 27 Août 2020
Modifié(e) : KSSV le 27 Août 2020
x = 1:10 ;
y = rand(size(x)) ;
plot(x,y,'-o')
Show the output.

Connectez-vous pour commenter.

Catégories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by