16

Matlabの図に0のx軸線を追加して、図をjpgに保存するときにデータを比較して、正か負かを確認できるようにします。これを行うための最良の方法は何ですか?使用できることはわかっていますがline()、xとyの範囲を指定する必要があるため、面倒に思えます。もっと簡単な方法はありますか?

4

6 に答える 6

32

文書化されていない関数が存在しますgraph2d.constantline

plot(-2:5, (-2:5).^2-1)

%# vertical line
hx = graph2d.constantline(0, 'LineStyle',':', 'Color',[.7 .7 .7]);
changedependvar(hx,'x');

%# horizontal line
hy = graph2d.constantline(0, 'Color',[.7 .7 .7]);
changedependvar(hy,'y');

スクリーンショット

良い点は、軸の制限のリスナーを内部的に実装していることです(ハンドルはパン、ズームなどのように変更されます)。したがって、線は無限に伸びているように見えます。

于 2011-11-13T00:57:25.443 に答える
6

AvlinehlineGNU R のようなコマンドは素晴らしいでしょうが、より短い解決策を見つけることができませんでした

plot(1:10,sin(1:10));
line(xlim,[0 0],'Color','r') 
于 2015-03-12T22:25:17.700 に答える
6

より便利な組み込みの方法があるとは思いません。私は魅力のように機能する FileExchangeを使用hline()します。vline()

http://www.mathworks.com/matlabcentral/fileexchange/1039

于 2011-11-10T22:20:37.150 に答える
6

Figure が作成された直後に、この x 範囲を取得できます。次のようになります。

x=-2:5;
y=x.^2-1;

figure()
plot(x,y);

xlim = get(gca,'xlim');  %Get x range 
hold on
plot([xlim(1) xlim(2)],[0 0],'k')

ここに画像の説明を入力

図を手動でズームアウトする場合は、新しい x 範囲全体にわたって線を再描画する必要がある場合があることに注意してください。

于 2011-11-11T12:33:52.483 に答える
0
  1. plot()コマンドまたはでデータを描画しますstem()。Figure ウィンドウが開きます。
  2. 次に、Figure ウィンドウで、
    メニュー バーから [挿入] コマンドをクリックすると、ドロップダウン メニューが表示されます。
  3. このメニューから [line] コマンドをクリックすると、カーソルの形状が
    プラス記号に変わります。

  4. これで、水平、垂直、斜めなど、好きな場所に線を引くことができます。
  5. 線を右クリックして
    線のプロパティを変更できます。メニューが表示され、そこから目的のプロパティを選択できます
  6. 線に目盛りを付けたい場合は、テキストの追加オプションを使用して、好きな場所にテキストを配置できます。
  7. Figure のコードが必要な場合は、[ファイル] メニューをクリックしてから [generatecode] オプションをクリックすると、新しいテキスト エディター
    ウィンドウが開きます。このコードを後で使用するために保存できます。幸運を。
于 2015-09-17T11:58:30.293 に答える
0

MATLAB R2018b 以降yline、この目的のために次のものがあります。

 yline(0)

に水平線を引きy==0ます。

于 2019-03-26T12:54:03.423 に答える