我想在我的情节中标记某些区域,我已使用rectangle
解决了这些问题。现在的问题是我还希望打开网格,但这是由矩形覆盖的。有没有办法为背景的不同区域着色或让网格向前移动,以便将其绘制在矩形上方?
我的代码如下所示:
rectangle('Position', [0 0.46 3*l+1 1.6], 'FaceColor', bg2);
rectangle('Position', [0 0.6 3*l+1 1.6], 'FaceColor', bg);
hold on
grid on
plot(Isr(:, 2), abs(Isr(:, 1)), 'r');
plot(Isx(:, 2), abs(Isx(:, 1)), 'b');
title('Current');
axis([0 3*l 0 1.6]);
legend(Legend);
xlabel('$k$');
ylabel('$I_F/I_{3\Phi}$');
这是一个最小的例子:
l = 10;
x = linspace(0,l);
rectangle('Position', [0 0.46 l+1 1.6], 'FaceColor', 'm');
rectangle('Position', [0 0.6 l+1 1.6], 'FaceColor', 'g');
hold on
grid on
plot(x, sin(x), 'r');
plot(x, cos(x), 'b');
axis([0 l 0 1.6]);
legend('Sine', 'Cosine');
答案 0 :(得分:3)
您应该可以通过修改Layer
property of your axes来完成此操作,这会修改与图形对象相关的网格线和刻度线的位置:
l = 10;
x = linspace(0,l);
myax = axes;
rectangle('Position', [0 0.46 l+1 1.6], 'FaceColor', 'm');
rectangle('Position', [0 0.6 l+1 1.6], 'FaceColor', 'g');
hold on
grid on
plot(x, sin(x), 'r');
plot(x, cos(x), 'b');
axis([0 l 0 1.6]);
legend('Sine', 'Cosine');
myax.Layer = 'top';
请注意,我还添加了一个axes
调用来给我一个轴的句柄。在gca
set
使用时,可以实现相同的行为:set(gca, 'Layer', 'top');
{{3}}