linkaxes
複数の座標軸の範囲の同期
説明
例
軸の範囲の同期および変更
関数 tiledlayout
および nexttile
を使用して、プロットをタイル表示します。
関数 tiledlayout
を使用して、3 行 1 列のタイル表示チャート レイアウトを作成します。次に、関数 nexttile
を使用して、axes オブジェクト ax1
、ax2
、ax3
を作成し、各座標軸にプロットします。
tiledlayout(3,1) % First plot ax1 = nexttile; x1 = linspace(0,6); y1 = sin(x1); plot(x1,y1) % Second plot ax2 = nexttile; x2 = linspace(0,10); y2 = 2*sin(2*x2); plot(x2,y2) % Third plot ax3 = nexttile; x3 = linspace(0,12,200); y3 = 4*sin(6*x3); plot(x3,y3)
各プロットの x 軸と y 軸の範囲を同期します。新しい軸の範囲に古い範囲が内包されていることに注意してください。
linkaxes([ax1 ax2 ax3],'xy')
1 番目のプロットの x 軸の範囲を設定します。すべての座標軸がリンクされるため、2 番目と 3 番目のプロットの x 軸の範囲も変化します。
ax1.XLim = [0 4.5];
プロットの 1 つに移動するかズームすると、他の 2 つのプロットに同じデータの範囲が表示されます。
リンクを削除するには、linkaxes([ax1 ax2 ax3],'off')
を使用します。
指定した次元の座標軸の範囲の同期と変更
関数 linkaxes
を使用して、複数の axes オブジェクトの x 軸の範囲を同期および変更します。
関数 tiledlayout
および nexttile
を使用して、プロットをタイル表示します。関数 tiledlayout
を使用して、2 行 1 列のタイル表示チャート レイアウトを作成します。次に、関数 nexttile
を使用して、axes オブジェクト ax1
および ax2
を作成し、各座標軸にプロットします。
t = tiledlayout(2,1); % First plot ax1 = nexttile; p1 = peaks; surf(ax1,p1); view(3) % Second plot ax2 = nexttile; p2 = peaks(25); mesh(ax2,p2)
2 つの axes オブジェクトの x 軸の範囲を同期します。新しくリンクされた axes オブジェクトの x 軸の範囲が更新され、すべてのデータが含まれるようになります。
linkaxes([ax1 ax2],'x');
リンクされたすべての axes オブジェクトの x 軸の範囲を更新するには、axes オブジェクトのうちどれか 1 つで x 軸の範囲を設定します。
ax1.XLim = [0 15]; ax2.XLim
ans = 1×2
0 15
同期をオフにすると、リンクが削除されます。
linkaxes([ax1 ax2],'off');
タイム ゾーンが異なる datetime プロットの同期
タイム ゾーンが異なる datetime 値の 2 つのプロットを比較する場合は、いずれかのルーラーの ReferenceDate
プロパティを設定して、両方のプロットが同じタイム ゾーンを表すようにします。
2021 年 1 月 1 日にロンドンとニューヨークで新年を祝ってお祭り騒ぎしている人々の数を比較する 2 つのプロットのタイル表示を作成します。まずは最初のタイルに London
データをプロットします。既定では、プロットはデータのタイム ゾーンを使用します。
London = datetime(2021,1,1,0:17,0,0,"TimeZone","Europe/London"); y = (1./(1:18).^2) * 100000; ax1 = nexttile; semilogy(ax1,London,y) grid on title("New Year's Day Revelers in London")
NY
データをプロットします。この 2 番目のプロットはニューヨークのタイム ゾーンです。そのため、視覚的な確認では、同じ時点における 2 つの場所でのお祭り騒ぎしている人々の数を正確に比較できません。
NY = datetime(2021,1,1,0:17,0,0,"TimeZone","America/New_York"); ax2 = nexttile; semilogy(ax2,NY,y) grid on title("New Year's Day Revelers in New York")
x 軸の基準日を "Europe/London"
のタイム ゾーンの datetime 値に設定することで、ニューヨークのプロットのタイム ゾーンを変更します。次に、2 つの座標軸をリンクします。結果として、両方のプロットで同じタイム ゾーンが表されるようになります。
ax2.XAxis.ReferenceDate = datetime(2022,1,1,"TimeZone","Europe/London"); linkaxes([ax1,ax2],"x")
入力引数
ax
— ターゲット座標軸
Axes
オブジェクトのベクトル
ターゲット座標軸。Axes
オブジェクトのベクトルとして指定します。
任意の数の Axes
オブジェクトをリンクできます。たとえば、linkaxes([ax1 ax2 ax3])
は、ax1
、ax2
および ax3
をリンクします。linkaxes([ax1 ax2])
および linkaxes([ax2 ax3])
を個別に呼び出すと、ax1
と ax2
の間のリンクがキャンセルされます。
dimension
— 同期する軸の範囲
'xyz'
(既定値) | 'x'
| 'y'
| 'z'
| 'xy'
| 'xz'
| 'yz'
| 'off'
同期する軸の範囲。次の値のいずれかとして指定します。
'xyz'
— x 軸、y 軸、z 軸の範囲を同期する。'x'
— x 軸の範囲のみを同期する。'y'
— y 軸の範囲のみを同期する。'z'
— z 軸の範囲のみを同期する。'xy'
— x 軸と y の範囲のみを同期する。'xz'
— x 軸と z の範囲のみを同期する。'yz'
— y 軸と z の範囲のみを同期する。'off'
— 同期をオフにする。
バージョン履歴
R2006a より前に導入R2022a: 3 次元直交座標軸のリンク
linkaxes
で、3 次元直交座標軸がサポートされるようになりました。既定では x 軸、y 軸、z 軸の範囲が同期されます。dimension
入力引数を使用すると、同期する 3 次元座標軸の範囲を指定できます。
以前は、linkaxes
は 2 次元直交座標軸のみをサポートし、既定では x 軸と y 軸の範囲を同期していました。
参考
linkprop
| linkdata
| tiledlayout
| nexttile
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)