我有传说文本,在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
答案 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");