How to have number as marker symbol in plot

25 Ansichten (letzte 30 Tage)
shirin
shirin am 9 Feb. 2014
I'm trying to have a plot with number form 1 to 150 as a marker symbol.I have this but it doesn't work.please help
if true
% code
mark=zeros(1,class_length);
for i=1:class_length
mark(:,i)=i;
ma=num2str(mark);
malength=length(ma);
end
if mode==6 && colorflag==0
box on;
hold on;
for i=1:class_length
for p=1:malength
if classlabel(i)==p
plot(x(i),y(i),'Marker',mo(p),'MarkerSize',fontsize,'Color',colors(7));
end
end
end
hold off;
end

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 9 Feb. 2014
You cannot create custom market symbols for use with plot(). My understanding is that the File Exchange contribution plt() allows you to define custom marker symbols.
However, what you should be doing in your situation is using text() instead of plot(). You are, after all, only putting up text and not drawing any lines.
By the way, with your existing code, why are you looping testing class labels one by one? And where did "mo" come from? Why do you take length(ma) and then throw away ma itself and throw away the length as well?
If you could create custom markers, then why not,
ma = cellstr(num2str(classlabel(:))); %num2str can process vector
for i=1:class_length
plot(x(i),y(i),'Marker',ma{i},'MarkerSize',fontsize,'Color',colors(7));
end
Though, as noted above, you cannot use custom markers: I am just illustrating that your code could have been more compact.
Suggested code replacement, for everything above that seems to have relevance:
if mode==6 && colorflag==0
box on;
text(x, y, cellstr(num2str(classlabel(:)))), 'FontSize', fontsize, 'Color', colors(7));
end
No loop needed.
  3 Kommentare
Walter Roberson
Walter Roberson am 10 Feb. 2014
Don't forget to mark an Answer as Accepted.
Pannir Selvam Elamvazhuthi
Pannir Selvam Elamvazhuthi am 29 Apr. 2024
Thanks a lot for the 'text' code. I've used the following to get the numbers printed next to my markers positioned at x(i) and y(i):
fontsize=10;
no_of_numbers=10
for i=1:no_of_numbers
text(x(i)+0.05, y(i), cellstr(num2str(i)), 'FontSize', fontsize);
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Mischa Kim
Mischa Kim am 9 Feb. 2014
Bearbeitet: Mischa Kim am 9 Feb. 2014
Use text objects to add markers, e.g.:
x = 0:1:10;
y = sin(x);
plot(x,y,'-r')
hold on
for ii = 1:length(x)
text(x(ii),y(ii),num2str(ii),'Color','r')
end
  3 Kommentare
Jason Adkins
Jason Adkins am 21 Mai 2020
Ah so easy, thank you!
VIGNESH BALAJI
VIGNESH BALAJI am 13 Jul. 2023
This idea of plotting text in plot is very useful to number data and sorting them out. Thanks :)

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by