plotyyコマンドによる追加の垂直軸の追加もヘルプで提供されます。トピックセクションでは、追加のx軸を追加する例がありますが、この例はコマンド自体と同様に欠点がないわけではありません。
plotyyは推奨されません
チーム自体の欠点の分析はおそらく省略されますが、開発者によって示された例の欠点は言及する価値があります。
- まず、グラフの一番上にある最も悪い領域に追加の軸を配置するよう提案されます。 そのような写真を分析しようとすると目が走り......
- 第二に、上級のmatlabユーザーであってもそのような軸に署名する方法は明確ではないかもしれません。
- 第三に、なぜ別のy軸が必要なのですか?
ヘルプからのコード
figure x1 = 0:0.1:40; y1 = 4.*cos(x1)./(x1+2); line(x1,y1,'Color','r') title(' ') % ax1 = gca; % current axes ax1.XColor = 'r'; ax1.YColor = 'r'; ax1_pos = ax1.Position; % position of first axes ax2 = axes('Position',ax1_pos,... 'XAxisLocation','top',... 'YAxisLocation','right',... 'Color','none'); x2 = 1:0.2:20; y2 = x2.^2./x2.^3; line(x2,y2,'Parent',ax2,'Color','k') xlabel('f,') %
ヘルプから例を視覚化する

上記の問題を解決するには、コードを記述します。
問題解決
clc clear all close all %% , U=[5.5 5.5 5.5 5.2 5.1 5 5 4.8 4.8]; % F=[30 40 50 10000 12000 14000 16000 18000 20000]; % [xi,ni]=find(F==50); K=U/U(ni); % %% figure %% , set(0,'DefaultAxesFontSize',20,'DefaultAxesFontName','Times New Roman'); set(0,'DefaultTextFontSize',20,'DefaultTextFontName','Times New Roman'); %% , ax=get(axes,'Position'); % a=gca; % set(a,'Position',[ax(1) ax(2)+(ax(2)/2) ax(3) ax(4)-ax(4)/10]) % plot(a,log(F),K,'-o'); % xlim(a,[min(log(F)) max(log(F))]) % grid on % BX=get(gca,'XTick'); % x BY=get(gca,'YTick'); % y %% xlabel('','Position',[BX(size(BX,2))+1.1 BY(1)+(BY(1)/100)]) ylabel('K(f)') %% F1=num2str(F,'%0.0i\n'); % ax2=[ax(1) ax(2)-(ax(2)/4) ax(3) 0]; % b=axes('Position',ax2); % xlabel('f, ', 'Position',[BX(size(BX,2))+1.1 BY(1)+(BY(1)/100)]) % xlim(b,[min(log(F)) max(log(F))]) % , xticks(b,log(F)) % xticklabels(b,F1) % xtickangle(90) % ,
いくつかのコード要素を詳しく見てみましょう。
以下のコマンドを使用して、数値配列の形式で軸の位置を取得します。
ax=get(axes,'Position');
ax配列は[abcd]として表されます。ここで、aとbはそれぞれグラフの左下隅の位置で、水平方向と垂直方向です。 つまり、原点の座標。 cは水平軸の長さ、dは垂直軸の長さです。
バイアスを導入すると、ゴールデンセクションは計算されず、すべてが「目で」見えます。
set(a,'Position',[ax(1) ax(2)+(ax(2)/2) ax(3) ax(4)-ax(4)/10])
したがって、ax(2)+(ax(2)/ 2)-標準軸の先頭を現在の半分に垂直に、つまり元の位置からシフトします。これは、スケール上の番号付きマークを読みやすくするために必要です。 オフセットax(4)-ax(4)/ 10は、最初の軸のサイズを垂直方向に設定します。 現在の値の10分の1だけ減少します。チャートの署名を読みやすくするために必要です。 d = 0に設定すると、垂直軸は単に表示されなくなり、次の場合に使用します。
ax2=[ax(1) ax(2)-(ax(2)/4) ax(3) 0];
次のコードを使用すると、水平軸のラベルの位置を設定できます。
BX=get(gca,'XTick'); BY=get(gca,'YTick'); xlabel('','Position',[BX(size(BX,2))+1.1 BY(1)+(BY(1)/100)]) xlabel('f, ', 'Position',[BX(size(BX,2))+1.1 BY(1)+(BY(1)/100)])
BYと同様に、BX配列は[xy]として表されます。ここで、xは署名の水平位置、yは署名の垂直位置です。
その結果、私たちはそのような美しさを見ることができます

以下にいくつかの便利なリンクを残します。
axesコマンドの説明 。
軸コマンド設定
plotyyチーム ;
開発者から追加の水平軸を導入する方法 。