Matlab图中的希腊字母

matlab matlab-figure

996 观看

2回复

56 作者的声誉

我已经在Matlab中创建了一个图,现在我想使用以下命令添加图例:

legend({'Pos1', 'Pos2', 'Pos3', '\alpha Pos4'}, 'Location', 'northeast', 'Interpreter', 'latex', 'fontsize', 22);
legend('boxoff')

问题是,这\alpha并没有转化为希腊字母。如果我省略了大括号{},则可以使用,但是我需要它们,因为我只想标记前四行。

如何获得希腊字母alpha?

作者: Erdinger 的来源 发布者: 2016 年 3 月 17 日

回应 (2)


6

33351 作者的声誉

你忘了 $

legend({'Pos1', 'Pos2', 'Pos3', '$\alpha$ Pos4'}, 'Location', 'northeast', 'Interpreter', 'latex', 'fontsize', 22);
作者: Daniel 发布者: 17.03.2016 01:44

5

6985 作者的声誉

决定

我想扩展Daniel的答案并解释一些细节。

没有它会发生什么 {}

如果在单元格数组中指定图例条目,则仅属性LocationOrientation可以用于直接调用legend。如果存在其他属性,则将它们解释为图例条目。那意味着InterpreterTextSize它的值就是图例条目。对Adiel的评论是为什么它显然没有以下内容{}:并非如此,它甚至会发出警告,间接地是由于上述原因。

旁注:根据语法,必须在属性之前提供图例条目。但是,它可以按任何顺序工作,但是我不建议您使用这种无证的行为。

选择地块

您提到必须使用{}来选择前四行。这是不正确的,因为默认情况下legend选择前N个图。问题是如上所述解释了属性。要选择特定的图,可以使用图句柄省略第二个图:

legend([ph1,ph3,ph4,ph5], 'Pos1', 'Pos3', 'Pos4', 'Pos5');

使用其他属性

为了能够在对的调用中直接使用其他属性legend,您可以将图例条目作为单元格数组提供。这将条目与属性的名称/值对分离。例如,更改字体大小:

legend({'Pos1', 'Pos2', 'Pos3', 'Pos4'}, 'Fontsize', 22);

另一种可能性是使用句柄来设置其他属性,而不使用单元格数组:

l = legend('Pos1', 'Pos2', 'Pos3', 'Pos4');
set(l, 'Fontsize', 22);     % using the set-function
l.FontSize = 22;            % object oriented

latex-口译员

如果设置Interpreter为,latex则图例条目的所有内容都需要由乳胶编译。这意味着\alpha不能在数学环境之外使用。要在LaTeX中添加内联数学表达式,可以将其用$-signs 括起来。如此$\alpha$工作,如丹尼尔的答案所述。使用- tex解释器,Matlab使用TeX标记的子集并自动处理受支持的特殊字符,因此$...$当您不使用解释器时就不需要了latex


意见建议

  • 不要忘记- $符号。
  • 在呼叫中处理特定的情节legend
  • 使用单元格数组并将调用中的所有属性legend直接设置为。
  • 这样一来,...您就可以将长行分割为几行。

例如这样:

legend([ph1,ph3,ph4,ph5], ...
    {'Pos $\alpha$', 'Pos $\beta$', 'Pos $\gamma$', 'Pos  $\delta$'}, ...
    'Location', 'northeast', 'Interpreter', 'latex', 'FontSize', 22);

这是示例的完整代码:

figure; hold on;
ph1 = plot(0,-1,'*'); ph2 = plot(0,-2,'*');
ph3 = plot(0,-3,'*'); ph4 = plot(0,-4,'*');
ph5 = plot(0,-5,'*'); ph6 = plot(0,-6,'*');
legend([ph1,ph3,ph4,ph5], ...
    {'Pos $\alpha$', 'Pos $\beta$', 'Pos $\gamma$', 'Pos  $\delta$'}, ...
    'Location', 'northeast', 'Interpreter', 'latex', 'FontSize', 22);

结果如下:

例

作者: Matt 发布者: 17.03.2016 09:58
32x32