条形图标签中的希腊符号在MATLAB中

时间:2015-02-26 13:55:12

标签: matlab latex bar-chart matlab-figure

我想在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

任何帮助将不胜感激!谢谢!

1 个答案:

答案 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

输出:

enter image description here