MATLAB坐标轴控制
(2011-10-12 20:45:02)
标签:
杂谈 |
分类: matlab |
MATLAB坐标轴控制
复制内容到剪贴板
代码:
x = -5:0.1:5;
y1 = sin(x);
h = figure('Unit', 'Normalized');
axes1 = axes('Parent', h, 'Position',
[0.05 0.05 0.9 0.4]);
axes2 = axes('Parent', h, 'Position', [0.05 0.55 0.9 0.4]);
line('Parent', axes1, 'XData', x, 'YData', y1);
line('Parent', axes2, 'XData', x(1:50), 'YData',
y1(1:50));
上面的图为下面图的一部分曲线内容,如果这样来看的话,两个曲线之间的关系不容易判断,鉴于此,进行如下控制:
复制内容到剪贴板
代码:
% 法1,获得axes1的xlim范围,修饰axes2
xlimit2 = get(axes1, 'XLim');
set(axes2, 'XLim', xlimit2);
这样一来,曲线之间的差别等可以比较容易观察,当然,其前提是坐标轴的xlimmode属性为手动,可以在修饰之前用set函数修改。
如果需要对比幅度的不同,可以同样方式修饰y轴。
复制内容到剪贴板
代码:
% 法2,通过linkaxes函数
h2 = figure('Unit', 'Normalized');
axes3 = axes('Parent', h2, 'Position', [0.05 0.05 0.9 0.4]);
axes4 = axes('Parent', h2, 'Position', [0.05 0.55 0.9 0.4]);
line('Parent', axes3, 'XData', x, 'YData', y1);
line('Parent', axes4, 'XData', x(1:50), 'YData', y1(1:50));
linkaxes([axes3 axes4], 'x');
复制内容到剪贴板
图形如下:代码:
% 法3,坐标轴在同一个位置显示
figure
ha = axes;
hb = axes(...
'Position', get(ha,
'Position'), ...
'XAxisLocation', 'top',
...
'YAxisLocation', 'right',
...
'Color', 'none');
hl1 = line(x, y1, 'Parent', ha);
hl2 = line(x(1:50), y1(1:50), 'Parent', hb);
这样不容易看出曲线属于哪个坐标轴,可以设置坐标轴颜色和曲线颜色相同,如下:
复制内容到剪贴板
结果如下:代码:
set(hl1, 'Color', 'r');
set(ha, 'XColor', 'r', 'YColor', 'r');
同样,我们可以使用linkaxes函数将横轴设为一致,
复制内容到剪贴板
代码:
linkaxes([ha, hb]);