我想在y barh()
图表的ylabels中使用希腊符号。我尝试了以下但是它没有真正起作用:
tplot = barh(mdata, 'BarWidth', 0.3);
set(gca,'xgrid','on')
lbl = {'$$\hat{\sigma}_1$$', '$$\hat{\sigma}_2$$', '$$\hat{\sigma}_3$$'};
box off
set(gca,'yticklabel',lbl)
h=findobj(gca,'type','text');
set(h,'Interpreter','latex')
我也尝试过:
set(gca,'TicklLabelInterpreter', 'tex')
当我执行get(gca)
时,属性TickLabelInterpreter
似乎根本不存在!我使用的MATLAB版本是R2013a。
请注意,我专门使用latex
作为解释器而不是tex
,因为tex
不支持\hat
。
任何帮助将不胜感激!谢谢!
答案 0 :(得分:2)
根据MathWorks的this引用:
使Xtick标签和Ytick标签的功能相同 字体作为TEXT对象与LaTeX作为他们的解释器不可用 在MATLAB 8.1(R2013a)中。
因此,您需要删除y标签并手动创建新标签作为文本对象。然后,您可以使用乳胶解释器。
以下是适合您目的的示例的修改版本:
clc
clear
y = [57,91,105];
tplot = barh(y, 'BarWidth', 0.3);
lbl = {'$$\hat{\sigma}_1$$', '$$\hat{\sigma}_2$$', '$$\hat{\sigma}_3$$'};
%% Generate figure and remove ticklabels
set(gca,'yticklabel',[])
%% Get tick mark positions
yTicks = get(gca,'ytick');
ax = axis; %Get left most x-position
%% Reset the ytick labels in desired font
for i = 1:length(yTicks)
%Create text box and set appropriate properties
text(ax(1) - .3,yTicks(i),lbl{i},...
'HorizontalAlignment','Right','interpreter', 'latex','FontSize',18);
end
输出: