#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. Да, это работает! Большое вам спасибо за вашу помощь. 🙂 Я признаю, что код не самый чистый…