How to create a textbox using annotation, that includes matlab shapes?
3 views (last 30 days)
Andres Salomon Fielbaum Schnitzler on 5 Aug 2022
I am trying to include a textbox in an image, to describe some of my symbols. To do this, I am using the matlab function "annotation", with the string
What I would like is that, in the textbox, before the X there is a blue square as the usual 's' in Matlab. Similary with a red diamond 'd' for Y, and a green circle for Z.
Is this doable?
dpb on 7 Aug 2022
While apparently theoretically possible to mung on the vertices of an annotation object to change the shape --
p=hF.Position; p(3)=p(4); hF.Position=p; % make it square aspect ratio
hASq = annotation('rectangle','FaceColor','b','linestyle','none'); % put a square on it, get handle
hFace=hASq.Face; % the hidden quadrilateral object
v=single(zeros(3,4)); % generate set of vertices within the default position
hFace.VertexData=v; % set the vertices to new data
generates an initial figure that looks like
any time the figure is repainted, the image reverts back to the original square -- there's a lot more behind the scenes than just simply resetting the vertices, unfortunately.
Secondly from a practical standpoint for your purposes, an annotation object and textbox can't be mixed, you would have to draw each separtely and position them such that they appeared to be together.
All in all, methinks this would not be fruitful path to try to follow; not sure there is a good path...