Help displaying text to a figure.
Afficher commentaires plus anciens
If I do not want to plot an actual graph, and just display text of different colors as if it was written in a text editor or something similar how would I do that? So I wrote this program that deals random cards out. The program works great, but I don't know how to do the display. Here is the program though really all I am asking is for help with the figure.
function []=myShowHand(cards,PlayerName)
for k = 1:length(cards)
if cards(k) == 1
cards(k) = 13;
elseif cards(k) == 14
cards(k) = 26;
elseif cards(k) == 27
cards(k) = 39;
elseif cards(k) == 40
cards(k) = 52;
else
cards(k) = cards(k) - 1;
end % nested if
end % for loop
cards = sort(cards,'descend');
A = find(cards <= 13);
AA = cards(A); %clubs
B = find(cards >= 14);
BB = cards(B);
C = find(BB <=26);
CC = cards(C); %diamonds
D = find(cards >= 27);
DD = cards(D);
E = find(DD <=39);
EE = cards(E); %hearts
F = find(cards >= 40);
FF = cards(F); %spades
clubs = AA;
diamonds = CC;
hearts = EE;
spades = FF;
deck = '23456789TJQKA23456789TJQKA23456789TJQKA23456789TJQKA';
clubs = deck(clubs);
diamonds = deck(diamonds);
hearts = deck(hearts);
spades = deck(spades);
figure
axis off
text(1,1,'\spadesuit')
text(1,2,'\heartsuit')
text(1,3,'\diamondsuit')
text(1,4,'\clubsuit')
end % function
1 commentaire
Réponse acceptée
Plus de réponses (1)
See links from
doc text
for all the properties of the text object and examples of using them.
...want it centered...
'horizontalAlignment','center
...and diamonds and hearts to be red...
'color', 'r'
For the latter you'll have to split the text strings to write the black suits and red suits individually.
Or, you can get more fancier and use TeX and the \color and other directives.
See the section in documentation on Adding Text Annotations to Graphs in the Graphics chapter for lots of examples and the full documentation story.
You can just try the following for starters
text(0.5,0.5,'Clubs','horizontal','center','color','k')
text(0.5,0.45,'Hearts','horizontal','center','color','r')
or
txtstr(1)={'\color{black} Clubs '};
txtstr(2)={'\color{red} Hearts '}
text(0.5,0.5,txtstr,'interpreter','tex','horizonatalalign','center')
Obviously you'll want to build the strings for the hands dynamically.
1 commentaire
Peter
le 12 Mar 2014
Catégories
En savoir plus sur Line Plots dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!