Я попытался создать сюжет с двумя YAxis, как это:Индивидуальные линии и оси стили с plotyy
x=linspace(0,20);
y1=linspace(10,10);
y2=x.^2;
y3=y2-y1;
[hAx,hLine1,hLine2]=plotyy([x',x'],[y1',y2'],x,y3);
Теперь у меня есть две проблемы с этим кодом:
- Я могу изменить стили линий из два hLines с использованием
hLine1.LineStyle = ':';
, но я не могу изменить стили двух строк, из которых состоит hLine1. Кто-нибудь знает как это сделать? - Я не могу использовать
hLine2.YLim = [0 100]
, чтобы вручную регулировать пределы y, указанные на 2-й оси y.
После того как я не смог решить эту проблему с помощью plotyy
, я искал документацию MATLAB и нашел другой способ реализации моего участка, который я думал, что может быть проще в обращении:
x=linspace(0,20);
y1=linspace(10,10);
y2=x.^2;
y3=y2-y1;
figure
hold on;
line(x,y1,'Color','r')
line(x,y2,'Color','y')
ax1 = gca;
ax2 = axes('Position',ax1.Position,'YAxisLocation','right');
line(x,y3,'Parent',ax2,'Color','b')
Проблемы вот, что он даже не показывает первую и вторую строки, а только третий, и я не знаю почему. Я бы предпочел решить проблему с помощью plotyy
, но если это невозможно, я бы по достоинству оценил решение для второй части кода.
Благодарим вас, и вы правы, я этого не заметил, поэтому я мог себе представить, так как у Matlab на самом деле есть массивы EVERYWHERE .... Но илим ничего не работает, Matlab говорит мне, что функция "subsindex" не определен для значений класса 'matlab.graphics.axis.Axes'. " для этой строки 'ylim()'. – Max
@Max Любопытно, какую версию Matlab вы используете? В качестве альтернативы вы можете вручную получить ручку для каждой оси (см., Например, http://stackoverflow.com/questions/3938348/matlab-how-to-obtain-all-the-axes-handles-in-a-figure-handle). – Sheljohn
@john Я использую Matlab R2015a. я попробую вашу предложенную альтернативу позже в этот день, даю обратную связь и, вероятно, приму ваш ответ! Еще раз спасибо :) – Max