#matlab #matlab-figure
#matlab #matlab-рисунок
Вопрос:
У меня возникли проблемы с обновлением подзаголовков. Я свел свою проблему к следующему примеру:
win = figure(1);
win.sub1 = subplot(2, 2, 1);
win.sub2 = subplot(2, 2, 2);
win.sub3 = subplot(2, 2, 3);
win.sub4 = subplot(2, 2, 4);
x = 1:1:10;
plot(win.sub2, x, x); %graphs the line y = x in the second subplot, good.
hold on;
plot(win.sub2, x, -x) %ought to plot line y = -x over line y = x, but does not.
При выполнении второго графика первый график исчезает, несмотря на удержание. Единственное, что, кажется, делает эту работу, — это если я использую axes (win.sub2), но я пытаюсь избежать этого, потому что это действительно замедляет мою программу (построение 4 подграфов на одном рисунке, каждый из которых содержит около 2 наложенных графиков, для создания фильма объемом более 1000 кадров). Я ценю любую помощь. Спасибо
Ответ №1:
Я немного озадачен, почему ваш пример работает не так, как ожидалось, но изменение hold on;
на hold(win.sub2, 'on');
, похоже, дает желаемый результат.
Примечание: при выполнении вашего примера кода matlab выдает мне предупреждение, вероятно, потому, что вторая строка перезаписывается win
так, как определено в первой строке.
Комментарии:
1. Большое вам спасибо, я не знал, что удержание не просто применяется ко всем осям…
Ответ №2:
Проблема, похоже, в том, что hold on
это не влияет на правую ось. Вы можете решить это, используя set(...,'Nextplot','add')
на намеченной оси. Чтобы сделать это одновременно по всем осям, намного проще, если win
это массив, а не структура. И, кстати, строка 1 бесполезна ( win
перезаписывается).
Итак, код будет:
win(1) = subplot(2, 2, 1);
win(2) = subplot(2, 2, 2);
win(3) = subplot(2, 2, 3);
win(4) = subplot(2, 2, 4);
set(win,'Nextplot','add') %// set this for all axes in variable win
x = 1:1:10;
plot(win(2), x, x); %graphs the line y = x in the second subplot, good.
plot(win(2), x, -x) %ought to plot line y = -x over line y = x, but does not.
Комментарии:
1. Я ценю ваш ответ и благодарю за объяснение того, что удержание не влияло на правую ось. Это понимание было чрезвычайно ценным