将图例文本的Horizo​​ntalAlignment设置为八度音程左侧

时间:2014-07-29 14:11:52

标签: gnuplot octave legend

我有传说文本,在matlab中表现为

set(gcf,'DefaulttextHorizontalAlignment','left'); 

现在我试图以八度音程复制它,但由于某种原因,八度音阶似乎忽略了上述命令。

我正在使用cygwin Xwin octave和GNUPlot (我不是试图将文本移动到“行”图例的另一侧(“左”))

做一些测试,结果证明我可以设置属性,但它不会影响任何东西。

LegendHandle = legend( phvec, legendvec, 'Location', 'NorthEastOutside' );
legtxt=findobj(LegendHandle,'type','text');
get(legtxt(1),'HorizontalAlignment') %% returns left

2 个答案:

答案 0 :(得分:2)

似乎Gnuplot支持更改图例水平对齐的选项,但Octave不提供对Gnuplot中此功能的访问(尽管它适用于FLTK)。除了在Octave tracker上提交功能请求之外,您根本无法做任何事情。

来源:http://octave.1599824.n4.nabble.com/set-horizontalalignment-for-legend-text-td2218246.html

所以,是的,目前还没有使用gnuplot左对齐图例文本的解决方案,正如你所说,你唯一可以做的就是删除这个可怕的空白区域,使用legend('left')将文本交换到符号左边。

答案 1 :(得分:0)

我可以复制你的问题,但仅限于使用gnuplot。它适用于其他图形工具包。

虽然gnuplot很长一段时间是Octave的默认图形工具包,但Octave的开发人员一直在慢慢地用自己的替代品替换它,以避免其局限性。我相信Octave的最新版本已经默认为fltk但您可以自己更改:

octave-cli-3.8.1> graphics_toolkit fltk
octave-cli-3.8.1> graphics_toolkit  # confirm
ans = fltk
octave-cli-3.8.1> x = 0:0.1:10;
octave-cli-3.8.1> figure;
octave-cli-3.8.1> plot (x, [sin(x); cos(x)]);
octave-cli-3.8.1> legend ("long sin", "cos", "Location", "NorthEastOutside");

plot with legend text on the left using fltk