主轴和副轴图的单个图例

时间:2016-03-25 19:12:13

标签: matlab plot octave

我使用

创建了一个包含两个数据集的图,分别在主Y轴和辅助Y轴上
[ ha, hl1, hl2 ] = plotyy( xr, yr, xq, yq );

然后我用

格式化了这些行
set( hl1, 'Linestyle', '-' );  set( hl1, 'Color', 'b' );   % solid, blue
set( hl2, 'Linestyle', '--' );  set( hl2, 'Color', 'r' );  % dash, red

我终于为

创建了一个共同的传奇
hl = legend( [ hl1, hl2 ], 'r', '\theta/\pi' );

我想( xr, yr, xq, yq )的内容并不重要。正确绘制了两条线,每条线都在正确的轴上。

图例中的第一行应该有一条(实线,蓝色)线条 第二行应该有一个(短划线,红色)线。 结果相反(见图)。

legend

如果我使用

,这是一样的
hl = legend( [ hl2, hl1 ], 'r', '\theta/\pi' );

如果我用分号[ hl2; hl1 ]更改逗号。 这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

使用octave-4.0.1-rc4,默认为graphics_toolkit(“qt”),结果似乎很好。

x = linspace(0, 2*pi, 101);
[ha, hl1, hl2] = plotyy(x, sin(x), x, -sin(x));
set( hl1, 'Linestyle', '-' );  set( hl1, 'Color', 'b' );   % solid, blue
set( hl2, 'Linestyle', '--' );  set( hl2, 'Color', 'r' );  % dash, red
hl = legend( [ hl1, hl2 ], 'r', '\theta/\pi' );

enter image description here

除了\theta/\pi未正确解释。 无需提交错误报告,因为它已在开发版本中得到解决。 但是对于4.0.1和graphics_toolkit("gnuplot"),情节很好:

enter image description here

所以可能是时候升级了。以下是ftp sitewindows installers

答案 1 :(得分:0)

使用像ederag这样的代码

x = linspace(0, 2*pi, 101);
[ha, hl1, hl2] = plotyy(x, sin(x), x, -sin(x));
set( hl1, 'Linestyle', '-' );  set( hl1, 'Color', 'b' );   % solid, blue
set( hl2, 'Linestyle', '--' );  set( hl2, 'Color', 'r' );  % dash, red
hl = legend( [ hl1, hl2 ], 'r', '\theta/\pi' );

我发现添加了这行

set( hl, 'fontsize', 20 );

反转图例中的线条后。据我所知,这是无法解释的(可能是一个错误?)。