Main Content

newplot を使用したプロットのコントロール

この例では、ユーザーが記述したプロット関数の Figure および座標軸を準備する方法を説明します。プロパティの設定にはドット表記を使用します。

特殊なプロット関数からの出力を管理するには、newplot を使用します。関数 myPlot2D は、次のように動作します。

  • 特定の出版要件に合わせて座標軸と Figure の外観をカスタマイズ

  • 複数ラインのグラフ用に、周回するライン スタイルと単一の色を使用

  • 指定された表示名をもつ凡例を追加

function myPlot2D(x,y)
   % Call newplot to get the axes handle
   cax = newplot;
   % Customize axes
   cax.FontName = 'Times';
   cax.FontAngle = 'italic';
   % Customize figure
   fig = cax.Parent;
   fig.MenuBar= 'none';
   % Call plotting commands to
   % produce custom graph
   hLines = line(x,y,...
      'Color',[.5,.5,.5],...
      'LineWidth',2);
   lso = ['- ';'--';': ';'-.'];
   setLineStyle(hLines)
   grid on
   legend('show','Location','SouthEast')
   function setLineStyle(hLines)
      style = 1;
      for ii = 1:length(hLines)
         if style > length(lso)
            style = 1;
         end
         hLines(ii).LineStyle = lso(style,:);
         hLines(ii).DisplayName = num2str(style);
         style = style + 1;
      end
   end
end

次のグラフは、関数 myPlot2D の典型的な出力を示します。

x = 1:10;
y = peaks(10);
myPlot2D(x,y)

関数 myPlot2D は、ユーザーが記述したプロット関数の基本構造を示します。

  • newplot を呼び出し、ターゲットとなる座標軸のハンドルを取得して、座標軸および Figure の NextPlot プロパティ設定を適用します。

  • 返された座標軸のハンドルを使用して、このプロット関数の座標軸または Figure をカスタマイズします。

  • プロット関数 (たとえば、linelegend) を呼び出し、特殊なグラフを実装します。

関数 myPlot2D は、newplot が返すハンドルを使用してターゲットの Figure と座標軸にアクセスするため、次のように動作します。

  • 以後の呼び出しを行うたびに座標軸をクリアする場合は、MATLAB® プロット関数の動作に準拠します。

  • holdon に設定されている場合は、正しく動作します。

NextPlot プロパティに対する既定の設定を使用すれば、MATLAB の標準動作に準拠するプロット関数の記述を確実にできます。標準動作とは、Figure ウィンドウは再利用するが、新しいグラフごとに座標軸をクリアし、リセットすることです。