How can I get text in figures to display symbols?
조회 수: 13 (최근 30일)
이전 댓글 표시
I know how to display greek letters in a plot label using xlabel and ylabel, but when I try to get other text in a figure (not on a plot) to display greek letters or other symbols it doesn't work. When I use:
uicontrol('Style','text','Units','pixels','Position',[1557 970 135 20], ...
'String','\lambda','FontSize',10);
the result that's displayed is "\lambda", not the small case greek letter. I'm also trying to display a degree symbol and the same thing happens when I use "\circ", and I have to use a * in the mean time.
Any suggestions? Thanks, Dave
댓글 수: 0
채택된 답변
Walter Roberson
2017년 6월 6일
편집: Walter Roberson
2017년 6월 9일
You can set the uicontrol style to push or listbox or radio or toggle or checkbox or popup (but not text or edit). Then you can set the String property to '<HTML>λ' . You might also want to set the Enable property to off.
댓글 수: 5
Walter Roberson
2017년 7월 20일
ASCII was never defined beyond 127. After that you are into ISO 8896-1 or whatever is supported by the font you are using.
MATLAB uses Unicode code points up to 65535. I find fileformat.info to have useful tables for detailed information, such as http://www.fileformat.info/info/unicode/char/b0/index.htm
Google is pretty good at finding information about individual symbols; for example search for "unicode degree symbol" or search for "unicode 176" or search for "U+00B0" (you do not need any other keywords if you know the hex code point)
Kevin Snyder
2018년 2월 13일
Sorry to dig this up, I was having a problem displaying Greek symbols in a table header when I came across this post. I thought I would come back with my solution because it raised a question:
Is there any particular reason or convention converting the character to a string would not work?
This is what worked for me when changing properties of a uitable:
infoTable.ColumnName = {'Sweep '+string(char(955))+' [nm]',...};
추가 답변 (2개)
Yair Altman
2017년 7월 14일
편집: Walter Roberson
2017년 7월 14일
%show the 'for all' and 'beta' symbols
labelStr = '<html>∀β <b>bold</b> <i><font color="red">label</html>';
jLabel = javaObjectEDT('javax.swing.JLabel',labelStr);
[hcomponent,hcontainer] = javacomponent(jLabel,[100,100,40,20],gcf);
The idea here is to use HTML formatting to add the special characters. This is in line with Walter Roberson's answer, but would be displayed in a text label rather than a button.
As an alternative, you could set the HTML string on a button uicontrol, and then remove its border (which provides the 3D visual illusion) as explained here:
댓글 수: 0
dpb
2017년 6월 6일
Unfortunately, the uicontrol objects do not expose an 'Interpreter' property as does the text object or even labels.
Unless Yair has some secret tricks on his "Undocumented Matlab" site, I think the only option would be to revert back to the text object to actually do the display if there isn't an installed font with the characters you want without resorting to TeX.
참고 항목
카테고리
Help Center 및 File Exchange에서 Labels and Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

