Запуск строк графика в том же месте

#matlab #matlab-figure

#matlab #matlab-рисунок

Вопрос:

Я пытаюсь заставить зеленую строку в следующем коде Matlab начинаться с той же точки, что и две другие, НЕ сдвигая всю фигуру влево, т.е. начальная точка не должна быть привязана к оси y. Но я не могу понять, как это сделать. Если кто-нибудь может помочь объяснить, как это сделать, я был бы очень признателен за помощь. 🙂

 all_local           = [    1.0001        1.0001       1.0001   1.0001];
mix_diff_paragraphs = [    0.59     0.93    0.97   1.0001];
mix_same_paragraphs = [    0.35     0.55    0.80   1.0001];
axis manual
axis([1,4,0,2]);
y=[1 2 3 4];

h = plot(y 1,all_local,'-om',...
         y 1,mix_diff_paragraphs,'-xb',...
         y,mix_same_paragraphs,'- g','LineWidth',2,'MarkerSize',8);

set(gca,'xtick', [1 2 3 4 5]);
set(gca,'XTickLabel',{0,300,500,1000,1500});
set(gca,'ytick', 0:0.2:1.2);
set(gca,'yticklabel', {'0', '0.2', '0.4', '0.6', '0.8','1',''});
legend('Location','BEST','Local users only','Local/Remote users alternate on Pargs.','Local/Remote users modify the same Parg.')

ylabel('Responsiveness');
xlabel('Thinking Period(msec)')
grid on;
  

Комментарии:

1. При построении all_local и mix_diff_paragraphs код добавляет единицу к y вектору, но не для построения mix_same_paragraphs . Это намеренно? Потому что именно поэтому зеленая линия начинается с x = 0 (или оси y). Обратите внимание, что именование y вектора немного сбивает с толку, поскольку оно используется в качестве входных данных x для plot .

Ответ №1:

Это довольно запутанный способ сделать то, что вы сделали (я не понимаю, почему вы хотите изменить метки тиков без изменения фактических значений x), но это в стороне, просто добавьте ( 1) к зеленой строке:

 h = plot(...
         ...
         y 1 ...,'LineWidth',2,'MarkerSize',8);
  

и в конце добавьте: xlim([1,5]);

Если я правильно понял, что вы пытались сделать…

Комментарии:

1. Да, это работает! Большое вам спасибо за вашу помощь. 🙂 Я признаю, что код не самый чистый…