how to delete the plotted particular coordinate from 2d graph

4 views (last 30 days)
N=20;
area=100;
X=rand(1,N)*area;
Y=rand(1,N)*area;
XX=area/2;
YY=area/2;
plot(XX,YY,':o','LineWidth',3,'MarkerEdgeColor','k',...
'MarkerFaceColor','w','MarkerSize',20);
for i=1:N
plot(X(i),Y(i),'--o',...
'MarkerSize',10,'Color','b',...
'MarkerEdgeColor','b','MarkerFaceColor','b');
text(X(i),Y(i),num2str(i),'fontsize',15);
line([XX,X(i)],[YY,Y(i)])
hold on
end
>> XY=[X;Y]'
now i wish to delete the 10 no node delete from 2d gaph and delete the line and plotted marker from the node 10th

Accepted Answer

Star Strider
Star Strider on 13 May 2015
I am not certain what you want to do, but if I understand correctly, I would set the 10th value to NaN.
Either:
X(10) = NaN;
Y(10) = NaN;
or:
XY=[X;Y]'
XY(10,:) = NaN;
depending on where in your code you want to do it. If you do not want the 10th node to be plotted, set the values to NaN before the plotting loop. The advantage of setting them to NaN is that it preserves the length of both vectors and of your ‘XY’ matrix, if that is important in your code.
  4 Comments
Star Strider
Star Strider on 14 May 2015
I was concerned about the ‘ghost’ text resulting from my original solution, so I contacted MathWorks about it, submitting a bug report. I received a reply from Dr. Nade Sritanyaratana with an ingenious solution that genuinely merits I wish I’d thought of that! I learned something.
The code with Nade’s solution:
N=20;
area=100;
X=rand(1,N)*area;
Y=rand(1,N)*area;
for i=1:N
hp(i) = plot(X(i),Y(i));
ht(i) = text(X(i),Y(i),num2str(i),'fontsize',10);
hold on
end
XY=[X;Y]';
Q10 = XY(10,:); % Get Coordinates Of Point To Be Deleted
delete(hp(10)) % Delete Plotted Point
delete(ht(10)) % Delete Text Label
That I admit is better than mine.
Star Strider
Star Strider on 14 May 2015
With respect to your EDIT, simply expand on Nade’s solution:
for i=1:N
hp(i) = plot(X(i),Y(i),'--o',...
'MarkerSize',10,'Color','b',...
'MarkerEdgeColor','b','MarkerFaceColor','b');
ht(i) = text(X(i),Y(i),num2str(i),'fontsize',15);
hl(i) = line([XX,X(i)],[YY,Y(i)]);
hold on
end
XY=[X;Y]';
Q10 = XY(10,:); % Coordinates Of Deleted Values (Check)
delete(hp(10))
delete(ht(10))
delete(hl(10))

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!