Построение линии выше / ниже существующих линий, созданных с помощью plotyy - PullRequest
4 голосов
/ 13 марта 2012

Я использую этот код:

t = linspace(0, 10, 1000);
y1 = 2*t;
y2 = 3*t;
figure;
[ax, h1, h2] = plotyy(t, y1, t, y2);
set(h1, 'LineWidth', 4);
set(h2, 'LineWidth', 4);
hold on;
h3 = plot([5, 5], [0, 3000], 'LineWidth', 6, 'Color', [0.6, 0.6, 0.6]);

Что создает этот сюжет:

enter image description here

Обратите внимание, как вертикальная серая линия появляется сверху синей линии (y1), но ниже зеленой линии (y2).

Как мне нарисовать серую линию либо поверх двух других линий, либо ниже двух других линий?

Ответы [ 2 ]

3 голосов
/ 13 марта 2012

вижу два варианта:

A. Перенесите серую линию вперед, переместив ее на вторые оси, созданные командой plotyy

set(h3,'parent',ax(2));

B. Поместите серую линию внизу, изменив порядок синих и серых линий на оси.

chld = [h1 h3];
set(ax(1),'children',chld); %# reorders the two lines so that the gray line is in back.
2 голосов
/ 13 марта 2012

Чтобы сделать серую линию нижней, вы также можете изменить порядок рисования.

t = linspace(0, 10, 1000);
y1 = 2*t;
y2 = 3*t;
figure;
h3 = plot([5, 5], [0, max(y1)], 'LineWidth', 6, 'Color', [0.6, 0.6, 0.6]);
hold on;
[ax, h1, h2] = plotyy(t, y1, t, y2);
set(h1, 'LineWidth', 4);
set(h2, 'LineWidth', 4);

В h3 = plot(...) есть хитрость, чтобы убедиться, что левая шкала верна.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...