在图例的图例和标签中使用LaTeX?

时间:2017-09-15 21:19:43

标签: plot octave legend figure axis-labels

我正在尝试使用在绘图上绘制的函数添加图例,例如:

description = legend({"y(x) = \sqrt{\frac{100(1-0.10x^2)^2+0.02x^2}{(1-x^2)^2+0.1x^2}}"});

legend(description ,"location", "northoutside");

然而,我得到的结果是:

enter image description here

包含LaTeX数学模式符号的正确语法是什么?

Windows 10上的Octave-4.2.1

2 个答案:

答案 0 :(得分:4)

我可以确认这在matlab中有效:

p = plot(1:10);
description = '$y(x) = \sqrt{\frac{100(1-0.10x^2)^2+0.02x^2}{(1-x^2)^2+0.1x^2}}$';
l = legend(description);
set(l, 'interpreter', 'latex');

但不是八度音阶。

所以大概是Andy在链接帖子中提到的问题,仍然存在。

我知道这不太理想,但作为解决方法,我只需在自己的axes中导入预渲染的乳胶图像,然后手动将其放在主图axes的顶部。 。我发现生成乳胶文本/方程片段的最快方法是使用anki。

例如,我使用anki:

生成了这个

然后在八度音乐中我可能会这样做:

PlotAxes = axes();
plot(1:10, 'g');
set (PlotAxes, 'position', [0.1, 0.1, 0.8, 0.7]);

LegendAxes = axes();
[LegendText, Colourmap] = imread('https://i.stack.imgur.com/dOOnQ.png');
LegendText = ind2rgb (LegendText, Colourmap);
imagesc(LegendText);
axis equal tight;
Lims = axis;
hold on;
LegendLine = plot ([-150, -50], [50, 50], 'linewidth', 3, 'g');
hold off;
axis(Lims + [-200, 0, 0, 0]);
set (LegendAxes, ...
   'position', [0.2, 0.85, 0.6, 0.1], ...
   'xtick', [], 'ytick', [], 'box', 'on');

结果:

这种手动放置可能看起来像一件非常麻烦的事情,但是一旦你习惯了它,我保证你会更喜欢它。我的论文中的所有数字都是“手动”定位的(尽管通常是以自动方式),因为这使我能够完全控制。

答案 1 :(得分:1)

根据您使用的TeX数学符号的种类,使用''而不是""进行引用可能就足够了。

例如

  1. 力量与两者中的任何一个都能很好地发挥作用。
  2. '\rho'得到正确的图例,而"\rho"没有得到。同样,对于我测试过的其他希腊符号。
  3. \frac\sqrt两者都不起作用。

我没有寻找更详细的权威信息,而您处于第3种情况,因此仅使用单引号是不够的。 但这对于其他人(对我而言)可能就足够了。